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
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
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
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
51 function create_customer(params)
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
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
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
54 end
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
55
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
56 function retrieve_customer(id)
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
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
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 create_charge(params)
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
62 params.amount or error "missing parameter 'amount'"
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
63 params.amount = assert_integer(params.amount)
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
64 params.currency = params.currency or currency
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
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
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
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