fake_stripe 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CONTRIBUTING.md +33 -0
- data/LICENSE +19 -0
- data/README.md +66 -0
- data/Rakefile +8 -0
- data/lib/fake_stripe.rb +49 -0
- data/lib/fake_stripe/assets/v1.js +38 -0
- data/lib/fake_stripe/assets/v2-mock.js +18 -0
- data/lib/fake_stripe/assets/v2.js +757 -0
- data/lib/fake_stripe/configuration.rb +15 -0
- data/lib/fake_stripe/fixtures/cancel_subscription.json +18 -0
- data/lib/fake_stripe/fixtures/cancel_transfer.json +161 -0
- data/lib/fake_stripe/fixtures/capture_charge.json +51 -0
- data/lib/fake_stripe/fixtures/close_dispute.json +13 -0
- data/lib/fake_stripe/fixtures/create_card.json +21 -0
- data/lib/fake_stripe/fixtures/create_charge.json +45 -0
- data/lib/fake_stripe/fixtures/create_coupon.json +17 -0
- data/lib/fake_stripe/fixtures/create_customer.json +51 -0
- data/lib/fake_stripe/fixtures/create_invoice.json +52 -0
- data/lib/fake_stripe/fixtures/create_invoiceitem.json +15 -0
- data/lib/fake_stripe/fixtures/create_plan.json +14 -0
- data/lib/fake_stripe/fixtures/create_recipient.json +25 -0
- data/lib/fake_stripe/fixtures/create_subscription.json +18 -0
- data/lib/fake_stripe/fixtures/create_token.json +26 -0
- data/lib/fake_stripe/fixtures/create_transfer.json +161 -0
- data/lib/fake_stripe/fixtures/delete_card.json +4 -0
- data/lib/fake_stripe/fixtures/delete_coupon.json +4 -0
- data/lib/fake_stripe/fixtures/delete_customer.json +4 -0
- data/lib/fake_stripe/fixtures/delete_customer_discount.json +4 -0
- data/lib/fake_stripe/fixtures/delete_invoiceitem.json +4 -0
- data/lib/fake_stripe/fixtures/delete_plan.json +4 -0
- data/lib/fake_stripe/fixtures/delete_recipient.json +4 -0
- data/lib/fake_stripe/fixtures/delete_subscription_discount.json +4 -0
- data/lib/fake_stripe/fixtures/list_application_fees.json +55 -0
- data/lib/fake_stripe/fixtures/list_balance_history.json +76 -0
- data/lib/fake_stripe/fixtures/list_cards.json +70 -0
- data/lib/fake_stripe/fixtures/list_charges.json +146 -0
- data/lib/fake_stripe/fixtures/list_coupons.json +58 -0
- data/lib/fake_stripe/fixtures/list_customers.json +157 -0
- data/lib/fake_stripe/fixtures/list_events.json +172 -0
- data/lib/fake_stripe/fixtures/list_invoiceitems.json +52 -0
- data/lib/fake_stripe/fixtures/list_invoices.json +199 -0
- data/lib/fake_stripe/fixtures/list_plans.json +49 -0
- data/lib/fake_stripe/fixtures/list_recipients.json +82 -0
- data/lib/fake_stripe/fixtures/list_subscriptions.json +100 -0
- data/lib/fake_stripe/fixtures/list_transfers.json +488 -0
- data/lib/fake_stripe/fixtures/pay_invoice.json +65 -0
- data/lib/fake_stripe/fixtures/refund_application_fee.json +17 -0
- data/lib/fake_stripe/fixtures/refund_charge.json +51 -0
- data/lib/fake_stripe/fixtures/retrieve_account.json +19 -0
- data/lib/fake_stripe/fixtures/retrieve_application_fee.json +17 -0
- data/lib/fake_stripe/fixtures/retrieve_balance.json +16 -0
- data/lib/fake_stripe/fixtures/retrieve_balance_transaction.json +23 -0
- data/lib/fake_stripe/fixtures/retrieve_card.json +21 -0
- data/lib/fake_stripe/fixtures/retrieve_charge.json +45 -0
- data/lib/fake_stripe/fixtures/retrieve_coupon.json +17 -0
- data/lib/fake_stripe/fixtures/retrieve_customer.json +51 -0
- data/lib/fake_stripe/fixtures/retrieve_event.json +56 -0
- data/lib/fake_stripe/fixtures/retrieve_invoice.json +64 -0
- data/lib/fake_stripe/fixtures/retrieve_invoice_line_items.json +61 -0
- data/lib/fake_stripe/fixtures/retrieve_invoiceitem.json +15 -0
- data/lib/fake_stripe/fixtures/retrieve_plan.json +14 -0
- data/lib/fake_stripe/fixtures/retrieve_recipient.json +25 -0
- data/lib/fake_stripe/fixtures/retrieve_subscription.json +31 -0
- data/lib/fake_stripe/fixtures/retrieve_token.json +26 -0
- data/lib/fake_stripe/fixtures/retrieve_transfer.json +161 -0
- data/lib/fake_stripe/fixtures/retrieve_upcoming_invoice.json +63 -0
- data/lib/fake_stripe/fixtures/update_card.json +21 -0
- data/lib/fake_stripe/fixtures/update_charge.json +45 -0
- data/lib/fake_stripe/fixtures/update_customer.json +51 -0
- data/lib/fake_stripe/fixtures/update_dispute.json +13 -0
- data/lib/fake_stripe/fixtures/update_invoice.json +64 -0
- data/lib/fake_stripe/fixtures/update_invoiceitem.json +15 -0
- data/lib/fake_stripe/fixtures/update_plan.json +14 -0
- data/lib/fake_stripe/fixtures/update_recipient.json +25 -0
- data/lib/fake_stripe/fixtures/update_subscription.json +18 -0
- data/lib/fake_stripe/fixtures/update_transfer.json +161 -0
- data/lib/fake_stripe/initializers/webmock.rb +3 -0
- data/lib/fake_stripe/stub_app.rb +307 -0
- data/lib/fake_stripe/stub_stripe_js.rb +29 -0
- data/lib/fake_stripe/version.rb +3 -0
- metadata +211 -0
@@ -0,0 +1,51 @@
|
|
1
|
+
{
|
2
|
+
"object": "customer",
|
3
|
+
"created": 1394731627,
|
4
|
+
"id": "abcdefghijklmnop",
|
5
|
+
"livemode": false,
|
6
|
+
"description": "Customer for test@example.com",
|
7
|
+
"email": null,
|
8
|
+
"delinquent": false,
|
9
|
+
"metadata": {
|
10
|
+
},
|
11
|
+
"subscriptions": {
|
12
|
+
"object": "list",
|
13
|
+
"count": 0,
|
14
|
+
"url": "/v1/customers/abcdefghijklmnop/subscriptions",
|
15
|
+
"data": [
|
16
|
+
|
17
|
+
]
|
18
|
+
},
|
19
|
+
"discount": null,
|
20
|
+
"account_balance": 0,
|
21
|
+
"currency": "usd",
|
22
|
+
"cards": {
|
23
|
+
"object": "list",
|
24
|
+
"count": 1,
|
25
|
+
"url": "/v1/customers/abcdefghijklmnop/cards",
|
26
|
+
"data": [
|
27
|
+
{
|
28
|
+
"id": "card_1234567890ABCDEFghijklmn",
|
29
|
+
"object": "card",
|
30
|
+
"last4": "4242",
|
31
|
+
"brand": "Visa",
|
32
|
+
"exp_month": 10,
|
33
|
+
"exp_year": 2016,
|
34
|
+
"fingerprint": "ZYXWVUTSRQPONMLK",
|
35
|
+
"customer": "abcdefghijklmnop",
|
36
|
+
"country": "US",
|
37
|
+
"name": "ralph@example.com",
|
38
|
+
"address_line1": null,
|
39
|
+
"address_line2": null,
|
40
|
+
"address_city": null,
|
41
|
+
"address_state": null,
|
42
|
+
"address_zip": null,
|
43
|
+
"address_country": null,
|
44
|
+
"cvc_check": "pass",
|
45
|
+
"address_line1_check": null,
|
46
|
+
"address_zip_check": null
|
47
|
+
}
|
48
|
+
]
|
49
|
+
},
|
50
|
+
"default_card": "card_1234567890ABCDEFghijklmn"
|
51
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
"charge": "ch_103ewb2eZvKYlo2CjopvmZyM",
|
3
|
+
"amount": 1000,
|
4
|
+
"created": 1394732152,
|
5
|
+
"status": "needs_response",
|
6
|
+
"livemode": false,
|
7
|
+
"currency": "usd",
|
8
|
+
"object": "dispute",
|
9
|
+
"reason": "general",
|
10
|
+
"balance_transaction": "txn_103cQg2eZvKYlo2CYKVlR2nh",
|
11
|
+
"evidence_due_by": 1396396799,
|
12
|
+
"evidence": "Here's evidence showing this charge is legitimate."
|
13
|
+
}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
{
|
2
|
+
"date": 1394731307,
|
3
|
+
"id": "in_103ewP2eZvKYlo2CFLLwIX7a",
|
4
|
+
"period_start": 1394731307,
|
5
|
+
"period_end": 1394731307,
|
6
|
+
"lines": {
|
7
|
+
"data": [
|
8
|
+
{
|
9
|
+
"id": "sub_3ewdhCIki3FxWt",
|
10
|
+
"object": "line_item",
|
11
|
+
"type": "subscription",
|
12
|
+
"livemode": true,
|
13
|
+
"amount": 2000,
|
14
|
+
"currency": "usd",
|
15
|
+
"proration": false,
|
16
|
+
"period": {
|
17
|
+
"start": 1397410552,
|
18
|
+
"end": 1400002552
|
19
|
+
},
|
20
|
+
"quantity": 1,
|
21
|
+
"plan": {
|
22
|
+
"interval": "month",
|
23
|
+
"name": "New plan name123",
|
24
|
+
"created": 1386247539,
|
25
|
+
"amount": 2000,
|
26
|
+
"currency": "usd",
|
27
|
+
"id": "gold21323",
|
28
|
+
"object": "plan",
|
29
|
+
"livemode": false,
|
30
|
+
"interval_count": 1,
|
31
|
+
"trial_period_days": null,
|
32
|
+
"metadata": {
|
33
|
+
}
|
34
|
+
},
|
35
|
+
"description": null,
|
36
|
+
"metadata": null
|
37
|
+
}
|
38
|
+
],
|
39
|
+
"count": 1,
|
40
|
+
"object": "list",
|
41
|
+
"url": "/v1/invoices/in_103ewP2eZvKYlo2CFLLwIX7a/lines"
|
42
|
+
},
|
43
|
+
"subtotal": 0,
|
44
|
+
"total": 0,
|
45
|
+
"customer": "abcdefghijklmnop",
|
46
|
+
"object": "invoice",
|
47
|
+
"attempted": true,
|
48
|
+
"closed": true,
|
49
|
+
"paid": true,
|
50
|
+
"livemode": false,
|
51
|
+
"attempt_count": 0,
|
52
|
+
"amount_due": 0,
|
53
|
+
"currency": "usd",
|
54
|
+
"starting_balance": 0,
|
55
|
+
"ending_balance": null,
|
56
|
+
"next_payment_attempt": null,
|
57
|
+
"charge": null,
|
58
|
+
"discount": null,
|
59
|
+
"application_fee": null,
|
60
|
+
"subscription": "sub_3ewPpEGKafMelq",
|
61
|
+
"metadata": {
|
62
|
+
},
|
63
|
+
"description": null
|
64
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{
|
2
|
+
"object": "invoiceitem",
|
3
|
+
"id": "ii_103UAn2eZvKYlo2CkLmj7ne9",
|
4
|
+
"date": 1392247767,
|
5
|
+
"amount": 1500,
|
6
|
+
"livemode": false,
|
7
|
+
"proration": false,
|
8
|
+
"currency": "usd",
|
9
|
+
"customer": "abcdefghijklmnop",
|
10
|
+
"description": "Customer for test@example.com",
|
11
|
+
"metadata": {
|
12
|
+
},
|
13
|
+
"invoice": "in_103UAp2eZvKYlo2C6xOPMzPj",
|
14
|
+
"subscription": null
|
15
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
{
|
2
|
+
"interval": "month",
|
3
|
+
"name": "New plan name",
|
4
|
+
"created": 1386247539,
|
5
|
+
"amount": 2000,
|
6
|
+
"currency": "usd",
|
7
|
+
"id": "gold21323",
|
8
|
+
"object": "plan",
|
9
|
+
"livemode": false,
|
10
|
+
"interval_count": 1,
|
11
|
+
"trial_period_days": null,
|
12
|
+
"metadata": {
|
13
|
+
}
|
14
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"id": "rp_103WyK2eZvKYlo2CXgqlepdQ",
|
3
|
+
"object": "recipient",
|
4
|
+
"created": 1392893343,
|
5
|
+
"livemode": false,
|
6
|
+
"type": "individual",
|
7
|
+
"description": "Recipient for test@example.com",
|
8
|
+
"email": null,
|
9
|
+
"name": "John Doe",
|
10
|
+
"verified": false,
|
11
|
+
"metadata": {
|
12
|
+
},
|
13
|
+
"active_account": {
|
14
|
+
"object": "bank_account",
|
15
|
+
"id": "ba_103WyK2eZvKYlo2CRbxre4Eb",
|
16
|
+
"bank_name": "BANK OF AMERICA, N.A.",
|
17
|
+
"last4": "6789",
|
18
|
+
"country": "US",
|
19
|
+
"currency": "usd",
|
20
|
+
"validated": false,
|
21
|
+
"verified": false,
|
22
|
+
"fingerprint": "j1CvuuIQNXSIdZuK",
|
23
|
+
"disabled": false
|
24
|
+
}
|
25
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
{
|
2
|
+
"id": "sub_3ewdhCIki3FxWt",
|
3
|
+
"plan": "basic",
|
4
|
+
"object": "subscription",
|
5
|
+
"start": 1394732152,
|
6
|
+
"status": "active",
|
7
|
+
"customer": "abcdefghijklmnop",
|
8
|
+
"cancel_at_period_end": false,
|
9
|
+
"current_period_start": 1394732152,
|
10
|
+
"current_period_end": 1397410552,
|
11
|
+
"ended_at": null,
|
12
|
+
"trial_start": null,
|
13
|
+
"trial_end": null,
|
14
|
+
"canceled_at": null,
|
15
|
+
"quantity": 1,
|
16
|
+
"application_fee_percent": null,
|
17
|
+
"discount": null
|
18
|
+
}
|
@@ -0,0 +1,161 @@
|
|
1
|
+
{
|
2
|
+
"id": "tr_103ehW2eZvKYlo2CvqXdcIQL",
|
3
|
+
"object": "transfer",
|
4
|
+
"date": 1394841600,
|
5
|
+
"livemode": false,
|
6
|
+
"amount": 336081,
|
7
|
+
"currency": "usd",
|
8
|
+
"status": "pending",
|
9
|
+
"balance_transaction": "txn_103cQg2eZvKYlo2CYKVlR2nh",
|
10
|
+
"summary": {
|
11
|
+
"charge_gross": 365872,
|
12
|
+
"charge_fees": 29694,
|
13
|
+
"charge_fee_details": [
|
14
|
+
{
|
15
|
+
"amount": 29661,
|
16
|
+
"currency": "usd",
|
17
|
+
"type": "stripe_fee",
|
18
|
+
"description": null,
|
19
|
+
"application": null
|
20
|
+
}
|
21
|
+
],
|
22
|
+
"refund_gross": -100,
|
23
|
+
"refund_fees": -3,
|
24
|
+
"refund_fee_details": [
|
25
|
+
{
|
26
|
+
"amount": -3,
|
27
|
+
"currency": "usd",
|
28
|
+
"type": "stripe_fee",
|
29
|
+
"description": null,
|
30
|
+
"application": null
|
31
|
+
}
|
32
|
+
],
|
33
|
+
"adjustment_gross": 0,
|
34
|
+
"adjustment_fees": 0,
|
35
|
+
"adjustment_fee_details": [
|
36
|
+
|
37
|
+
],
|
38
|
+
"validation_fees": 0,
|
39
|
+
"validation_count": 0,
|
40
|
+
"charge_count": 625,
|
41
|
+
"refund_count": 1,
|
42
|
+
"adjustment_count": 0,
|
43
|
+
"net": 336081,
|
44
|
+
"currency": "usd",
|
45
|
+
"collected_fee_gross": 0,
|
46
|
+
"collected_fee_count": 0,
|
47
|
+
"collected_fee_refund_gross": 0,
|
48
|
+
"collected_fee_refund_count": 0
|
49
|
+
},
|
50
|
+
"transactions": {
|
51
|
+
"object": "list",
|
52
|
+
"count": 626,
|
53
|
+
"url": "/v1/transfers/tr_103ehW2eZvKYlo2CvqXdcIQL/transactions",
|
54
|
+
"data": [
|
55
|
+
{
|
56
|
+
"id": "ch_103d7S2eZvKYlo2ClgiFvMVj",
|
57
|
+
"type": "charge",
|
58
|
+
"amount": 500,
|
59
|
+
"currency": "usd",
|
60
|
+
"net": 455,
|
61
|
+
"created": 1394311101,
|
62
|
+
"description": null,
|
63
|
+
"fee": 45,
|
64
|
+
"fee_details": [
|
65
|
+
{
|
66
|
+
"amount": 45,
|
67
|
+
"currency": "usd",
|
68
|
+
"type": "stripe_fee",
|
69
|
+
"description": "Stripe processing fees",
|
70
|
+
"application": null
|
71
|
+
}
|
72
|
+
]
|
73
|
+
},
|
74
|
+
{
|
75
|
+
"id": "ch_103d4l2eZvKYlo2CYxMUKdVS",
|
76
|
+
"type": "charge",
|
77
|
+
"amount": 500,
|
78
|
+
"currency": "usd",
|
79
|
+
"net": 455,
|
80
|
+
"created": 1394301116,
|
81
|
+
"description": null,
|
82
|
+
"fee": 45,
|
83
|
+
"fee_details": [
|
84
|
+
{
|
85
|
+
"amount": 45,
|
86
|
+
"currency": "usd",
|
87
|
+
"type": "stripe_fee",
|
88
|
+
"description": "Stripe processing fees",
|
89
|
+
"application": null
|
90
|
+
}
|
91
|
+
]
|
92
|
+
},
|
93
|
+
{
|
94
|
+
"id": "ch_103cv62eZvKYlo2CC16QiOJh",
|
95
|
+
"type": "charge",
|
96
|
+
"amount": 2000,
|
97
|
+
"currency": "usd",
|
98
|
+
"net": 1912,
|
99
|
+
"created": 1394265182,
|
100
|
+
"description": "payinguser@example.com",
|
101
|
+
"fee": 88,
|
102
|
+
"fee_details": [
|
103
|
+
{
|
104
|
+
"amount": 88,
|
105
|
+
"currency": "usd",
|
106
|
+
"type": "stripe_fee",
|
107
|
+
"description": "Stripe processing fees",
|
108
|
+
"application": null
|
109
|
+
}
|
110
|
+
]
|
111
|
+
},
|
112
|
+
{
|
113
|
+
"id": "ch_103cnV2eZvKYlo2CRoDM3aSW",
|
114
|
+
"type": "charge",
|
115
|
+
"amount": 500,
|
116
|
+
"currency": "usd",
|
117
|
+
"net": 455,
|
118
|
+
"created": 1394236904,
|
119
|
+
"description": null,
|
120
|
+
"fee": 45,
|
121
|
+
"fee_details": [
|
122
|
+
{
|
123
|
+
"amount": 45,
|
124
|
+
"currency": "usd",
|
125
|
+
"type": "stripe_fee",
|
126
|
+
"description": "Stripe processing fees",
|
127
|
+
"application": null
|
128
|
+
}
|
129
|
+
]
|
130
|
+
},
|
131
|
+
{
|
132
|
+
"id": "ch_103cnX2eZvKYlo2CrtXEpq5u",
|
133
|
+
"type": "charge",
|
134
|
+
"amount": 500,
|
135
|
+
"currency": "usd",
|
136
|
+
"net": 455,
|
137
|
+
"created": 1394237040,
|
138
|
+
"description": null,
|
139
|
+
"fee": 45,
|
140
|
+
"fee_details": [
|
141
|
+
{
|
142
|
+
"amount": 45,
|
143
|
+
"currency": "usd",
|
144
|
+
"type": "stripe_fee",
|
145
|
+
"description": "Stripe processing fees",
|
146
|
+
"application": null
|
147
|
+
}
|
148
|
+
]
|
149
|
+
}
|
150
|
+
]
|
151
|
+
},
|
152
|
+
"other_transfers": [
|
153
|
+
"tr_103ehW2eZvKYlo2CvqXdcIQL"
|
154
|
+
],
|
155
|
+
"account": null,
|
156
|
+
"description": "Transfer to test@example.com",
|
157
|
+
"metadata": {
|
158
|
+
},
|
159
|
+
"statement_descriptor": null,
|
160
|
+
"recipient": null
|
161
|
+
}
|
@@ -0,0 +1,307 @@
|
|
1
|
+
require 'sinatra/base'
|
2
|
+
|
3
|
+
module FakeStripe
|
4
|
+
class StubApp < Sinatra::Base
|
5
|
+
|
6
|
+
# Charges
|
7
|
+
post '/v1/charges' do
|
8
|
+
FakeStripe.charge_count += 1
|
9
|
+
json_response 201, fixture('create_charge')
|
10
|
+
end
|
11
|
+
|
12
|
+
get '/v1/charges/:charge_id' do
|
13
|
+
json_response 200, fixture('retrieve_charge')
|
14
|
+
end
|
15
|
+
|
16
|
+
post '/v1/charges/:charge_id' do
|
17
|
+
json_response 200, fixture('update_charge')
|
18
|
+
end
|
19
|
+
|
20
|
+
post '/v1/charges/:charge_id/refund' do
|
21
|
+
FakeStripe.refund_count += 1
|
22
|
+
json_response 200, fixture('refund_charge')
|
23
|
+
end
|
24
|
+
|
25
|
+
post '/v1/charges/:charge_id/capture' do
|
26
|
+
json_response 200, fixture('capture_charge')
|
27
|
+
end
|
28
|
+
|
29
|
+
get '/v1/charges' do
|
30
|
+
json_response 200, fixture('list_charges')
|
31
|
+
end
|
32
|
+
|
33
|
+
# Customers
|
34
|
+
post '/v1/customers' do
|
35
|
+
FakeStripe.customer_count += 1
|
36
|
+
json_response 200, fixture('create_customer')
|
37
|
+
end
|
38
|
+
|
39
|
+
get '/v1/customers/:id' do
|
40
|
+
json_response 200, fixture('retrieve_customer')
|
41
|
+
end
|
42
|
+
|
43
|
+
post '/v1/customers/:id' do
|
44
|
+
json_response 200, fixture('update_customer')
|
45
|
+
end
|
46
|
+
|
47
|
+
delete '/v1/customers/:customer_id' do
|
48
|
+
json_response 200, fixture('delete_customer')
|
49
|
+
end
|
50
|
+
|
51
|
+
get '/v1/customers' do
|
52
|
+
json_response 200, fixture('list_customers')
|
53
|
+
end
|
54
|
+
|
55
|
+
# Cards
|
56
|
+
post '/v1/customers/:customer_id/cards' do
|
57
|
+
json_response 200, fixture('create_card')
|
58
|
+
end
|
59
|
+
|
60
|
+
get '/v1/customers/:customer_id/cards/:card_id' do
|
61
|
+
json_response 200, fixture('retrieve_card')
|
62
|
+
end
|
63
|
+
|
64
|
+
post '/v1/customers/:customer_id/cards/:card_id' do
|
65
|
+
json_response 200, fixture('update_card')
|
66
|
+
end
|
67
|
+
|
68
|
+
delete '/v1/customers/:customer_id/cards/:card_id' do
|
69
|
+
json_response 200, fixture('delete_card')
|
70
|
+
end
|
71
|
+
|
72
|
+
get '/v1/customers/:customer_id/cards' do
|
73
|
+
json_response 200, fixture('list_cards')
|
74
|
+
end
|
75
|
+
|
76
|
+
# Subscriptions
|
77
|
+
post '/v1/customers/:customer_id/subscriptions' do
|
78
|
+
json_response 200, fixture('create_subscription')
|
79
|
+
end
|
80
|
+
|
81
|
+
get '/v1/customers/:customer_id/subscriptions/:subscription_id' do
|
82
|
+
json_response 200, fixture('retrieve_subscription')
|
83
|
+
end
|
84
|
+
|
85
|
+
post '/v1/customers/:customer_id/subscriptions/:subscription_id' do
|
86
|
+
json_response 200, fixture('update_subscription')
|
87
|
+
end
|
88
|
+
|
89
|
+
delete '/v1/customers/:customer_id/subscriptions/:subscription_id' do
|
90
|
+
json_response 200, fixture('cancel_subscription')
|
91
|
+
end
|
92
|
+
|
93
|
+
get '/v1/customers/:customer_id/subscriptions' do
|
94
|
+
json_response 200, fixture('list_subscriptions')
|
95
|
+
end
|
96
|
+
|
97
|
+
# Plans
|
98
|
+
post '/v1/plans' do
|
99
|
+
json_response 200, fixture('create_plan')
|
100
|
+
end
|
101
|
+
|
102
|
+
get '/v1/plans/:plan_id' do
|
103
|
+
json_response 200, fixture('retrieve_plan')
|
104
|
+
end
|
105
|
+
|
106
|
+
post '/v1/plans/:plan_id' do
|
107
|
+
json_response 200, fixture('update_plan')
|
108
|
+
end
|
109
|
+
|
110
|
+
delete '/v1/plans/:plan_id' do
|
111
|
+
json_response 200, fixture('delete_plan')
|
112
|
+
end
|
113
|
+
|
114
|
+
get '/v1/plans' do
|
115
|
+
json_response 200, fixture('list_plans')
|
116
|
+
end
|
117
|
+
|
118
|
+
# Coupons
|
119
|
+
post '/v1/coupons' do
|
120
|
+
json_response 200, fixture('create_coupon')
|
121
|
+
end
|
122
|
+
|
123
|
+
get '/v1/coupons/:coupon_id' do
|
124
|
+
json_response 200, fixture('retrieve_coupon')
|
125
|
+
end
|
126
|
+
|
127
|
+
delete '/v1/coupons/:coupon_id' do
|
128
|
+
json_response 200, fixture('delete_coupon')
|
129
|
+
end
|
130
|
+
|
131
|
+
get '/v1/coupons' do
|
132
|
+
json_response 200, fixture('list_coupons')
|
133
|
+
end
|
134
|
+
|
135
|
+
# Discounts
|
136
|
+
delete '/v1/customers/:customer_id/discount' do
|
137
|
+
json_response 200, fixture('delete_customer_discount')
|
138
|
+
end
|
139
|
+
|
140
|
+
delete '/v1/customers/:customer_id/subscriptions/:subscription_id/discount' do
|
141
|
+
json_response 200, fixture('delete_subscription_discount')
|
142
|
+
end
|
143
|
+
|
144
|
+
# Invoices
|
145
|
+
get '/v1/invoices/:invoice_id' do
|
146
|
+
json_response 200, fixture('retrieve_invoice')
|
147
|
+
end
|
148
|
+
|
149
|
+
get '/v1/invoices/:invoice_id/lines' do
|
150
|
+
json_response 200, fixture('retrieve_invoice_line_items')
|
151
|
+
end
|
152
|
+
|
153
|
+
post '/v1/invoices' do
|
154
|
+
json_response 200, fixture('create_invoice')
|
155
|
+
end
|
156
|
+
|
157
|
+
post '/v1/invoices/:invoice_id/pay' do
|
158
|
+
json_response 200, fixture('pay_invoice')
|
159
|
+
end
|
160
|
+
|
161
|
+
post '/v1/invoices/:invoice_id' do
|
162
|
+
json_response 200, fixture('update_invoice')
|
163
|
+
end
|
164
|
+
|
165
|
+
get '/v1/invoices' do
|
166
|
+
json_response 200, fixture('list_invoices')
|
167
|
+
end
|
168
|
+
|
169
|
+
get '/v1/invoices/upcoming' do
|
170
|
+
json_response 200, fixture('retrieve_upcoming_invoice')
|
171
|
+
end
|
172
|
+
|
173
|
+
# Invoice Items
|
174
|
+
post '/v1/invoiceitems' do
|
175
|
+
json_response 200, fixture('create_invoiceitem')
|
176
|
+
end
|
177
|
+
|
178
|
+
get '/v1/invoiceitems/:invoiceitem_id' do
|
179
|
+
json_response 200, fixture('retrieve_invoiceitem')
|
180
|
+
end
|
181
|
+
|
182
|
+
post '/v1/invoiceitems/:invoiceitem_id' do
|
183
|
+
json_response 200, fixture('update_invoiceitem')
|
184
|
+
end
|
185
|
+
|
186
|
+
delete '/v1/invoiceitems/:invoiceitem_id' do
|
187
|
+
json_response 200, fixture('delete_invoiceitem')
|
188
|
+
end
|
189
|
+
|
190
|
+
get '/v1/invoiceitems' do
|
191
|
+
json_response 200, fixture('list_invoiceitems')
|
192
|
+
end
|
193
|
+
|
194
|
+
# Disputes
|
195
|
+
post '/v1/charges/:charge_id/dispute' do
|
196
|
+
json_response 200, fixture('update_dispute')
|
197
|
+
end
|
198
|
+
|
199
|
+
post '/v1/charges/:charge_id/dispute/close' do
|
200
|
+
json_response 200, fixture('close_dispute')
|
201
|
+
end
|
202
|
+
|
203
|
+
# Transfers
|
204
|
+
post '/v1/transfers' do
|
205
|
+
json_response 200, fixture('create_transfer')
|
206
|
+
end
|
207
|
+
|
208
|
+
get '/v1/transfers/:transfer_id' do
|
209
|
+
json_response 200, fixture('retrieve_transfer')
|
210
|
+
end
|
211
|
+
|
212
|
+
post '/v1/transfers/:transfer_id' do
|
213
|
+
json_response 200, fixture('update_transfer')
|
214
|
+
end
|
215
|
+
|
216
|
+
post '/v1/transfers/:transfer_id/cancel' do
|
217
|
+
json_response 200, fixture('cancel_transfer')
|
218
|
+
end
|
219
|
+
|
220
|
+
get '/v1/transfers' do
|
221
|
+
json_response 200, fixture('list_transfers')
|
222
|
+
end
|
223
|
+
|
224
|
+
# Recipients
|
225
|
+
post '/v1/recipients' do
|
226
|
+
json_response 200, fixture('create_recipient')
|
227
|
+
end
|
228
|
+
|
229
|
+
get '/v1/recipients/:recipient_id' do
|
230
|
+
json_response 200, fixture('retrieve_recipient')
|
231
|
+
end
|
232
|
+
|
233
|
+
post '/v1/recipients/:recipient_id' do
|
234
|
+
json_response 200, fixture('update_recipient')
|
235
|
+
end
|
236
|
+
|
237
|
+
delete '/v1/recipients/:recipient_id' do
|
238
|
+
json_response 200, fixture('delete_recipient')
|
239
|
+
end
|
240
|
+
|
241
|
+
get '/v1/recipients' do
|
242
|
+
json_response 200, fixture('list_recipients')
|
243
|
+
end
|
244
|
+
|
245
|
+
# Application Fees
|
246
|
+
get '/v1/application_fees/:fee_id' do
|
247
|
+
json_response 200, fixture('retrieve_application_fee')
|
248
|
+
end
|
249
|
+
|
250
|
+
post '/v1/application_fees/:fee_id/refund' do
|
251
|
+
json_response 200, fixture('refund_application_fee')
|
252
|
+
end
|
253
|
+
|
254
|
+
get '/v1/application_fees' do
|
255
|
+
json_response 200, fixture('list_application_fees')
|
256
|
+
end
|
257
|
+
|
258
|
+
# Accounts
|
259
|
+
get '/v1/account' do
|
260
|
+
json_response 200, fixture('retrieve_account')
|
261
|
+
end
|
262
|
+
|
263
|
+
# Balance
|
264
|
+
get '/v1/balance' do
|
265
|
+
json_response 200, fixture('retrieve_balance')
|
266
|
+
end
|
267
|
+
|
268
|
+
get '/v1/balance/history/:transaction_id' do
|
269
|
+
json_response 200, fixture('retrieve_balance_transaction')
|
270
|
+
end
|
271
|
+
|
272
|
+
get '/v1/balance/history' do
|
273
|
+
json_response 200, fixture('list_balance_history')
|
274
|
+
end
|
275
|
+
|
276
|
+
# Events
|
277
|
+
get '/v1/events/:event_id' do
|
278
|
+
json_response 200, fixture('retrieve_event')
|
279
|
+
end
|
280
|
+
|
281
|
+
get '/v1/events' do
|
282
|
+
json_response 200, fixture('list_events')
|
283
|
+
end
|
284
|
+
|
285
|
+
# Tokens
|
286
|
+
post '/v1/tokens' do
|
287
|
+
json_response 200, fixture('create_token')
|
288
|
+
end
|
289
|
+
|
290
|
+
get '/v1/tokens/:token_id' do
|
291
|
+
json_response 200, fixture('retrieve_token')
|
292
|
+
end
|
293
|
+
|
294
|
+
private
|
295
|
+
|
296
|
+
def fixture(file_name)
|
297
|
+
file_path = File.join(FakeStripe.fixture_path, "#{file_name}.json")
|
298
|
+
File.open(file_path, 'rb').read
|
299
|
+
end
|
300
|
+
|
301
|
+
def json_response(response_code, response_body)
|
302
|
+
content_type :json
|
303
|
+
status response_code
|
304
|
+
response_body
|
305
|
+
end
|
306
|
+
end
|
307
|
+
end
|