From a900df50f0770089cce8cca4a454ae4eec39c720 Mon Sep 17 00:00:00 2001 From: Olivier Bellone Date: Tue, 30 Jul 2019 10:50:31 +0800 Subject: [PATCH] Remove old deprecated methods --- lib/stripe/resources/account.rb | 4 -- lib/stripe/resources/application_fee.rb | 11 ---- lib/stripe/resources/charge.rb | 68 +---------------------- lib/stripe/resources/customer.rb | 71 +++---------------------- lib/stripe/resources/dispute.rb | 6 --- lib/stripe/resources/file.rb | 5 -- lib/stripe/resources/order.rb | 8 --- lib/stripe/resources/payout.rb | 6 --- lib/stripe/resources/recipient.rb | 4 -- lib/stripe/resources/source.rb | 6 --- lib/stripe/resources/subscription.rb | 6 +-- lib/stripe/resources/transfer.rb | 5 -- test/stripe/api_resource_test.rb | 8 --- test/stripe/charge_test.rb | 16 ------ test/stripe/customer_test.rb | 45 +--------------- test/stripe/file_upload_test.rb | 69 ------------------------ test/stripe/source_test.rb | 18 ------- 17 files changed, 9 insertions(+), 347 deletions(-) delete mode 100644 test/stripe/file_upload_test.rb diff --git a/lib/stripe/resources/account.rb b/lib/stripe/resources/account.rb index 9979a4a8b..ec26dc39f 100644 --- a/lib/stripe/resources/account.rb +++ b/lib/stripe/resources/account.rb @@ -31,10 +31,6 @@ def reject(params = {}, opts = {}) nested_resource_class_methods :login_link, operations: %i[create] - # This method is deprecated. Please use `#external_account=` instead. - save_nested_resource :bank_account - deprecate :bank_account=, "#external_account=", 2017, 8 - def resource_url if self["id"] super diff --git a/lib/stripe/resources/application_fee.rb b/lib/stripe/resources/application_fee.rb index 367c41d95..808d6bb42 100644 --- a/lib/stripe/resources/application_fee.rb +++ b/lib/stripe/resources/application_fee.rb @@ -9,16 +9,5 @@ class ApplicationFee < APIResource nested_resource_class_methods :refund, operations: %i[create retrieve update list] - - # If you don't need access to an updated fee object after the refund, it's - # more performant to just call `fee.refunds.create` directly. - def refund(params = {}, opts = {}) - refunds.create(params, opts) - - # now that a refund has been created, we expect the state of this object - # to change as well (i.e. `refunded` will now be `true`) so refresh it - # from the server - refresh - end end end diff --git a/lib/stripe/resources/charge.rb b/lib/stripe/resources/charge.rb index d6d1c7a92..64f76b20b 100644 --- a/lib/stripe/resources/charge.rb +++ b/lib/stripe/resources/charge.rb @@ -10,75 +10,9 @@ class Charge < APIResource custom_method :capture, http_verb: :post - def refund(params = {}, opts = {}) - # Old versions of charge objects included a `refunds` field that was just - # a vanilla array instead of a Stripe list object. - # - # Where possible, we'd still like to use the new refund endpoint (thus - # `self.refunds.create`), but detect the old API version by looking for - # an `Array` and fall back to the old refund URL if necessary so as to - # maintain internal compatibility. - if refunds.is_a?(Array) - resp, opts = request(:post, refund_url, params, opts) - initialize_from(resp.data, opts) - else - refunds.create(params, opts) - - # now that a refund has been created, we expect the state of this object - # to change as well (i.e. `refunded` will now be `true`) so refresh it - # from the server - refresh - end - end - def capture(params = {}, opts = {}) - resp, opts = request(:post, capture_url, params, opts) - initialize_from(resp.data, opts) - end - - def update_dispute(params = {}, opts = {}) - resp, opts = request(:post, dispute_url, params, opts) - initialize_from({ dispute: resp.data }, opts, true) - dispute - end - - def close_dispute(params = {}, opts = {}) - resp, opts = request(:post, close_dispute_url, params, opts) - initialize_from(resp.data, opts) - end - - def mark_as_fraudulent - params = { - fraud_details: { user_report: "fraudulent" }, - } - resp, opts = request(:post, resource_url, params) + resp, opts = request(:post, resource_url + "/capture", params, opts) initialize_from(resp.data, opts) end - - def mark_as_safe - params = { - fraud_details: { user_report: "safe" }, - } - resp, opts = request(:post, resource_url, params) - initialize_from(resp.data, opts) - end - - private def capture_url - resource_url + "/capture" - end - - private def dispute_url - resource_url + "/dispute" - end - - private def close_dispute_url - resource_url + "/dispute/close" - end - - # Note that this is actually the *old* refund URL and its use is no longer - # preferred. - private def refund_url - resource_url + "/refund" - end end end diff --git a/lib/stripe/resources/customer.rb b/lib/stripe/resources/customer.rb index ba968cf39..5f17e8f9e 100644 --- a/lib/stripe/resources/customer.rb +++ b/lib/stripe/resources/customer.rb @@ -10,86 +10,27 @@ class Customer < APIResource OBJECT_NAME = "customer" + custom_method :delete_discount, http_verb: :delete, http_path: "discount" + nested_resource_class_methods :balance_transaction, operations: %i[create retrieve update list] - nested_resource_class_methods :tax_id, - operations: %i[create retrieve delete list] - - custom_method :delete_discount, http_verb: :delete, http_path: "discount" save_nested_resource :source nested_resource_class_methods :source, operations: %i[create retrieve update delete list] + nested_resource_class_methods :tax_id, + operations: %i[create retrieve delete list] + # The API request for deleting a card or bank account and for detaching a # source object are the same. class << self alias detach_source delete_source end - def add_invoice_item(params, opts = {}) - opts = @opts.merge(Util.normalize_opts(opts)) - InvoiceItem.create(params.merge(customer: id), opts) - end - - def invoices(params = {}, opts = {}) - opts = @opts.merge(Util.normalize_opts(opts)) - Invoice.all(params.merge(customer: id), opts) - end - - def invoice_items(params = {}, opts = {}) - opts = @opts.merge(Util.normalize_opts(opts)) - InvoiceItem.all(params.merge(customer: id), opts) - end - - def upcoming_invoice(params = {}, opts = {}) - opts = @opts.merge(Util.normalize_opts(opts)) - Invoice.upcoming(params.merge(customer: id), opts) - end - - def charges(params = {}, opts = {}) - opts = @opts.merge(Util.normalize_opts(opts)) - Charge.all(params.merge(customer: id), opts) - end - - def create_upcoming_invoice(params = {}, opts = {}) - opts = @opts.merge(Util.normalize_opts(opts)) - Invoice.create(params.merge(customer: id), opts) - end - - def cancel_subscription(params = {}, opts = {}) - resp, opts = request(:delete, subscription_url, params, opts) - initialize_from({ subscription: resp.data }, opts, true) - subscription - end - - def update_subscription(params = {}, opts = {}) - resp, opts = request(:post, subscription_url, params, opts) - initialize_from({ subscription: resp.data }, opts, true) - subscription - end - - def create_subscription(params = {}, opts = {}) - resp, opts = request(:post, subscriptions_url, params, opts) - initialize_from({ subscription: resp.data }, opts, true) - subscription - end - def delete_discount - _, opts = request(:delete, discount_url) + _, opts = request(:delete, resource_url + "/discount") initialize_from({ discount: nil }, opts, true) end - - private def discount_url - resource_url + "/discount" - end - - private def subscription_url - resource_url + "/subscription" - end - - private def subscriptions_url - resource_url + "/subscriptions" - end end end diff --git a/lib/stripe/resources/dispute.rb b/lib/stripe/resources/dispute.rb index 7978cb6e7..b74ca5149 100644 --- a/lib/stripe/resources/dispute.rb +++ b/lib/stripe/resources/dispute.rb @@ -13,11 +13,5 @@ def close(params = {}, opts = {}) resp, opts = request(:post, resource_url + "/close", params, opts) initialize_from(resp.data, opts) end - - def close_url - resource_url + "/close" - end - extend Gem::Deprecate - deprecate :close_url, :none, 2019, 11 end end diff --git a/lib/stripe/resources/file.rb b/lib/stripe/resources/file.rb index 41979485c..1d7e3ac06 100644 --- a/lib/stripe/resources/file.rb +++ b/lib/stripe/resources/file.rb @@ -32,8 +32,3 @@ def self.create(params = {}, opts = {}) end end end - -module Stripe - # For backwards compatibility, the `File` class is aliased to `FileUpload`. - FileUpload = File -end diff --git a/lib/stripe/resources/order.rb b/lib/stripe/resources/order.rb index 65f52e012..1d798555b 100644 --- a/lib/stripe/resources/order.rb +++ b/lib/stripe/resources/order.rb @@ -20,13 +20,5 @@ def return_order(params = {}, opts = {}) resp, opts = request(:post, resource_url + "/returns", params, opts) Util.convert_to_stripe_object(resp.data, opts) end - - private def pay_url - resource_url + "/pay" - end - - private def returns_url - resource_url + "/returns" - end end end diff --git a/lib/stripe/resources/payout.rb b/lib/stripe/resources/payout.rb index c99b8e081..b699379e2 100644 --- a/lib/stripe/resources/payout.rb +++ b/lib/stripe/resources/payout.rb @@ -14,11 +14,5 @@ def cancel(params = {}, opts = {}) resp, opts = request(:post, resource_url + "/cancel", params, opts) initialize_from(resp.data, opts) end - - def cancel_url - resource_url + "/cancel" - end - extend Gem::Deprecate - deprecate :cancel_url, :none, 2019, 11 end end diff --git a/lib/stripe/resources/recipient.rb b/lib/stripe/resources/recipient.rb index 5e95bb87c..aeb768e76 100644 --- a/lib/stripe/resources/recipient.rb +++ b/lib/stripe/resources/recipient.rb @@ -9,9 +9,5 @@ class Recipient < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "recipient" - - def transfers - Transfer.all({ recipient: id }, @api_key) - end end end diff --git a/lib/stripe/resources/source.rb b/lib/stripe/resources/source.rb index 805b18af5..dc219156a 100644 --- a/lib/stripe/resources/source.rb +++ b/lib/stripe/resources/source.rb @@ -27,12 +27,6 @@ def detach(params = {}, opts = {}) initialize_from(resp.data, opts) end - def delete(params = {}, opts = {}) - detach(params, opts) - end - extend Gem::Deprecate - deprecate :delete, "#detach", 2017, 10 - def source_transactions(params = {}, opts = {}) resp, opts = request(:get, resource_url + "/source_transactions", params, opts) diff --git a/lib/stripe/resources/subscription.rb b/lib/stripe/resources/subscription.rb index bbb85b887..b41736913 100644 --- a/lib/stripe/resources/subscription.rb +++ b/lib/stripe/resources/subscription.rb @@ -14,12 +14,8 @@ class Subscription < APIResource save_nested_resource :source def delete_discount - _, opts = request(:delete, discount_url) + _, opts = request(:delete, resource_url + "/discount") initialize_from({ discount: nil }, opts, true) end - - private def discount_url - resource_url + "/discount" - end end end diff --git a/lib/stripe/resources/transfer.rb b/lib/stripe/resources/transfer.rb index 7dccc8a8d..868155be5 100644 --- a/lib/stripe/resources/transfer.rb +++ b/lib/stripe/resources/transfer.rb @@ -18,10 +18,5 @@ def cancel(params = {}, opts = {}) resp, opts = request(:post, resource_url + "/cancel", params, opts) initialize_from(resp.data, opts) end - - def cancel_url - resource_url + "/cancel" - end - deprecate :cancel_url, :none, 2019, 11 end end diff --git a/test/stripe/api_resource_test.rb b/test/stripe/api_resource_test.rb index 85cfcd742..be4cee5a1 100644 --- a/test/stripe/api_resource_test.rb +++ b/test/stripe/api_resource_test.rb @@ -271,14 +271,6 @@ class NestedTestAPIResource < APIResource assert_equal c.created, 12_345 end - should "accessing a property other than id or parent on an unfetched object should fetch it" do - stub_request(:get, "#{Stripe.api_base}/v1/charges") - .with(query: { customer: "cus_123" }) - .to_return(body: JSON.generate(customer_fixture)) - c = Stripe::Customer.new("cus_123") - c.charges - end - should "updating an object should issue a POST request with only the changed properties" do stub_request(:post, "#{Stripe.api_base}/v1/customers/cus_123") .with(body: { "description" => "another_mn" }) diff --git a/test/stripe/charge_test.rb b/test/stripe/charge_test.rb index 2d7bde167..9fe327a36 100644 --- a/test/stripe/charge_test.rb +++ b/test/stripe/charge_test.rb @@ -60,21 +60,5 @@ class ChargeTest < Test::Unit::TestCase assert charge.is_a?(Stripe::Charge) end end - - context "#mark_as_fraudulent" do - should "charges should be able to be marked as fraudulent" do - charge = Stripe::Charge.retrieve("ch_123") - charge = charge.mark_as_fraudulent - assert charge.is_a?(Stripe::Charge) - end - end - - context "#mark_as_safe" do - should "charges should be able to be marked as safe" do - charge = Stripe::Charge.retrieve("ch_123") - charge = charge.mark_as_safe - assert charge.is_a?(Stripe::Charge) - end - end end end diff --git a/test/stripe/customer_test.rb b/test/stripe/customer_test.rb index 1eefcfa74..370240e48 100644 --- a/test/stripe/customer_test.rb +++ b/test/stripe/customer_test.rb @@ -53,50 +53,6 @@ class CustomerTest < Test::Unit::TestCase end end - context "#create_subscription" do - should "create a new subscription" do - customer = Stripe::Customer.retrieve("cus_123") - subscription = customer.create_subscription(items: [{ plan: "silver" }]) - assert_requested :post, "#{Stripe.api_base}/v1/customers/#{customer.id}/subscriptions" - assert subscription.is_a?(Stripe::Subscription) - end - end - - context "#create_upcoming_invoice" do - should "create a new invoice" do - customer = Stripe::Customer.retrieve("cus_123") - invoice = customer.create_upcoming_invoice - assert_requested :post, "#{Stripe.api_base}/v1/invoices" - assert invoice.is_a?(Stripe::Invoice) - end - end - - context "#update_subscription" do - should "update a subscription" do - customer = Stripe::Customer.retrieve("cus_123") - - # deprecated API and not in schema - stub_request(:post, "#{Stripe.api_base}/v1/customers/#{customer.id}/subscription") - .with(body: { plan: "silver" }) - .to_return(body: JSON.generate(object: "subscription")) - subscription = customer.update_subscription(plan: "silver") - assert subscription.is_a?(Stripe::Subscription) - end - end - - context "#cancel_subscription" do - should "cancel a subscription" do - customer = Stripe::Customer.retrieve("cus_123") - - # deprecated API and not in schema - stub_request(:delete, "#{Stripe.api_base}/v1/customers/#{customer.id}/subscription") - .with(query: { at_period_end: "true" }) - .to_return(body: JSON.generate(object: "subscription")) - subscription = customer.cancel_subscription(at_period_end: "true") - assert subscription.is_a?(Stripe::Subscription) - end - end - context "#delete_discount" do should "delete a discount" do customer = Stripe::Customer.retrieve("cus_123") @@ -113,6 +69,7 @@ class CustomerTest < Test::Unit::TestCase assert discount.is_a?(Stripe::Discount) end end + context "#create_source" do should "create a source" do Stripe::Customer.create_source( diff --git a/test/stripe/file_upload_test.rb b/test/stripe/file_upload_test.rb deleted file mode 100644 index bd4010f87..000000000 --- a/test/stripe/file_upload_test.rb +++ /dev/null @@ -1,69 +0,0 @@ -# frozen_string_literal: true - -require ::File.expand_path("../test_helper", __dir__) - -module Stripe - # This is a strict copy of `FileTest`, except that it uses - # `Stripe::FileUpload` instead of `Stripe::File`. - class FileUploadTest < Test::Unit::TestCase - should "be listable" do - files = Stripe::FileUpload.list - assert_requested :get, "#{Stripe.api_base}/v1/files" - assert files.data.is_a?(Array) - assert files.data[0].is_a?(Stripe::FileUpload) - end - - should "be retrievable" do - file = Stripe::FileUpload.retrieve("file_123") - assert_requested :get, "#{Stripe.api_base}/v1/files/file_123" - assert file.is_a?(Stripe::FileUpload) - end - - context ".create" do - setup do - # We don't point to the same host for the API and uploads in - # production, but `stripe-mock` supports both APIs. - Stripe.uploads_base = Stripe.api_base - - # Set `api_base` to `nil` to ensure that these requests are _not_ sent - # to the default API hostname. `api_base` is reset when each test - # starts so this won't affect the global state. - Stripe.api_base = nil - end - - should "be creatable with a File" do - file = Stripe::FileUpload.create( - purpose: "dispute_evidence", - file: ::File.new(__FILE__), - file_link_data: { create: true } - ) - assert_requested :post, "#{Stripe.uploads_base}/v1/files" - assert file.is_a?(Stripe::FileUpload) - end - - should "be creatable with a Tempfile" do - tempfile = Tempfile.new("foo") - tempfile.write("Hello world") - tempfile.rewind - - file = Stripe::FileUpload.create( - purpose: "dispute_evidence", - file: tempfile, - file_link_data: { create: true } - ) - assert_requested :post, "#{Stripe.uploads_base}/v1/files" - assert file.is_a?(Stripe::FileUpload) - end - end - - should "be deserializable when `object=file`" do - file = Stripe::Util.convert_to_stripe_object({ object: "file" }, {}) - assert file.is_a?(Stripe::FileUpload) - end - - should "be deserializable when `object=file_upload`" do - file = Stripe::Util.convert_to_stripe_object({ object: "file_upload" }, {}) - assert file.is_a?(Stripe::FileUpload) - end - end -end diff --git a/test/stripe/source_test.rb b/test/stripe/source_test.rb index 02e78907d..5c2e55a1b 100644 --- a/test/stripe/source_test.rb +++ b/test/stripe/source_test.rb @@ -51,24 +51,6 @@ class SourceTest < Test::Unit::TestCase end end - context "#delete" do - should "warn that #delete is deprecated" do - old_stderr = $stderr - $stderr = StringIO.new - begin - source = Stripe::Source.construct_from(customer: "cus_123", - id: "src_123", - object: "source") - source.delete - message = "NOTE: Stripe::Source#delete is " \ - "deprecated; use #detach instead" - assert_match Regexp.new(message), $stderr.string - ensure - $stderr = old_stderr - end - end - end - should "not be listable" do assert_raises NoMethodError do Stripe::Source.list