Mercurial Hosting > luan
view stripe/src/luan/modules/stripe/Stripe.luan @ 618:5e495e4e560b
add lucene indexed_only_fields
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 01 Jan 2016 01:24:10 -0700 |
parents | 92c3d22745b8 |
children | ca169567ce07 |
line wrap: on
line source
java() local Luan = require "luan:Luan" local error = Luan.error local assert_integer = Luan.assert_integer 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" local M = {} M.currency = "usd" function M.init(api_key) 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 function this.cancel_subscription() local s = subscription() s and s.cancel(nil) 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 M.create_customer(params) local java_customer = Customer.create(params) return customer_table(java_customer) end function M.retrieve_customer(id) local java_customer = Customer.retrieve(id) return customer_table(java_customer) end function M.create_charge(params) params.amount or error "missing parameter 'amount'" params.amount = assert_integer(params.amount) params.currency = params.currency or M.currency local java_charge = Charge.create(params) return charge_table(java_charge) end return M -- http://javadox.com/com.stripe/stripe-java/1.2.1/overview-summary.html