Skip to content

Commit

Permalink
Merge pull request #790 from stripe/ralex/codegen
Browse files Browse the repository at this point in the history
Formatting changes from codegen
  • Loading branch information
rattrayalex-stripe committed May 30, 2019
2 parents 4c95b99 + d998c33 commit 1ed21bc
Show file tree
Hide file tree
Showing 80 changed files with 245 additions and 235 deletions.
1 change: 1 addition & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Layout/IndentHash:
Metrics/LineLength:
Exclude:
- "test/**/*.rb"
- "lib/stripe/resources/**/*.rb"

Metrics/MethodLength:
# There's ~2 long methods in `StripeClient`. If we want to truncate those a
Expand Down
77 changes: 2 additions & 75 deletions lib/stripe.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

# API resource support classes
require "stripe/errors"
require "stripe/object_types"
require "stripe/util"
require "stripe/stripe_client"
require "stripe/stripe_object"
Expand All @@ -36,81 +37,7 @@
require "stripe/webhook"

# Named API resources
require "stripe/account"
require "stripe/account_link"
require "stripe/alipay_account"
require "stripe/apple_pay_domain"
require "stripe/application_fee"
require "stripe/application_fee_refund"
require "stripe/balance"
require "stripe/balance_transaction"
require "stripe/bank_account"
require "stripe/bitcoin_receiver"
require "stripe/bitcoin_transaction"
require "stripe/capability"
require "stripe/card"
require "stripe/charge"
require "stripe/checkout/session"
require "stripe/country_spec"
require "stripe/coupon"
require "stripe/credit_note"
require "stripe/customer"
require "stripe/discount"
require "stripe/dispute"
require "stripe/ephemeral_key"
require "stripe/event"
require "stripe/exchange_rate"
require "stripe/file"
require "stripe/file_link"
require "stripe/invoice"
require "stripe/invoice_item"
require "stripe/invoice_line_item"
require "stripe/issuer_fraud_record"
require "stripe/issuing/authorization"
require "stripe/issuing/card"
require "stripe/issuing/card_details"
require "stripe/issuing/cardholder"
require "stripe/issuing/dispute"
require "stripe/issuing/transaction"
require "stripe/login_link"
require "stripe/order"
require "stripe/order_return"
require "stripe/payment_intent"
require "stripe/payment_method"
require "stripe/payout"
require "stripe/person"
require "stripe/plan"
require "stripe/product"
require "stripe/radar/early_fraud_warning"
require "stripe/radar/value_list"
require "stripe/radar/value_list_item"
require "stripe/recipient"
require "stripe/recipient_transfer"
require "stripe/refund"
require "stripe/reporting/report_run"
require "stripe/reporting/report_type"
require "stripe/reversal"
require "stripe/review"
require "stripe/sigma/scheduled_query_run"
require "stripe/sku"
require "stripe/source"
require "stripe/source_transaction"
require "stripe/subscription"
require "stripe/subscription_item"
require "stripe/subscription_schedule"
require "stripe/subscription_schedule_revision"
require "stripe/tax_id"
require "stripe/tax_rate"
require "stripe/terminal/connection_token"
require "stripe/terminal/location"
require "stripe/terminal/reader"
require "stripe/three_d_secure"
require "stripe/token"
require "stripe/topup"
require "stripe/transfer"
require "stripe/usage_record"
require "stripe/usage_record_summary"
require "stripe/webhook_endpoint"
require "stripe/resources"

# OAuth
require "stripe/oauth"
Expand Down
94 changes: 94 additions & 0 deletions lib/stripe/object_types.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# frozen_string_literal: true

# rubocop:disable Metrics/LineLength

module Stripe
module ObjectTypes
def self.object_names_to_classes # rubocop:disable Metrics/MethodLength
{
# data structures
ListObject::OBJECT_NAME => ListObject,

# business objects
Account::OBJECT_NAME => Account,
AccountLink::OBJECT_NAME => AccountLink,
AlipayAccount::OBJECT_NAME => AlipayAccount,
ApplePayDomain::OBJECT_NAME => ApplePayDomain,
ApplicationFee::OBJECT_NAME => ApplicationFee,
ApplicationFeeRefund::OBJECT_NAME => ApplicationFeeRefund,
Balance::OBJECT_NAME => Balance,
BalanceTransaction::OBJECT_NAME => BalanceTransaction,
BankAccount::OBJECT_NAME => BankAccount,
BitcoinReceiver::OBJECT_NAME => BitcoinReceiver,
BitcoinTransaction::OBJECT_NAME => BitcoinTransaction,
Capability::OBJECT_NAME => Capability,
Card::OBJECT_NAME => Card,
Charge::OBJECT_NAME => Charge,
Checkout::Session::OBJECT_NAME => Checkout::Session,
CountrySpec::OBJECT_NAME => CountrySpec,
Coupon::OBJECT_NAME => Coupon,
CreditNote::OBJECT_NAME => CreditNote,
Customer::OBJECT_NAME => Customer,
Discount::OBJECT_NAME => Discount,
Dispute::OBJECT_NAME => Dispute,
EphemeralKey::OBJECT_NAME => EphemeralKey,
Event::OBJECT_NAME => Event,
ExchangeRate::OBJECT_NAME => ExchangeRate,
File::OBJECT_NAME => File,
File::OBJECT_NAME_ALT => File,
FileLink::OBJECT_NAME => FileLink,
Invoice::OBJECT_NAME => Invoice,
InvoiceItem::OBJECT_NAME => InvoiceItem,
InvoiceLineItem::OBJECT_NAME => InvoiceLineItem,
IssuerFraudRecord::OBJECT_NAME => IssuerFraudRecord,
Issuing::Authorization::OBJECT_NAME => Issuing::Authorization,
Issuing::Card::OBJECT_NAME => Issuing::Card,
Issuing::CardDetails::OBJECT_NAME => Issuing::CardDetails,
Issuing::Cardholder::OBJECT_NAME => Issuing::Cardholder,
Issuing::Dispute::OBJECT_NAME => Issuing::Dispute,
Issuing::Transaction::OBJECT_NAME => Issuing::Transaction,
LoginLink::OBJECT_NAME => LoginLink,
Order::OBJECT_NAME => Order,
OrderReturn::OBJECT_NAME => OrderReturn,
PaymentIntent::OBJECT_NAME => PaymentIntent,
PaymentMethod::OBJECT_NAME => PaymentMethod,
Payout::OBJECT_NAME => Payout,
Person::OBJECT_NAME => Person,
Plan::OBJECT_NAME => Plan,
Product::OBJECT_NAME => Product,
Radar::EarlyFraudWarning::OBJECT_NAME => Radar::EarlyFraudWarning,
Radar::ValueList::OBJECT_NAME => Radar::ValueList,
Radar::ValueListItem::OBJECT_NAME => Radar::ValueListItem,
Recipient::OBJECT_NAME => Recipient,
RecipientTransfer::OBJECT_NAME => RecipientTransfer,
Refund::OBJECT_NAME => Refund,
Reporting::ReportRun::OBJECT_NAME => Reporting::ReportRun,
Reporting::ReportType::OBJECT_NAME => Reporting::ReportType,
Reversal::OBJECT_NAME => Reversal,
Review::OBJECT_NAME => Review,
SKU::OBJECT_NAME => SKU,
Sigma::ScheduledQueryRun::OBJECT_NAME => Sigma::ScheduledQueryRun,
Source::OBJECT_NAME => Source,
SourceTransaction::OBJECT_NAME => SourceTransaction,
Subscription::OBJECT_NAME => Subscription,
SubscriptionItem::OBJECT_NAME => SubscriptionItem,
SubscriptionSchedule::OBJECT_NAME => SubscriptionSchedule,
SubscriptionScheduleRevision::OBJECT_NAME => SubscriptionScheduleRevision,
TaxId::OBJECT_NAME => TaxId,
TaxRate::OBJECT_NAME => TaxRate,
Terminal::ConnectionToken::OBJECT_NAME => Terminal::ConnectionToken,
Terminal::Location::OBJECT_NAME => Terminal::Location,
Terminal::Reader::OBJECT_NAME => Terminal::Reader,
ThreeDSecure::OBJECT_NAME => ThreeDSecure,
Token::OBJECT_NAME => Token,
Topup::OBJECT_NAME => Topup,
Transfer::OBJECT_NAME => Transfer,
UsageRecord::OBJECT_NAME => UsageRecord,
UsageRecordSummary::OBJECT_NAME => UsageRecordSummary,
WebhookEndpoint::OBJECT_NAME => WebhookEndpoint,
}
end
end
end

# rubocop:enable Metrics/LineLength
77 changes: 77 additions & 0 deletions lib/stripe/resources.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# frozen_string_literal: true

require "stripe/resources/account"
require "stripe/resources/account_link"
require "stripe/resources/alipay_account"
require "stripe/resources/apple_pay_domain"
require "stripe/resources/application_fee"
require "stripe/resources/application_fee_refund"
require "stripe/resources/balance"
require "stripe/resources/balance_transaction"
require "stripe/resources/bank_account"
require "stripe/resources/bitcoin_receiver"
require "stripe/resources/bitcoin_transaction"
require "stripe/resources/capability"
require "stripe/resources/card"
require "stripe/resources/charge"
require "stripe/resources/checkout/session"
require "stripe/resources/country_spec"
require "stripe/resources/coupon"
require "stripe/resources/credit_note"
require "stripe/resources/customer"
require "stripe/resources/discount"
require "stripe/resources/dispute"
require "stripe/resources/ephemeral_key"
require "stripe/resources/event"
require "stripe/resources/exchange_rate"
require "stripe/resources/file"
require "stripe/resources/file_link"
require "stripe/resources/invoice"
require "stripe/resources/invoice_item"
require "stripe/resources/invoice_line_item"
require "stripe/resources/issuer_fraud_record"
require "stripe/resources/issuing/authorization"
require "stripe/resources/issuing/card"
require "stripe/resources/issuing/card_details"
require "stripe/resources/issuing/cardholder"
require "stripe/resources/issuing/dispute"
require "stripe/resources/issuing/transaction"
require "stripe/resources/login_link"
require "stripe/resources/order"
require "stripe/resources/order_return"
require "stripe/resources/payment_intent"
require "stripe/resources/payment_method"
require "stripe/resources/payout"
require "stripe/resources/person"
require "stripe/resources/plan"
require "stripe/resources/product"
require "stripe/resources/radar/early_fraud_warning"
require "stripe/resources/radar/value_list"
require "stripe/resources/radar/value_list_item"
require "stripe/resources/recipient"
require "stripe/resources/recipient_transfer"
require "stripe/resources/refund"
require "stripe/resources/reporting/report_run"
require "stripe/resources/reporting/report_type"
require "stripe/resources/reversal"
require "stripe/resources/review"
require "stripe/resources/sigma/scheduled_query_run"
require "stripe/resources/sku"
require "stripe/resources/source"
require "stripe/resources/source_transaction"
require "stripe/resources/subscription"
require "stripe/resources/subscription_item"
require "stripe/resources/subscription_schedule"
require "stripe/resources/subscription_schedule_revision"
require "stripe/resources/tax_id"
require "stripe/resources/tax_rate"
require "stripe/resources/terminal/connection_token"
require "stripe/resources/terminal/location"
require "stripe/resources/terminal/reader"
require "stripe/resources/three_d_secure"
require "stripe/resources/token"
require "stripe/resources/topup"
require "stripe/resources/transfer"
require "stripe/resources/usage_record"
require "stripe/resources/usage_record_summary"
require "stripe/resources/webhook_endpoint"
25 changes: 13 additions & 12 deletions lib/stripe/account.rb → lib/stripe/resources/account.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,32 @@ module Stripe
class Account < APIResource
extend Gem::Deprecate
extend Stripe::APIOperations::Create
extend Stripe::APIOperations::List
include Stripe::APIOperations::Delete
extend Stripe::APIOperations::List
include Stripe::APIOperations::Save
extend Stripe::APIOperations::NestedResource

OBJECT_NAME = "account".freeze

custom_method :reject, http_verb: :post

save_nested_resource :external_account
nested_resource_class_methods :capability,
operations: %i[retrieve update list],
resource_plural: "capabilities"
nested_resource_class_methods :person,
operations: %i[create retrieve update delete list]

def reject(params = {}, opts = {})
resp, opts = request(:post, resource_url + "/reject", params, opts)
Util.convert_to_stripe_object(resp.data, opts)
end

save_nested_resource :external_account

nested_resource_class_methods :external_account,
operations: %i[create retrieve update delete
list]
operations: %i[create retrieve update delete list]

nested_resource_class_methods :login_link, operations: %i[create]
nested_resource_class_methods :person,
operations: %i[create retrieve update delete
list]

# This method is deprecated. Please use `#external_account=` instead.
save_nested_resource :bank_account
Expand Down Expand Up @@ -66,11 +72,6 @@ def persons(params = {}, opts = {})
# already has a capabilities property which is a hash and not the sub-list
# of capabilities.

def reject(params = {}, opts = {})
resp, opts = request(:post, resource_url + "/reject", params, opts)
initialize_from(resp.data, opts)
end

# Somewhat unfortunately, we attempt to do a special encoding trick when
# serializing `additional_owners` under an account: when updating a value,
# we actually send the update parameters up as an integer-indexed hash
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,9 @@ def verify(params = {}, opts = {})

def resource_url
if respond_to?(:customer)
"#{Customer.resource_url}/#{CGI.escape(customer)}/sources" \
"/#{CGI.escape(id)}"
"#{Customer.resource_url}/#{CGI.escape(customer)}/sources/#{CGI.escape(id)}"
elsif respond_to?(:account)
"#{Account.resource_url}/#{CGI.escape(account)}/external_accounts" \
"/#{CGI.escape(id)}"
"#{Account.resource_url}/#{CGI.escape(account)}/external_accounts/#{CGI.escape(id)}"
end
end

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# frozen_string_literal: true

module Stripe
# Directly creating or retrieving BitcoinReceivers is deprecated. Please use
# the Sources API instead: https://stripe.com/docs/sources/bitcoin
class BitcoinReceiver < APIResource
# Directly creating or retrieving BitcoinReceivers is deprecated. Please use
# the Sources API instead: https://stripe.com/docs/sources/bitcoin
extend Stripe::APIOperations::List

OBJECT_NAME = "bitcoin_receiver".freeze
Expand All @@ -14,8 +14,7 @@ def self.resource_url

def resource_url
if respond_to?(:customer) && !customer.nil? && customer != ""
"#{Customer.resource_url}/#{CGI.escape(customer)}/sources" \
"/#{CGI.escape(id)}"
"#{Customer.resource_url}/#{CGI.escape(customer)}/sources/#{CGI.escape(id)}"
else
"#{self.class.resource_url}/#{CGI.escape(id)}"
end
Expand Down
File renamed without changes.
File renamed without changes.
9 changes: 3 additions & 6 deletions lib/stripe/card.rb → lib/stripe/resources/card.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,11 @@ class Card < APIResource

def resource_url
if respond_to?(:recipient) && !recipient.nil? && !recipient.empty?
"#{Recipient.resource_url}/#{CGI.escape(recipient)}/cards" \
"/#{CGI.escape(id)}"
"#{Recipient.resource_url}/#{CGI.escape(recipient)}/cards/#{CGI.escape(id)}"
elsif respond_to?(:customer) && !customer.nil? && !customer.empty?
"#{Customer.resource_url}/#{CGI.escape(customer)}/sources" \
"/#{CGI.escape(id)}"
"#{Customer.resource_url}/#{CGI.escape(customer)}/sources/#{CGI.escape(id)}"
elsif respond_to?(:account) && !account.nil? && !account.empty?
"#{Account.resource_url}/#{CGI.escape(account)}/external_accounts" \
"/#{CGI.escape(id)}"
"#{Account.resource_url}/#{CGI.escape(account)}/external_accounts/#{CGI.escape(id)}"
end
end

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class CreditNote < APIResource

def void_credit_note(params = {}, opts = {})
resp, opts = request(:post, resource_url + "/void", params, opts)
initialize_from(resp.data, opts)
Util.convert_to_stripe_object(resp.data, opts)
end
end
end
Loading

0 comments on commit 1ed21bc

Please sign in to comment.