annotate stripe/src/luan/modules/stripe/StripeLuan.java @ 402:62b457c50594

add stripe; change Luan.values to only return values, not indexes;
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 28 Apr 2015 22:38:31 -0600
parents
children
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 package luan.modules.stripe;
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
3 import luan.Luan;
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
4 import luan.LuanTable;
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
5 import luan.LuanProperty;
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
6 import com.stripe.model.Customer;
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
7 import com.stripe.model.Charge;
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
8 import com.stripe.model.Subscription;
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
9 import java.util.List;
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
10
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
11
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
12 public final class StripeLuan {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
14 public static LuanTable table(final Customer customer) {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
15
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
16 LuanTable tbl = Luan.newPropertyTable();
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
17
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
18 tbl.put( "id", new LuanProperty() {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
19 @Override public Object get() {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
20 return customer.getId();
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
21 }
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
22 } );
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
23
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
24 tbl.put( "subscription_status", new LuanProperty() {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
25 @Override public Object get() {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
26 Subscription s = getSubscription(customer);
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
27 return s==null ? null : s.getStatus();
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
28 }
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
29 } );
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
30
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
31 return tbl;
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
32 }
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
33
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
34 public static LuanTable table(final Charge charge) {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
35 LuanTable tbl = Luan.newPropertyTable();
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
36
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
37 tbl.put( "id", new LuanProperty() {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
38 @Override public Object get() {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
39 return charge.getId();
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
40 }
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
41 } );
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
42
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
43 tbl.put( "amount", new LuanProperty() {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
44 @Override public Object get() {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
45 return charge.getAmount();
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
46 }
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
47 /*
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
48 @Override public boolean set(Object value) {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
49 charge.setAmount(check_integer(value)); return true;
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
50 }
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
51 */
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
52 } );
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
53
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
54 return tbl;
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
55 }
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
56
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
57 public static Subscription getSubscription(Customer customer) {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
58 List<Subscription> list = customer.getSubscriptions().getData();
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
59 switch(list.size()) {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
60 case 0:
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
61 return null;
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
62 case 1:
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
63 return list.get(0);
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
64 default:
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
65 throw new RuntimeException("more than 1 subscription");
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
66 }
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
67 }
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
68 /*
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
69 private static Integer check_integer(Object value) {
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
70 if( value==null )
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
71 return (Integer)null;
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
72 Integer i = Luan.asInteger(value);
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
73 if( i==null )
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
74 throw new IllegalArgumentException("value must be an integer");
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
75 return i;
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
76 }
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
77 */
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
78 }
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
79
62b457c50594 add stripe;
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
80 // http://javadox.com/com.stripe/stripe-java/1.2.1/overview-summary.html