stripe-cli 1.2.2 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 22c5543234a4d305f3c7600096659ac3960cd3e6
4
- data.tar.gz: 9474daf90c016de00e5815fbda102f55880c5f98
3
+ metadata.gz: 542bd7dcfa28ee42f23292d05d756c403af1ff47
4
+ data.tar.gz: a2ec85e9b793942e1c17075496b4443799d48bf2
5
5
  SHA512:
6
- metadata.gz: d9db555bb4e27250c79841b8c0a8f996af5f15e1c51e6c86eac8c32ba537a064a1c3346f0f72710d3854a4cd534f0a73b116753db91b4eb3ad7206ce44c2999c
7
- data.tar.gz: 4978dff12d91913bb9ca1ed728938db8144439be987cdd1a623754b24f560d5d4f6394a3a10e239bd78b3bbf9f0b9b2b95aba5cb995c621541145d55dafe421c
6
+ metadata.gz: a09c8ed2b6eb9d5eb32be9b91cacbcd404b10048d560c46ae5edff58d474f69e0e4f7d065bee4d7544d8dd7940173d80d4c4283b79426be709ed480959183e73
7
+ data.tar.gz: 3636cc9505ef6c4c1bb5c0b6d5f54ac4378eddce824586fc7ee54fa6d97e26b55d19db8ca2f400e7fdde63f03a07d61cb884b456b0b33f18ed4ca0f32599bc60
data/README.md CHANGED
@@ -60,6 +60,7 @@ You may also overide the default environment setting in your config file by pass
60
60
  stripe invoices # find, list, pay, and close invoices
61
61
  stripe plans # find, list, create, & delete plans
62
62
  stripe recipients # find, list, create & delete recipients
63
+ stripe subscriptions # find, list, create & cancel multiple subscriptions per customer
63
64
  stripe tokens # find & create tokens for bank accounts & credit cards
64
65
  stripe transactions # find & list balance transactions
65
66
  stripe transfers # find, list, & create transfers
@@ -138,6 +139,15 @@ Api errors are rescued and their messages displayed for you to read. No more ``
138
139
  stripe customers help [COMMAND] # Describe subcommands or one specific subcommand
139
140
  stripe customers list # List customers
140
141
 
142
+ ### Subscriptions
143
+
144
+ Commands:
145
+ stripe subscriptions cancel ID --customer=CUSTOMER # cancel ID subscription for CUSTOMER customer
146
+ stripe subscriptions create --customer=CUSTOMER # create a subscription for CUSTOMER customer
147
+ stripe subscriptions find ID --customer=CUSTOMER # find ID subscription for CUSTOMER customer
148
+ stripe subscriptions help [COMMAND] # Describe subcommands or one specific subcommand
149
+ stripe subscriptions list --customer=CUSTOMER # List subscriptions for CUSTOMER customer
150
+
141
151
  ### Invoices
142
152
 
143
153
  Commands:
@@ -41,11 +41,6 @@ module Stripe
41
41
  @@config
42
42
  end
43
43
 
44
- method_option :starting_after, :desc => "The ID of the last object in the previous paged result set. For cursor-based pagination."
45
- method_option :ending_before, :desc => "The ID of the first object in the previous paged result set, when paging backwards through the list."
46
- method_option :limit, :desc => "a limit on the number of resources returned, between 1 and 100"
47
- method_option :offset, :desc => "the starting index to be used, relative to the entire list"
48
- method_option :count, :desc => "depricated: use limit"
49
44
  def list klass, options
50
45
  request klass, :all, options, api_key
51
46
  end
@@ -11,6 +11,7 @@ module Stripe
11
11
  autoload :Transactions, 'stripe/cli/commands/transactions'
12
12
  autoload :Balance, 'stripe/cli/commands/balance'
13
13
  autoload :Recipients, 'stripe/cli/commands/recipients'
14
+ autoload :Subscriptions, 'stripe/cli/commands/subscriptions'
14
15
  autoload :Transfers, 'stripe/cli/commands/transfers'
15
16
  end
16
17
  end
@@ -0,0 +1,83 @@
1
+ module Stripe
2
+ module CLI
3
+ module Commands
4
+ class Subscriptions < Command
5
+ include Stripe::Utils
6
+
7
+ desc "list", "List subscriptions for CUSTOMER customer"
8
+ option :starting_after, :desc => "The ID of the last object in the previous paged result set. For cursor-based pagination."
9
+ option :ending_before, :desc => "The ID of the first object in the previous paged result set, when paging backwards through the list."
10
+ option :limit, :desc => "a limit on the number of resources returned, between 1 and 100"
11
+ option :offset, :desc => "the starting index to be used, relative to the entire list"
12
+ option :count, :desc => "depricated: use limit"
13
+ option :customer, :required => true, :desc => "id of customer to search within"
14
+ def list
15
+ if cust = retrieve_customer(options.delete :customer)
16
+ super cust.subscriptions, options
17
+ end
18
+ end
19
+
20
+ desc "find ID", "find ID subscription for CUSTOMER customer"
21
+ option :customer, :required => true, :desc => "id of customer to search within"
22
+ def find subscription_id
23
+ if cust = retrieve_customer(options.delete :customer)
24
+ super cust.subscriptions, subscription_id
25
+ end
26
+ end
27
+
28
+ desc "create", "create a subscription for CUSTOMER customer"
29
+ option :plan, :desc => "the plan to assign to CUSTOMER customer"
30
+ option :coupon, :desc => "id of a coupon to apply"
31
+ option :trial_end, :desc => "apply a trial period until this date"
32
+ option :card
33
+ option :card_number
34
+ option :card_exp_month
35
+ option :card_exp_year
36
+ option :card_cvc
37
+ option :card_name
38
+ option :metadata, :type => :hash
39
+ option :customer, :required => true, :desc => "id of customer reciving the new subscription"
40
+ def create
41
+ options[:plan] ||= ask('Assign a plan:')
42
+ options[:coupon] ||= ask('Apply a coupon:')
43
+ options.delete( :coupon ) if options[:coupon] == ""
44
+ options[:card] ||= credit_card( options ) if yes?("add a new credit card? [yN]",:yellow)
45
+ options[:trial_end] = options[:trial_end].to_i if options[:trial_end]
46
+ if cust = retrieve_customer(options.delete :customer)
47
+ super cust.subscriptions, options
48
+ end
49
+ end
50
+
51
+
52
+ desc "cancel ID", "cancel ID subscription for CUSTOMER customer"
53
+ option :customer, :required => true, :desc => "id of customer to search within"
54
+ def cancel subscription_id
55
+ if cust = retrieve_customer(options.delete :customer) and
56
+ subscription = retrieve_subscription(cust, subscription_id)
57
+ request subscription, :delete
58
+ end
59
+ end
60
+
61
+ private
62
+
63
+ def retrieve_customer id
64
+ begin
65
+ Stripe::Customer.retrieve(id, api_key)
66
+ rescue Exception => e
67
+ ap e.message
68
+ false
69
+ end
70
+ end
71
+
72
+ def retrieve_subscription cust, id
73
+ begin
74
+ cust.subscriptions.retrieve(id)
75
+ rescue Exception => e
76
+ ap e.message
77
+ false
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -11,6 +11,7 @@ module Stripe
11
11
  register Commands::Transactions, 'transactions', 'transactions', 'find & list balance transactions'
12
12
  register Commands::Balance, 'balance', 'balance', 'show currently available and pending balance amounts'
13
13
  register Commands::Recipients, 'recipients', 'recipients', 'find, list, create & delete recipients'
14
+ register Commands::Subscriptions, 'subscriptions', 'subscriptions', 'find, list, create & cancel multiple subscriptions per customer'
14
15
  register Commands::Transfers, 'transfers', 'transfers', 'find, list, & create transfers'
15
16
  end
16
17
  end
@@ -1,5 +1,5 @@
1
1
  module Stripe
2
2
  module CLI
3
- VERSION = "1.2.2"
3
+ VERSION = "1.3.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stripe-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex MacCaw
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-31 00:00:00.000000000 Z
12
+ date: 2014-06-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -174,6 +174,7 @@ files:
174
174
  - lib/stripe/cli/commands/invoices.rb
175
175
  - lib/stripe/cli/commands/plans.rb
176
176
  - lib/stripe/cli/commands/recipients.rb
177
+ - lib/stripe/cli/commands/subscriptions.rb
177
178
  - lib/stripe/cli/commands/tokens.rb
178
179
  - lib/stripe/cli/commands/transactions.rb
179
180
  - lib/stripe/cli/commands/transfers.rb