recurly 2.20.3 → 3.0.0.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +14 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +158 -110
- data/Rakefile +6 -0
- data/bin/bundle +105 -0
- data/bin/coderay +29 -0
- data/bin/console +14 -0
- data/bin/htmldiff +29 -0
- data/bin/ldiff +29 -0
- data/bin/pry +29 -0
- data/bin/rake +29 -0
- data/bin/rspec +29 -0
- data/bin/setup +8 -0
- data/bin/yard +29 -0
- data/bin/yardoc +29 -0
- data/bin/yri +29 -0
- data/lib/data/ca-certificates.crt +31 -0
- data/lib/recurly/client/operations.rb +935 -0
- data/lib/recurly/client.rb +198 -0
- data/lib/recurly/errors/api_errors.rb +35 -0
- data/lib/recurly/errors/network_errors.rb +8 -0
- data/lib/recurly/errors.rb +34 -0
- data/lib/recurly/pager.rb +119 -0
- data/lib/recurly/request.rb +30 -0
- data/lib/recurly/requests/account_acquisition_updatable.rb +22 -0
- data/lib/recurly/requests/account_create_only.rb +18 -0
- data/lib/recurly/requests/account_updatable.rb +50 -0
- data/lib/recurly/requests/add_on_create.rb +38 -0
- data/lib/recurly/requests/add_on_update.rb +38 -0
- data/lib/recurly/requests/address.rb +42 -0
- data/lib/recurly/requests/billing_info_create.rb +58 -0
- data/lib/recurly/requests/coupon_create_only.rb +66 -0
- data/lib/recurly/requests/coupon_updatable.rb +30 -0
- data/lib/recurly/requests/create_account.rb +62 -0
- data/lib/recurly/requests/create_coupon.rb +90 -0
- data/lib/recurly/requests/invoice_create.rb +42 -0
- data/lib/recurly/requests/invoice_refund.rb +30 -0
- data/lib/recurly/requests/line_item_create.rb +46 -0
- data/lib/recurly/requests/plan_create.rb +66 -0
- data/lib/recurly/requests/plan_update.rb +70 -0
- data/lib/recurly/requests/shipping_address_create.rb +58 -0
- data/lib/recurly/requests/shipping_address_update.rb +62 -0
- data/lib/recurly/requests/subscription_add_on_create.rb +22 -0
- data/lib/recurly/requests/subscription_change_create.rb +42 -0
- data/lib/recurly/requests/subscription_create.rb +86 -0
- data/lib/recurly/requests/subscription_update.rb +42 -0
- data/lib/recurly/requests/update_coupon.rb +30 -0
- data/lib/recurly/resource.rb +16 -1114
- data/lib/recurly/resources/account.rb +86 -0
- data/lib/recurly/resources/account_acquisition.rb +42 -0
- data/lib/recurly/resources/account_balance.rb +22 -0
- data/lib/recurly/resources/account_note.rb +30 -0
- data/lib/recurly/resources/add_on.rb +62 -0
- data/lib/recurly/resources/address.rb +42 -0
- data/lib/recurly/resources/billing_info.rb +62 -0
- data/lib/recurly/resources/coupon.rb +110 -0
- data/lib/recurly/resources/coupon_discount.rb +22 -0
- data/lib/recurly/resources/coupon_redemption.rb +46 -0
- data/lib/recurly/resources/credit_payment.rb +62 -0
- data/lib/recurly/resources/error.rb +18 -0
- data/lib/recurly/resources/error_may_have_transaction.rb +22 -0
- data/lib/recurly/resources/invoice.rb +138 -0
- data/lib/recurly/resources/invoice_collection.rb +18 -0
- data/lib/recurly/resources/line_item.rb +166 -0
- data/lib/recurly/resources/plan.rb +86 -0
- data/lib/recurly/resources/settings.rb +18 -0
- data/lib/recurly/resources/shipping_address.rb +74 -0
- data/lib/recurly/resources/site.rb +46 -0
- data/lib/recurly/resources/subscription.rb +134 -0
- data/lib/recurly/resources/subscription_add_on.rb +42 -0
- data/lib/recurly/resources/subscription_change.rb +54 -0
- data/lib/recurly/resources/tax_info.rb +18 -0
- data/lib/recurly/resources/transaction.rb +146 -0
- data/lib/recurly/resources/unique_coupon_code.rb +38 -0
- data/lib/recurly/resources/user.rb +38 -0
- data/lib/recurly/schema/json_deserializer.rb +53 -0
- data/lib/recurly/schema/json_parser.rb +71 -0
- data/lib/recurly/schema/request_caster.rb +66 -0
- data/lib/recurly/schema/schema_factory.rb +50 -0
- data/lib/recurly/schema/schema_validator.rb +125 -0
- data/lib/recurly/schema.rb +114 -0
- data/lib/recurly/version.rb +1 -10
- data/lib/recurly.rb +14 -167
- data/recurly.gemspec +32 -0
- data/scripts/build +4 -0
- data/scripts/clean +6 -0
- data/scripts/test +3 -0
- metadata +129 -196
- data/lib/recurly/account.rb +0 -230
- data/lib/recurly/account_acquisition.rb +0 -27
- data/lib/recurly/account_balance.rb +0 -23
- data/lib/recurly/add_on.rb +0 -52
- data/lib/recurly/address.rb +0 -25
- data/lib/recurly/adjustment.rb +0 -100
- data/lib/recurly/api/errors.rb +0 -208
- data/lib/recurly/api/net_http_adapter.rb +0 -111
- data/lib/recurly/api.rb +0 -110
- data/lib/recurly/billing_info.rb +0 -134
- data/lib/recurly/business_entity.rb +0 -35
- data/lib/recurly/coupon.rb +0 -136
- data/lib/recurly/credit_payment.rb +0 -32
- data/lib/recurly/currency_percentage_tier.rb +0 -17
- data/lib/recurly/custom_field.rb +0 -15
- data/lib/recurly/custom_field_definition.rb +0 -14
- data/lib/recurly/customer_permission.rb +0 -10
- data/lib/recurly/delivery.rb +0 -19
- data/lib/recurly/dunning_campaign.rb +0 -30
- data/lib/recurly/dunning_cycle.rb +0 -18
- data/lib/recurly/entitlement.rb +0 -19
- data/lib/recurly/error.rb +0 -13
- data/lib/recurly/external_account.rb +0 -17
- data/lib/recurly/external_charge.rb +0 -20
- data/lib/recurly/external_invoice.rb +0 -27
- data/lib/recurly/external_payment_phase.rb +0 -27
- data/lib/recurly/external_product.rb +0 -34
- data/lib/recurly/external_product_reference.rb +0 -18
- data/lib/recurly/external_subscription.rb +0 -62
- data/lib/recurly/gateway_attribute.rb +0 -10
- data/lib/recurly/general_ledger_account.rb +0 -16
- data/lib/recurly/gift_card.rb +0 -85
- data/lib/recurly/helper.rb +0 -51
- data/lib/recurly/invoice.rb +0 -354
- data/lib/recurly/invoice_collection.rb +0 -14
- data/lib/recurly/invoice_template.rb +0 -14
- data/lib/recurly/item.rb +0 -36
- data/lib/recurly/js.rb +0 -14
- data/lib/recurly/juris_detail.rb +0 -15
- data/lib/recurly/measured_unit.rb +0 -16
- data/lib/recurly/money.rb +0 -120
- data/lib/recurly/note.rb +0 -14
- data/lib/recurly/percentage_tier.rb +0 -17
- data/lib/recurly/performance_obligation.rb +0 -15
- data/lib/recurly/plan.rb +0 -59
- data/lib/recurly/plan_ramp_interval.rb +0 -10
- data/lib/recurly/purchase.rb +0 -239
- data/lib/recurly/redemption.rb +0 -46
- data/lib/recurly/resource/association.rb +0 -16
- data/lib/recurly/resource/errors.rb +0 -20
- data/lib/recurly/resource/pager.rb +0 -313
- data/lib/recurly/rev_rec.rb +0 -18
- data/lib/recurly/shipping_address.rb +0 -26
- data/lib/recurly/shipping_fee.rb +0 -17
- data/lib/recurly/shipping_method.rb +0 -13
- data/lib/recurly/sub_add_on_percentage_tier.rb +0 -17
- data/lib/recurly/subscription/add_ons.rb +0 -82
- data/lib/recurly/subscription.rb +0 -374
- data/lib/recurly/subscription_add_on.rb +0 -64
- data/lib/recurly/subscription_ramp_interval.rb +0 -12
- data/lib/recurly/tax_detail.rb +0 -18
- data/lib/recurly/tax_type.rb +0 -13
- data/lib/recurly/tier.rb +0 -18
- data/lib/recurly/transaction/errors.rb +0 -119
- data/lib/recurly/transaction.rb +0 -132
- data/lib/recurly/usage.rb +0 -29
- data/lib/recurly/verify.rb +0 -12
- data/lib/recurly/webhook/account_notification.rb +0 -13
- data/lib/recurly/webhook/billing_info_update_failed_notification.rb +0 -6
- data/lib/recurly/webhook/billing_info_updated_notification.rb +0 -6
- data/lib/recurly/webhook/canceled_account_notification.rb +0 -6
- data/lib/recurly/webhook/canceled_gift_card_notification.rb +0 -6
- data/lib/recurly/webhook/canceled_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/closed_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/closed_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/credit_payment_notification.rb +0 -12
- data/lib/recurly/webhook/deactivated_item_notification.rb +0 -6
- data/lib/recurly/webhook/deleted_shipping_address_notification.rb +0 -6
- data/lib/recurly/webhook/dunning_notification.rb +0 -14
- data/lib/recurly/webhook/expired_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/failed_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/failed_payment_notification.rb +0 -6
- data/lib/recurly/webhook/fraud_info_updated_notification.rb +0 -6
- data/lib/recurly/webhook/gift_card_notification.rb +0 -8
- data/lib/recurly/webhook/invoice_notification.rb +0 -12
- data/lib/recurly/webhook/item_notification.rb +0 -7
- data/lib/recurly/webhook/low_balance_gift_card_notification.rb +0 -6
- data/lib/recurly/webhook/new_account_notification.rb +0 -6
- data/lib/recurly/webhook/new_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/new_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/new_credit_payment_notification.rb +0 -6
- data/lib/recurly/webhook/new_dunning_event_notification.rb +0 -6
- data/lib/recurly/webhook/new_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/new_item_notification.rb +0 -6
- data/lib/recurly/webhook/new_shipping_address_notification.rb +0 -6
- data/lib/recurly/webhook/new_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/new_usage_notification.rb +0 -8
- data/lib/recurly/webhook/notification.rb +0 -18
- data/lib/recurly/webhook/paid_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/past_due_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/past_due_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/paused_subscription_renewal_notification.rb +0 -6
- data/lib/recurly/webhook/prerenewal_notification.rb +0 -6
- data/lib/recurly/webhook/processing_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/processing_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/processing_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/processing_payment_notification.rb +0 -6
- data/lib/recurly/webhook/purchased_gift_card_notification.rb +0 -7
- data/lib/recurly/webhook/reactivated_account_notification.rb +0 -6
- data/lib/recurly/webhook/reactivated_item_notification.rb +0 -6
- data/lib/recurly/webhook/redeemed_gift_card_notification.rb +0 -7
- data/lib/recurly/webhook/regenerated_gift_card_notification.rb +0 -6
- data/lib/recurly/webhook/renewed_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/reopened_charge_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/reopened_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/scheduled_payment_notification.rb +0 -6
- data/lib/recurly/webhook/scheduled_subscription_pause_notification.rb +0 -6
- data/lib/recurly/webhook/scheduled_subscription_update_notification.rb +0 -6
- data/lib/recurly/webhook/subscription_notification.rb +0 -12
- data/lib/recurly/webhook/subscription_pause_canceled_notification.rb +0 -6
- data/lib/recurly/webhook/subscription_pause_modified_notification.rb +0 -6
- data/lib/recurly/webhook/subscription_paused_notification.rb +0 -6
- data/lib/recurly/webhook/subscription_resumed_notification.rb +0 -6
- data/lib/recurly/webhook/successful_payment_notification.rb +0 -6
- data/lib/recurly/webhook/successful_refund_notification.rb +0 -6
- data/lib/recurly/webhook/transaction_authorized_notification.rb +0 -6
- data/lib/recurly/webhook/transaction_notification.rb +0 -12
- data/lib/recurly/webhook/transaction_status_updated_notification.rb +0 -6
- data/lib/recurly/webhook/updated_account_notification.rb +0 -6
- data/lib/recurly/webhook/updated_balance_gift_card_notification.rb +0 -7
- data/lib/recurly/webhook/updated_gift_card_notification.rb +0 -6
- data/lib/recurly/webhook/updated_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/updated_item_notification.rb +0 -6
- data/lib/recurly/webhook/updated_shipping_address_notification.rb +0 -6
- data/lib/recurly/webhook/updated_subscription_notification.rb +0 -6
- data/lib/recurly/webhook/void_payment_notification.rb +0 -6
- data/lib/recurly/webhook/voided_credit_invoice_notification.rb +0 -6
- data/lib/recurly/webhook/voided_credit_payment_notification.rb +0 -6
- data/lib/recurly/webhook.rb +0 -113
- data/lib/recurly/xml/nokogiri.rb +0 -60
- data/lib/recurly/xml/rexml.rb +0 -52
- data/lib/recurly/xml.rb +0 -122
data/lib/recurly/billing_info.rb
DELETED
@@ -1,134 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
# Represents an account's Billing Information. You normally want to use a token when creating billing information.
|
3
|
-
#
|
4
|
-
# Recurly Documentation: https://dev.recurly.com/docs/create-an-accounts-billing-info-token
|
5
|
-
class BillingInfo < Resource
|
6
|
-
BANK_ACCOUNT_ATTRIBUTES = %w(name_on_account account_type last_four routing_number).freeze
|
7
|
-
CREDIT_CARD_ATTRIBUTES = %w(number verification_value card_type year month first_six last_four).freeze
|
8
|
-
AMAZON_ATTRIBUTES = %w(amazon_billing_agreement_id amazon_region).freeze
|
9
|
-
PAYPAL_ATTRIBUTES = %w(paypal_billing_agreement_id).freeze
|
10
|
-
ROKU_ATTRIBUTES = %w(roku_billing_agreement_id last_four).freeze
|
11
|
-
SEPA_ATTRIBUTES = %w(iban last_two).freeze
|
12
|
-
BACS_ATTRIBUTES = %w(account_number sort_code type).freeze
|
13
|
-
BECS_ATTRIBUTES = %w(account_number bsb_code type).freeze
|
14
|
-
VENMO_ATTRIBUTES = %w(username).freeze
|
15
|
-
|
16
|
-
# @return [Account]
|
17
|
-
belongs_to :account
|
18
|
-
|
19
|
-
has_one :gateway_attribute, class_name: :GatewayAttribute, readonly: false
|
20
|
-
|
21
|
-
define_attribute_methods %w(
|
22
|
-
uuid
|
23
|
-
first_name
|
24
|
-
last_name
|
25
|
-
company
|
26
|
-
address1
|
27
|
-
address2
|
28
|
-
city
|
29
|
-
state
|
30
|
-
zip
|
31
|
-
country
|
32
|
-
phone
|
33
|
-
vat_number
|
34
|
-
ip_address
|
35
|
-
ip_address_country
|
36
|
-
token_id
|
37
|
-
currency
|
38
|
-
geo_code
|
39
|
-
updated_at
|
40
|
-
external_hpp_type
|
41
|
-
gateway_token
|
42
|
-
gateway_code
|
43
|
-
fraud_session_id
|
44
|
-
three_d_secure_action_result_token_id
|
45
|
-
transaction_type
|
46
|
-
mandate_reference
|
47
|
-
tax_identifier
|
48
|
-
tax_identifier_type
|
49
|
-
primary_payment_method
|
50
|
-
backup_payment_method
|
51
|
-
cc_bin_country
|
52
|
-
online_banking_payment_type
|
53
|
-
card_network_preference
|
54
|
-
) | CREDIT_CARD_ATTRIBUTES | BANK_ACCOUNT_ATTRIBUTES | AMAZON_ATTRIBUTES | PAYPAL_ATTRIBUTES | ROKU_ATTRIBUTES | SEPA_ATTRIBUTES | BACS_ATTRIBUTES | BECS_ATTRIBUTES | VENMO_ATTRIBUTES
|
55
|
-
|
56
|
-
# Verify an account's stored billing info
|
57
|
-
#
|
58
|
-
# @param [Hash] gateway_code (optional) is the code for the gateway to use for verification. If unspecified, a gateway will be selected using the normal rules.
|
59
|
-
# @return [Transaction]
|
60
|
-
# @raise [Invalid] Raise if the account's billing info cannot be verified
|
61
|
-
def verify(attrs = {})
|
62
|
-
Transaction.from_response API.post("#{path}/verify", attrs.empty? ? nil : Verify.to_xml(attrs))
|
63
|
-
end
|
64
|
-
|
65
|
-
def self.to_xml(attrs)
|
66
|
-
billing_info = new attrs
|
67
|
-
billing_info.to_xml
|
68
|
-
end
|
69
|
-
|
70
|
-
# Verify a credit card CVV
|
71
|
-
#
|
72
|
-
# @param [Hash] verification_value is the credit card CVV
|
73
|
-
# @return [BillingInfo]
|
74
|
-
def verify_cvv(attrs = {})
|
75
|
-
BillingInfo.from_response API.post("#{path}/verify_cvv", attrs.empty? ? nil : self.class.to_xml(attrs))
|
76
|
-
end
|
77
|
-
|
78
|
-
# @return [String]
|
79
|
-
def inspect
|
80
|
-
attributes = self.class.attribute_names
|
81
|
-
case type
|
82
|
-
when 'credit_card'
|
83
|
-
attributes -= (AMAZON_ATTRIBUTES + PAYPAL_ATTRIBUTES + BANK_ACCOUNT_ATTRIBUTES + ROKU_ATTRIBUTES + SEPA_ATTRIBUTES + BACS_ATTRIBUTES + BECS_ATTRIBUTES + VENMO_ATTRIBUTES)
|
84
|
-
attributes |= CREDIT_CARD_ATTRIBUTES
|
85
|
-
when 'paypal'
|
86
|
-
attributes -= (CREDIT_CARD_ATTRIBUTES | BANK_ACCOUNT_ATTRIBUTES + AMAZON_ATTRIBUTES + ROKU_ATTRIBUTES + SEPA_ATTRIBUTES + BACS_ATTRIBUTES + BECS_ATTRIBUTES + VENMO_ATTRIBUTES)
|
87
|
-
when 'amazon'
|
88
|
-
attributes -= (CREDIT_CARD_ATTRIBUTES | BANK_ACCOUNT_ATTRIBUTES + PAYPAL_ATTRIBUTES + ROKU_ATTRIBUTES + SEPA_ATTRIBUTES + BACS_ATTRIBUTES + BECS_ATTRIBUTES + VENMO_ATTRIBUTES)
|
89
|
-
when 'bank_account'
|
90
|
-
attributes -= (CREDIT_CARD_ATTRIBUTES + PAYPAL_ATTRIBUTES + AMAZON_ATTRIBUTES + ROKU_ATTRIBUTES + SEPA_ATTRIBUTES + BACS_ATTRIBUTES + BECS_ATTRIBUTES + VENMO_ATTRIBUTES)
|
91
|
-
attributes |= BANK_ACCOUNT_ATTRIBUTES
|
92
|
-
when 'roku'
|
93
|
-
attributes -= (CREDIT_CARD_ATTRIBUTES + PAYPAL_ATTRIBUTES + AMAZON_ATTRIBUTES + BANK_ACCOUNT_ATTRIBUTES + SEPA_ATTRIBUTES + BACS_ATTRIBUTES + BECS_ATTRIBUTES + VENMO_ATTRIBUTES)
|
94
|
-
attributes |= ROKU_ATTRIBUTES
|
95
|
-
when 'sepa'
|
96
|
-
attributes -= (CREDIT_CARD_ATTRIBUTES + PAYPAL_ATTRIBUTES + AMAZON_ATTRIBUTES + BANK_ACCOUNT_ATTRIBUTES + ROKU_ATTRIBUTES + BACS_ATTRIBUTES + BECS_ATTRIBUTES + VENMO_ATTRIBUTES)
|
97
|
-
attributes |= SEPA_ATTRIBUTES
|
98
|
-
when 'bacs'
|
99
|
-
attributes -= (CREDIT_CARD_ATTRIBUTES + PAYPAL_ATTRIBUTES + AMAZON_ATTRIBUTES + BANK_ACCOUNT_ATTRIBUTES + ROKU_ATTRIBUTES + SEPA_ATTRIBUTES + BECS_ATTRIBUTES + VENMO_ATTRIBUTES)
|
100
|
-
attributes |= BACS_ATTRIBUTES
|
101
|
-
when 'becs'
|
102
|
-
attributes -= (CREDIT_CARD_ATTRIBUTES + PAYPAL_ATTRIBUTES + AMAZON_ATTRIBUTES + BANK_ACCOUNT_ATTRIBUTES + ROKU_ATTRIBUTES + SEPA_ATTRIBUTES + BACS_ATTRIBUTES + VENMO_ATTRIBUTES)
|
103
|
-
attributes |= BECS_ATTRIBUTES
|
104
|
-
when 'venmo'
|
105
|
-
attributes -= (CREDIT_CARD_ATTRIBUTES + PAYPAL_ATTRIBUTES + AMAZON_ATTRIBUTES + BANK_ACCOUNT_ATTRIBUTES + ROKU_ATTRIBUTES + SEPA_ATTRIBUTES + BACS_ATTRIBUTES + BECS_ATTRIBUTES)
|
106
|
-
attributes |= VENMO_ATTRIBUTES
|
107
|
-
end
|
108
|
-
super attributes
|
109
|
-
end
|
110
|
-
|
111
|
-
# @return ["credit_card", "paypal", "amazon", "bank_account", "roku", "sepa", "bacs", "becs", nil] The type of billing info.
|
112
|
-
def type
|
113
|
-
self[:type] || @type
|
114
|
-
end
|
115
|
-
|
116
|
-
class << self
|
117
|
-
# Overrides the inherited member_path method to allow for billing info's
|
118
|
-
# irregular URL structure.
|
119
|
-
#
|
120
|
-
# @return [String] The relative path to an account's billing info from the
|
121
|
-
# API's base URI.
|
122
|
-
# @param uuid [String]
|
123
|
-
# @example
|
124
|
-
# Recurly::BillingInfo.member_path "code"
|
125
|
-
# # => "accounts/code/billing_info"
|
126
|
-
def member_path uuid
|
127
|
-
"accounts/#{uuid}/billing_info"
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
# Billing info is only writeable through an {Account} instance.
|
132
|
-
embedded!
|
133
|
-
end
|
134
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
class BusinessEntity < Resource
|
3
|
-
belongs_to :site
|
4
|
-
belongs_to :default_revenue_gl_account, class_name: 'GeneralLedgerAccount'
|
5
|
-
belongs_to :default_liability_gl_account, class_name: 'GeneralLedgerAccount'
|
6
|
-
|
7
|
-
has_many :invoices
|
8
|
-
has_many :accounts
|
9
|
-
|
10
|
-
define_attribute_methods %w(
|
11
|
-
id
|
12
|
-
code
|
13
|
-
name
|
14
|
-
invoice_display_address
|
15
|
-
tax_address
|
16
|
-
origin_tax_address_source
|
17
|
-
destination_tax_address_source
|
18
|
-
subscriber_location_countries
|
19
|
-
default_vat_number
|
20
|
-
default_registration_number
|
21
|
-
default_revenue_gl_account_id
|
22
|
-
default_liability_gl_account_id
|
23
|
-
created_at
|
24
|
-
updated_at
|
25
|
-
)
|
26
|
-
|
27
|
-
def self.collection_path
|
28
|
-
"business_entities"
|
29
|
-
end
|
30
|
-
|
31
|
-
# We do not expose PUT or POST in the v2 API.
|
32
|
-
protected(*%w(save save!))
|
33
|
-
private_class_method(*%w(create! create))
|
34
|
-
end
|
35
|
-
end
|
data/lib/recurly/coupon.rb
DELETED
@@ -1,136 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
|
3
|
-
# Recurly Documentation: https://dev.recurly.com/docs/list-active-coupons
|
4
|
-
class Coupon < Resource
|
5
|
-
BULK = 'bulk'.freeze
|
6
|
-
SINGLE_CODE = 'single_code'.freeze
|
7
|
-
|
8
|
-
# @macro [attach] scope
|
9
|
-
# @scope class
|
10
|
-
# @return [Pager<Coupon>] A pager that yields +$1+ coupons.
|
11
|
-
scope :redeemable, :state => :redeemable
|
12
|
-
scope :expired, :state => :expired
|
13
|
-
scope :maxed_out, :state => :maxed_out
|
14
|
-
|
15
|
-
# @return [Pager<Redemption>, []] A pager that yields Redemptions
|
16
|
-
has_many :redemptions
|
17
|
-
|
18
|
-
# @return [Pager<Coupon>, []] A pager that yields coupon-code type Coupons
|
19
|
-
has_many :unique_coupon_codes, class_name: :Coupon
|
20
|
-
|
21
|
-
define_attribute_methods %w(
|
22
|
-
id
|
23
|
-
coupon_code
|
24
|
-
name
|
25
|
-
state
|
26
|
-
discount_type
|
27
|
-
discount_percent
|
28
|
-
discount_in_cents
|
29
|
-
redeem_by_date
|
30
|
-
single_use
|
31
|
-
applies_for_months
|
32
|
-
duration
|
33
|
-
temporal_unit
|
34
|
-
temporal_amount
|
35
|
-
max_redemptions
|
36
|
-
max_redemptions_per_account
|
37
|
-
applies_to_all_plans
|
38
|
-
created_at
|
39
|
-
updated_at
|
40
|
-
plan_codes
|
41
|
-
description
|
42
|
-
invoice_description
|
43
|
-
applies_to_non_plan_charges
|
44
|
-
redemption_resource
|
45
|
-
coupon_type
|
46
|
-
unique_template_code
|
47
|
-
free_trial_amount
|
48
|
-
free_trial_unit
|
49
|
-
applies_to_all_items
|
50
|
-
item_codes
|
51
|
-
)
|
52
|
-
alias to_param coupon_code
|
53
|
-
|
54
|
-
# Redeem a coupon with a given account or account code.
|
55
|
-
#
|
56
|
-
# @return [true]
|
57
|
-
# @param account_or_code [Account, String]
|
58
|
-
# @param currency [String] Three-letter currency code
|
59
|
-
# @param extra_opts [Hash] extra options that go into the {Redemption}
|
60
|
-
# @example
|
61
|
-
# coupon = Coupon.find(coupon_code)
|
62
|
-
# coupon.redeem(account_code, 'USD', subscription_uuid: 'ab3b1dbabc3195')
|
63
|
-
#
|
64
|
-
# coupon = Coupon.find(coupon_code)
|
65
|
-
# account = Account.find(account_code)
|
66
|
-
# coupon.redeem(account)
|
67
|
-
def redeem account_or_code, currency = nil, extra_opts={}
|
68
|
-
return false unless link? :redeem
|
69
|
-
|
70
|
-
account_code = if account_or_code.is_a? Account
|
71
|
-
account_or_code.account_code
|
72
|
-
else
|
73
|
-
account_or_code
|
74
|
-
end
|
75
|
-
|
76
|
-
redemption_options = {
|
77
|
-
:account_code => account_code,
|
78
|
-
:currency => currency || Recurly.default_currency
|
79
|
-
}.merge(extra_opts)
|
80
|
-
|
81
|
-
redemption = Redemption.new(redemption_options)
|
82
|
-
|
83
|
-
Redemption.from_response follow_link(:redeem,
|
84
|
-
:body => redemption.to_xml
|
85
|
-
)
|
86
|
-
rescue API::UnprocessableEntity => e
|
87
|
-
redemption.apply_errors e
|
88
|
-
redemption
|
89
|
-
end
|
90
|
-
|
91
|
-
# Generate unique coupon codes on the server. This is based on the unique_template_code.
|
92
|
-
#
|
93
|
-
# @param amount [Integer]
|
94
|
-
# @return [Pager<Coupon>] A pager that yields the coupon-code type Coupons
|
95
|
-
# @example
|
96
|
-
# unique_codes = coupon.generate(10)
|
97
|
-
# unique_codes.each do |c|
|
98
|
-
# puts c.coupon_code
|
99
|
-
# end
|
100
|
-
def generate(amount)
|
101
|
-
builder = XML.new("<coupon/>")
|
102
|
-
builder.add_element 'number_of_unique_codes', amount
|
103
|
-
|
104
|
-
resp = follow_link(:generate,
|
105
|
-
:body => builder.to_s
|
106
|
-
)
|
107
|
-
|
108
|
-
Pager.new(Recurly::Coupon, uri: resp['location'], parent: self, etag: resp['ETag'])
|
109
|
-
end
|
110
|
-
|
111
|
-
# Redeem a coupon on the given account code
|
112
|
-
#
|
113
|
-
# @param account_code [String] Acccount's account code
|
114
|
-
# @param currency [String] Three-letter currency code
|
115
|
-
# @raise [Invalid] If the coupon cannot be redeemed
|
116
|
-
# @return [Redemption] The Coupon Redemption
|
117
|
-
def redeem!(account_code, currency = nil)
|
118
|
-
redemption = redeem(account_code, currency)
|
119
|
-
raise Invalid.new(self) unless redemption && redemption.persisted?
|
120
|
-
redemption
|
121
|
-
end
|
122
|
-
|
123
|
-
# Restores the coupon
|
124
|
-
def restore!
|
125
|
-
return false unless link? :restore
|
126
|
-
reload follow_link(:restore, body: self.to_xml(delta: true))
|
127
|
-
end
|
128
|
-
|
129
|
-
# Will return true if there are no limits on number of redemptions for this Coupon.
|
130
|
-
#
|
131
|
-
# @return [true, false]
|
132
|
-
def unlimited_redemptions_per_account?
|
133
|
-
!max_redemptions_per_account
|
134
|
-
end
|
135
|
-
end
|
136
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
class CreditPayment < Resource
|
3
|
-
# @return [Account, nil]
|
4
|
-
belongs_to :account, class_name: :Account, readonly: true
|
5
|
-
|
6
|
-
# @return [Invoice, nil]
|
7
|
-
has_one :original_invoice, class_name: :Invoice, readonly: true
|
8
|
-
|
9
|
-
# @return [Invoice, nil]
|
10
|
-
has_one :applied_to_invoice, class_name: :Invoice, readonly: true
|
11
|
-
|
12
|
-
define_attribute_methods %w(
|
13
|
-
action
|
14
|
-
amount_in_cents
|
15
|
-
applied_to_invoice_number
|
16
|
-
currency
|
17
|
-
created_at
|
18
|
-
original_credit_payment
|
19
|
-
original_credit_payment_uuid
|
20
|
-
original_invoice_number
|
21
|
-
refund_transaction
|
22
|
-
refund_transaction_uuid
|
23
|
-
updated_at
|
24
|
-
uuid
|
25
|
-
voided_at
|
26
|
-
)
|
27
|
-
alias to_param uuid
|
28
|
-
|
29
|
-
# @return ["charge", "credit", nil] The type of credit payment.
|
30
|
-
attr_reader :type
|
31
|
-
end
|
32
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
class CurrencyPercentageTier < Resource
|
3
|
-
|
4
|
-
belongs_to :add_on
|
5
|
-
has_many :tiers, class_name: :PercentageTier, readonly: false
|
6
|
-
|
7
|
-
define_attribute_methods %w(
|
8
|
-
currency
|
9
|
-
)
|
10
|
-
|
11
|
-
def xml_keys
|
12
|
-
attributes.keys
|
13
|
-
end
|
14
|
-
|
15
|
-
embedded! true
|
16
|
-
end
|
17
|
-
end
|
data/lib/recurly/custom_field.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
# Recurly Documentation: https://dev.recurly.com/docs/custom-fields
|
3
|
-
class CustomField < Resource
|
4
|
-
|
5
|
-
define_attribute_methods %w(
|
6
|
-
name
|
7
|
-
value
|
8
|
-
)
|
9
|
-
|
10
|
-
# include the name with the serialized field, even though it can't change
|
11
|
-
def xml_keys
|
12
|
-
attributes.keys
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
data/lib/recurly/delivery.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
# Delivery objects are only used with GiftCards.
|
3
|
-
#
|
4
|
-
# Recurly Documentation: https://dev.recurly.com/docs/gift-card-object
|
5
|
-
class Delivery < Resource
|
6
|
-
# @return [Address, nil]
|
7
|
-
has_one :address
|
8
|
-
|
9
|
-
define_attribute_methods %w(
|
10
|
-
deliver_at
|
11
|
-
email_address
|
12
|
-
first_name
|
13
|
-
gifter_name
|
14
|
-
last_name
|
15
|
-
method
|
16
|
-
personal_message
|
17
|
-
)
|
18
|
-
end
|
19
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
# Recurly Documentation: https://developers.recurly.com/api-v2/latest/index.html#tag/dunning-campaigns
|
3
|
-
class DunningCampaign < Resource
|
4
|
-
# @return [[DunningCycle], []]
|
5
|
-
has_many :dunning_cycles
|
6
|
-
|
7
|
-
define_attribute_methods %w(
|
8
|
-
id
|
9
|
-
name
|
10
|
-
code
|
11
|
-
description
|
12
|
-
default_campaign
|
13
|
-
dunning_cycles
|
14
|
-
created_at
|
15
|
-
updated_at
|
16
|
-
deleted_at
|
17
|
-
)
|
18
|
-
|
19
|
-
def bulk_update(plan_codes)
|
20
|
-
return false unless link? :bulk_update
|
21
|
-
|
22
|
-
builder = XML.new("<dunning_campaign/>")
|
23
|
-
node = builder.add_element("plan_codes")
|
24
|
-
plan_codes.each { |plan_code| node.add_element "plan_code", plan_code }
|
25
|
-
|
26
|
-
reload follow_link(:bulk_update, :body => builder.to_s)
|
27
|
-
true
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
class DunningCycle < Resource
|
3
|
-
define_attribute_methods %w(
|
4
|
-
type
|
5
|
-
applies_to_manual_trial
|
6
|
-
first_communication_interval
|
7
|
-
send_immediately_on_hard_decline
|
8
|
-
intervals
|
9
|
-
expire_subscription
|
10
|
-
fail_invoice
|
11
|
-
total_dunning_days
|
12
|
-
total_recycling_days
|
13
|
-
version
|
14
|
-
created_at
|
15
|
-
updated_at
|
16
|
-
)
|
17
|
-
end
|
18
|
-
end
|
data/lib/recurly/entitlement.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
class Entitlement < Resource
|
3
|
-
# @return [Account]
|
4
|
-
belongs_to :account
|
5
|
-
|
6
|
-
define_attribute_methods %w(
|
7
|
-
account
|
8
|
-
customer_permission
|
9
|
-
granted_by
|
10
|
-
created_at
|
11
|
-
updated_at
|
12
|
-
)
|
13
|
-
|
14
|
-
# This object does not represent a model on the server side
|
15
|
-
# so we do not need to expose these methods.
|
16
|
-
protected(*%w(save save!))
|
17
|
-
private_class_method(*%w(all find_each first paginate scoped where create! create))
|
18
|
-
end
|
19
|
-
end
|
data/lib/recurly/error.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
# The exception class from which all Recurly exceptions inherit.
|
3
|
-
class Error < StandardError
|
4
|
-
def set_message message
|
5
|
-
@message = message
|
6
|
-
end
|
7
|
-
|
8
|
-
# @return [String]
|
9
|
-
def to_s
|
10
|
-
defined? @message and @message or super
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
class ExternalAccount < Resource
|
3
|
-
belongs_to :account
|
4
|
-
|
5
|
-
define_attribute_methods %w(
|
6
|
-
id
|
7
|
-
external_account_code
|
8
|
-
external_connection_type
|
9
|
-
created_at
|
10
|
-
updated_at
|
11
|
-
)
|
12
|
-
|
13
|
-
# External Accounts are only writeable and readable through {Account} instances.
|
14
|
-
embedded!
|
15
|
-
private_class_method :find
|
16
|
-
end
|
17
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
class ExternalCharge < Resource
|
3
|
-
belongs_to :account
|
4
|
-
belongs_to :external_invoice
|
5
|
-
belongs_to :external_product_reference, optional: true
|
6
|
-
|
7
|
-
define_attribute_methods %w(
|
8
|
-
description
|
9
|
-
unit_amount
|
10
|
-
currency
|
11
|
-
quantity
|
12
|
-
created_at
|
13
|
-
updated_at
|
14
|
-
)
|
15
|
-
|
16
|
-
# We do not expose POST or PUT via the v2 API
|
17
|
-
protected(*%w(save save!))
|
18
|
-
private_class_method(*%w(create! create))
|
19
|
-
end
|
20
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
class ExternalInvoice < Resource
|
3
|
-
|
4
|
-
# @return [Plan]
|
5
|
-
belongs_to :site
|
6
|
-
belongs_to :account
|
7
|
-
belongs_to :external_subscription
|
8
|
-
belongs_to :external_payment_phase
|
9
|
-
|
10
|
-
# @return [[ExternalCharge], nil]
|
11
|
-
has_many :line_items, class_name: :ExternalCharge
|
12
|
-
|
13
|
-
define_attribute_methods %w(
|
14
|
-
external_id
|
15
|
-
state
|
16
|
-
currency
|
17
|
-
total
|
18
|
-
purchased_at
|
19
|
-
created_at
|
20
|
-
updated_at
|
21
|
-
)
|
22
|
-
|
23
|
-
# We do not expose POST or PUT via the v2 API
|
24
|
-
protected(*%w(save save!))
|
25
|
-
private_class_method(*%w(create! create))
|
26
|
-
end
|
27
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
class ExternalPaymentPhase < Resource
|
3
|
-
|
4
|
-
# @return [ExternalSubscription]
|
5
|
-
belongs_to :external_subscription
|
6
|
-
|
7
|
-
define_attribute_methods %w(
|
8
|
-
id
|
9
|
-
started_at
|
10
|
-
ends_at
|
11
|
-
starting_billing_period_index
|
12
|
-
ending_billing_period_index
|
13
|
-
offer_type
|
14
|
-
offer_name
|
15
|
-
period_count
|
16
|
-
period_length
|
17
|
-
amount
|
18
|
-
currency
|
19
|
-
created_at
|
20
|
-
updated_at
|
21
|
-
)
|
22
|
-
|
23
|
-
# We do not expose POST or PUT via the v2 API
|
24
|
-
protected(*%w(save save!))
|
25
|
-
private_class_method(*%w(create! create))
|
26
|
-
end
|
27
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
class ExternalProduct < Resource
|
3
|
-
|
4
|
-
# @return [Plan]
|
5
|
-
belongs_to :plan
|
6
|
-
|
7
|
-
# @return array [ExternalProductReference]
|
8
|
-
has_many :external_product_references
|
9
|
-
|
10
|
-
define_attribute_methods %w(
|
11
|
-
name
|
12
|
-
created_at
|
13
|
-
updated_at
|
14
|
-
)
|
15
|
-
|
16
|
-
def create_external_product_reference(external_product_reference)
|
17
|
-
external_product_reference.uri = "#{path}/external_product_references"
|
18
|
-
external_product_reference.save!
|
19
|
-
external_product_reference
|
20
|
-
end
|
21
|
-
|
22
|
-
def get_external_product_references
|
23
|
-
Pager.new(Recurly::ExternalProductReference, uri: "#{path}/external_product_references", parent: self)
|
24
|
-
rescue Recurly::API::UnprocessableEntity => e
|
25
|
-
raise Invalid, e.message
|
26
|
-
end
|
27
|
-
|
28
|
-
def get_external_product_reference(external_product_reference_uuid)
|
29
|
-
ExternalProductReference.from_response API.get("#{path}/external_product_references/#{external_product_reference_uuid}")
|
30
|
-
rescue Recurly::API::UnprocessableEntity => e
|
31
|
-
raise Invalid, e.message
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module Recurly
|
2
|
-
class ExternalProductReference < Resource
|
3
|
-
|
4
|
-
# @return [ExternalProduct]
|
5
|
-
belongs_to :external_product
|
6
|
-
|
7
|
-
define_attribute_methods %w(
|
8
|
-
id
|
9
|
-
reference_code
|
10
|
-
external_connection_type
|
11
|
-
created_at
|
12
|
-
updated_at
|
13
|
-
)
|
14
|
-
|
15
|
-
# ExternalProductReferences are only writeable and readable through {ExternalProduct} instances.
|
16
|
-
embedded! true
|
17
|
-
end
|
18
|
-
end
|