annotate stripe/src/luan/modules/stripe/Stripe.luan @ 452:56c23aa70045 0.7

Add cancel_subscription() function to Stripe customer.
author Hugo Teixeira <hugo.tech@gmail.com>
date Tue, 05 May 2015 18:15:21 -0300
parents 7fd9f1b7b878
children 92c3d22745b8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
402
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
1 java()
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2 local Luan = require "luan:Luan"
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
3 local error = Luan.error
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
4 local assert_integer = Luan.assert_integer
407
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
5 local Table = require "luan:Table"
402
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
6 local Stripe = require "java:com.stripe.Stripe"
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
7 local Customer = require "java:com.stripe.model.Customer"
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
8 local Charge = require "java:com.stripe.model.Charge"
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
9
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
10 currency = "usd"
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
11
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
12 function init(api_key)
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13 Stripe.apiKey = api_key
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
14 end
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
15
407
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
16
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
17 local function customer_table(java_customer)
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
18
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
19 local function subscription()
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
20 local list = java_customer.getSubscriptions().getData()
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
21 local size = list.size()
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
22 size <= 1 or error "more than 1 subscription"
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
23 return size == 1 and list.get(0) or nil
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
24 end
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
25
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
26 local this = Table.new_property_table()
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
27 local meta = Luan.get_metatable(this)
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
28
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
29 meta.get.id = java_customer.getId
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
30
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
31 function meta.get.subscription_status()
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
32 local s = subscription()
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
33 return s and s.getStatus()
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
34 end
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
35
452
56c23aa70045 Add cancel_subscription() function to Stripe customer.
Hugo Teixeira <hugo.tech@gmail.com>
parents: 407
diff changeset
36 function this.cancel_subscription()
56c23aa70045 Add cancel_subscription() function to Stripe customer.
Hugo Teixeira <hugo.tech@gmail.com>
parents: 407
diff changeset
37 local s = subscription()
56c23aa70045 Add cancel_subscription() function to Stripe customer.
Hugo Teixeira <hugo.tech@gmail.com>
parents: 407
diff changeset
38 s and s.cancel(nil)
56c23aa70045 Add cancel_subscription() function to Stripe customer.
Hugo Teixeira <hugo.tech@gmail.com>
parents: 407
diff changeset
39 end
56c23aa70045 Add cancel_subscription() function to Stripe customer.
Hugo Teixeira <hugo.tech@gmail.com>
parents: 407
diff changeset
40
407
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
41 return this
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
42 end
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
43
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
44
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
45 local function charge_table(java_charge)
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
46 local this = Table.new_property_table()
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
47 local meta = Luan.get_metatable(this)
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
48
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
49 meta.get.id = java_charge.getId
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
50 meta.get.amount = java_charge.getAmount
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
51
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
52 return this
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
53 end
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
54
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
55
402
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
56 function create_customer(params)
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
57 local java_customer = Customer.create(params)
407
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
58 return customer_table(java_customer)
402
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
59 end
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
60
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
61 function retrieve_customer(id)
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
62 local java_customer = Customer.retrieve(id)
407
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
63 return customer_table(java_customer)
402
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
64 end
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
65
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
66 function create_charge(params)
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
67 params.amount or error "missing parameter 'amount'"
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
68 params.amount = assert_integer(params.amount)
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
69 params.currency = params.currency or currency
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
70 local java_charge = Charge.create(params)
407
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
71 return charge_table(java_charge)
402
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
72 end
407
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
73
7fd9f1b7b878 replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents: 402
diff changeset
74 -- http://javadox.com/com.stripe/stripe-java/1.2.1/overview-summary.html