Mercurial Hosting > luan
diff 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 |
line wrap: on
line diff
--- a/stripe/src/luan/modules/stripe/Stripe.luan Wed Apr 29 11:24:00 2015 -0600 +++ b/stripe/src/luan/modules/stripe/Stripe.luan Wed Apr 29 13:01:00 2015 -0600 @@ -2,7 +2,7 @@ local Luan = require "luan:Luan" local error = Luan.error local assert_integer = Luan.assert_integer -local StripeLuan = require "java:luan.modules.stripe.StripeLuan" +local Table = require "luan:Table" local Stripe = require "java:com.stripe.Stripe" local Customer = require "java:com.stripe.model.Customer" local Charge = require "java:com.stripe.model.Charge" @@ -13,14 +13,49 @@ Stripe.apiKey = api_key end + +local function customer_table(java_customer) + + local function subscription() + local list = java_customer.getSubscriptions().getData() + local size = list.size() + size <= 1 or error "more than 1 subscription" + return size == 1 and list.get(0) or nil + end + + local this = Table.new_property_table() + local meta = Luan.get_metatable(this) + + meta.get.id = java_customer.getId + + function meta.get.subscription_status() + local s = subscription() + return s and s.getStatus() + end + + return this +end + + +local function charge_table(java_charge) + local this = Table.new_property_table() + local meta = Luan.get_metatable(this) + + meta.get.id = java_charge.getId + meta.get.amount = java_charge.getAmount + + return this +end + + function create_customer(params) local java_customer = Customer.create(params) - return StripeLuan.table(java_customer) + return customer_table(java_customer) end function retrieve_customer(id) local java_customer = Customer.retrieve(id) - return StripeLuan.table(java_customer) + return customer_table(java_customer) end function create_charge(params) @@ -28,5 +63,7 @@ params.amount = assert_integer(params.amount) params.currency = params.currency or currency local java_charge = Charge.create(params) - return StripeLuan.table(java_charge) + return charge_table(java_charge) end + +-- http://javadox.com/com.stripe/stripe-java/1.2.1/overview-summary.html