Mercurial Hosting > luan
annotate stripe/src/luan/modules/stripe/Stripe.luan @ 407:7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 29 Apr 2015 13:01:00 -0600 |
parents | 62b457c50594 |
children | 56c23aa70045 |
rev | line source |
---|---|
402 | 1 java() |
2 local Luan = require "luan:Luan" | |
3 local error = Luan.error | |
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 | 6 local Stripe = require "java:com.stripe.Stripe" |
7 local Customer = require "java:com.stripe.model.Customer" | |
8 local Charge = require "java:com.stripe.model.Charge" | |
9 | |
10 currency = "usd" | |
11 | |
12 function init(api_key) | |
13 Stripe.apiKey = api_key | |
14 end | |
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 |
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
36 return this |
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
37 end |
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
38 |
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
39 |
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
40 local function charge_table(java_charge) |
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
41 local this = Table.new_property_table() |
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
42 local meta = Luan.get_metatable(this) |
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 meta.get.id = java_charge.getId |
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
45 meta.get.amount = java_charge.getAmount |
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
46 |
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
47 return this |
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
48 end |
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
49 |
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
50 |
402 | 51 function create_customer(params) |
52 local java_customer = Customer.create(params) | |
407
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
53 return customer_table(java_customer) |
402 | 54 end |
55 | |
56 function retrieve_customer(id) | |
57 local java_customer = Customer.retrieve(id) | |
407
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
58 return customer_table(java_customer) |
402 | 59 end |
60 | |
61 function create_charge(params) | |
62 params.amount or error "missing parameter 'amount'" | |
63 params.amount = assert_integer(params.amount) | |
64 params.currency = params.currency or currency | |
65 local java_charge = Charge.create(params) | |
407
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
66 return charge_table(java_charge) |
402 | 67 end |
407
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
68 |
7fd9f1b7b878
replace LuanPropertyTable with LuanPropertyMeta
Franklin Schmidt <fschmidt@gmail.com>
parents:
402
diff
changeset
|
69 -- http://javadox.com/com.stripe/stripe-java/1.2.1/overview-summary.html |