Merge pull request #121 from newaperio/lleger-create-subscription

Add ability to create subscriptions without fetching customer record. Closes #120.
This commit is contained in:
Amber Feng 2014-02-18 14:39:17 -08:00
commit 089090cbe3
2 changed files with 22 additions and 0 deletions

View File

@ -41,6 +41,12 @@ module Stripe
subscription
end
def create_subscription(params)
response, api_key = Stripe.request(:post, subscriptions_url, @api_key, params)
refresh_from({ :subscription => response }, api_key, true)
subscription
end
def delete_discount
Stripe.request(:delete, discount_url, @api_key)
refresh_from({ :discount => nil }, api_key, true)
@ -55,5 +61,9 @@ module Stripe
def subscription_url
url + '/subscription'
end
def subscriptions_url
url + '/subscriptions'
end
end
end

View File

@ -64,6 +64,18 @@ module Stripe
c.cancel_subscription
end
should "be able to create a subscription for a customer" do
c = Stripe::Customer.new("test_customer")
@mock.expects(:post).once.with do |url, api_key, params|
url == "#{Stripe.api_base}/v1/customers/test_customer/subscriptions" && api_key.nil? && CGI.parse(params) == {'plan' => ['silver']}
end.returns(test_response(test_subscription(:plan => 'silver')))
s = c.create_subscription({:plan => 'silver'})
assert_equal 'subscription', s.object
assert_equal 'silver', s.plan.identifier
end
should "be able to delete a customer's discount" do
@mock.expects(:get).once.returns(test_response(test_customer))
c = Stripe::Customer.retrieve("test_customer")