recurly 2.17.0 → 3.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.bumpversion.cfg +15 -0
- data/.changelog_config.yaml +11 -0
- data/.github/ISSUE_TEMPLATE/bug-report.md +30 -0
- data/.github/ISSUE_TEMPLATE/question-or-other.md +10 -0
- data/.github/workflows/ci.yml +29 -0
- data/.github/workflows/docs.yml +28 -0
- data/.gitignore +15 -0
- data/.rspec +2 -0
- data/.yardopts +2 -0
- data/CHANGELOG.md +496 -0
- data/CODE_OF_CONDUCT.md +130 -0
- data/CONTRIBUTING.md +106 -0
- data/GETTING_STARTED.md +319 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +9 -153
- data/Rakefile +6 -0
- data/benchmark.rb +16 -0
- data/lib/data/ca-certificates.crt +3466 -0
- data/lib/recurly/client/operations.rb +3868 -0
- data/lib/recurly/client.rb +355 -0
- data/lib/recurly/connection_pool.rb +40 -0
- data/lib/recurly/errors/api_errors.rb +87 -0
- data/lib/recurly/errors/network_errors.rb +10 -0
- data/lib/recurly/errors.rb +68 -0
- data/lib/recurly/http.rb +50 -0
- data/lib/recurly/pager.rb +146 -0
- data/lib/recurly/request.rb +31 -0
- data/lib/recurly/requests/account_acquisition_cost.rb +18 -0
- data/lib/recurly/requests/account_acquisition_updatable.rb +26 -0
- data/lib/recurly/requests/account_create.rb +94 -0
- data/lib/recurly/requests/account_purchase.rb +94 -0
- data/lib/recurly/requests/account_update.rb +82 -0
- data/lib/recurly/requests/add_on_create.rb +94 -0
- data/lib/recurly/requests/add_on_pricing.rb +22 -0
- data/lib/recurly/requests/add_on_update.rb +74 -0
- data/lib/recurly/requests/address.rb +46 -0
- data/lib/recurly/requests/billing_info_create.rb +126 -0
- data/lib/recurly/requests/billing_info_verify.rb +14 -0
- data/lib/recurly/requests/coupon_bulk_create.rb +14 -0
- data/lib/recurly/requests/coupon_create.rb +102 -0
- data/lib/recurly/requests/coupon_pricing.rb +18 -0
- data/lib/recurly/requests/coupon_redemption_create.rb +22 -0
- data/lib/recurly/requests/coupon_update.rb +34 -0
- data/lib/recurly/requests/custom_field.rb +18 -0
- data/lib/recurly/requests/dunning_campaigns_bulk_update.rb +18 -0
- data/lib/recurly/requests/external_refund.rb +22 -0
- data/lib/recurly/requests/external_transaction.rb +26 -0
- data/lib/recurly/requests/invoice_address.rb +54 -0
- data/lib/recurly/requests/invoice_collect.rb +22 -0
- data/lib/recurly/requests/invoice_create.rb +42 -0
- data/lib/recurly/requests/invoice_refund.rb +34 -0
- data/lib/recurly/requests/invoice_updatable.rb +34 -0
- data/lib/recurly/requests/item_create.rb +58 -0
- data/lib/recurly/requests/item_update.rb +58 -0
- data/lib/recurly/requests/line_item_create.rb +86 -0
- data/lib/recurly/requests/line_item_refund.rb +26 -0
- data/lib/recurly/requests/measured_unit_create.rb +22 -0
- data/lib/recurly/requests/measured_unit_update.rb +22 -0
- data/lib/recurly/requests/plan_create.rb +114 -0
- data/lib/recurly/requests/plan_hosted_pages.rb +26 -0
- data/lib/recurly/requests/plan_pricing.rb +26 -0
- data/lib/recurly/requests/plan_ramp_interval.rb +18 -0
- data/lib/recurly/requests/plan_ramp_pricing.rb +18 -0
- data/lib/recurly/requests/plan_update.rb +102 -0
- data/lib/recurly/requests/pricing.rb +22 -0
- data/lib/recurly/requests/purchase_create.rb +78 -0
- data/lib/recurly/requests/shipping_address_create.rb +62 -0
- data/lib/recurly/requests/shipping_address_update.rb +66 -0
- data/lib/recurly/requests/shipping_fee_create.rb +22 -0
- data/lib/recurly/requests/shipping_method_create.rb +26 -0
- data/lib/recurly/requests/shipping_method_update.rb +26 -0
- data/lib/recurly/requests/shipping_purchase.rb +22 -0
- data/lib/recurly/requests/subscription_add_on_create.rb +38 -0
- data/lib/recurly/requests/subscription_add_on_tier.rb +18 -0
- data/lib/recurly/requests/subscription_add_on_update.rb +42 -0
- data/lib/recurly/requests/subscription_cancel.rb +14 -0
- data/lib/recurly/requests/subscription_change_billing_info_create.rb +14 -0
- data/lib/recurly/requests/subscription_change_create.rb +78 -0
- data/lib/recurly/requests/subscription_change_shipping_create.rb +22 -0
- data/lib/recurly/requests/subscription_create.rb +118 -0
- data/lib/recurly/requests/subscription_pause.rb +14 -0
- data/lib/recurly/requests/subscription_purchase.rb +74 -0
- data/lib/recurly/requests/subscription_ramp_interval.rb +18 -0
- data/lib/recurly/requests/subscription_shipping_create.rb +30 -0
- data/lib/recurly/requests/subscription_shipping_purchase.rb +22 -0
- data/lib/recurly/requests/subscription_shipping_update.rb +22 -0
- data/lib/recurly/requests/subscription_update.rb +66 -0
- data/lib/recurly/requests/tier.rb +18 -0
- data/lib/recurly/requests/usage_create.rb +26 -0
- data/lib/recurly/requests.rb +8 -0
- data/lib/recurly/resource.rb +23 -1082
- data/lib/recurly/resources/account.rb +134 -0
- data/lib/recurly/resources/account_acquisition.rb +46 -0
- data/lib/recurly/resources/account_acquisition_cost.rb +18 -0
- data/lib/recurly/resources/account_balance.rb +26 -0
- data/lib/recurly/resources/account_balance_amount.rb +26 -0
- data/lib/recurly/resources/account_mini.rb +50 -0
- data/lib/recurly/resources/account_note.rb +34 -0
- data/lib/recurly/resources/add_on.rb +114 -0
- data/lib/recurly/resources/add_on_mini.rb +54 -0
- data/lib/recurly/resources/add_on_pricing.rb +22 -0
- data/lib/recurly/resources/address.rb +46 -0
- data/lib/recurly/resources/billing_info.rb +74 -0
- data/lib/recurly/resources/billing_info_updated_by.rb +18 -0
- data/lib/recurly/resources/binary_file.rb +14 -0
- data/lib/recurly/resources/coupon.rb +138 -0
- data/lib/recurly/resources/coupon_discount.rb +26 -0
- data/lib/recurly/resources/coupon_discount_pricing.rb +18 -0
- data/lib/recurly/resources/coupon_discount_trial.rb +18 -0
- data/lib/recurly/resources/coupon_mini.rb +42 -0
- data/lib/recurly/resources/coupon_redemption.rb +54 -0
- data/lib/recurly/resources/coupon_redemption_mini.rb +34 -0
- data/lib/recurly/resources/credit_payment.rb +66 -0
- data/lib/recurly/resources/custom_field.rb +18 -0
- data/lib/recurly/resources/custom_field_definition.rb +50 -0
- data/lib/recurly/resources/dunning_campaign.rb +50 -0
- data/lib/recurly/resources/dunning_campaigns_bulk_update_response.rb +18 -0
- data/lib/recurly/resources/dunning_cycle.rb +58 -0
- data/lib/recurly/resources/dunning_interval.rb +18 -0
- data/lib/recurly/resources/error.rb +22 -0
- data/lib/recurly/resources/error_may_have_transaction.rb +26 -0
- data/lib/recurly/resources/export_dates.rb +18 -0
- data/lib/recurly/resources/export_file.rb +22 -0
- data/lib/recurly/resources/export_files.rb +18 -0
- data/lib/recurly/resources/fraud_info.rb +22 -0
- data/lib/recurly/resources/invoice.rb +154 -0
- data/lib/recurly/resources/invoice_address.rb +54 -0
- data/lib/recurly/resources/invoice_collection.rb +22 -0
- data/lib/recurly/resources/invoice_mini.rb +30 -0
- data/lib/recurly/resources/item.rb +82 -0
- data/lib/recurly/resources/item_mini.rb +34 -0
- data/lib/recurly/resources/line_item.rb +214 -0
- data/lib/recurly/resources/line_item_list.rb +26 -0
- data/lib/recurly/resources/measured_unit.rb +46 -0
- data/lib/recurly/resources/payment_method.rb +70 -0
- data/lib/recurly/resources/plan.rb +134 -0
- data/lib/recurly/resources/plan_hosted_pages.rb +26 -0
- data/lib/recurly/resources/plan_mini.rb +26 -0
- data/lib/recurly/resources/plan_pricing.rb +26 -0
- data/lib/recurly/resources/plan_ramp_interval.rb +18 -0
- data/lib/recurly/resources/plan_ramp_pricing.rb +18 -0
- data/lib/recurly/resources/pricing.rb +22 -0
- data/lib/recurly/resources/settings.rb +22 -0
- data/lib/recurly/resources/shipping_address.rb +82 -0
- data/lib/recurly/resources/shipping_method.rb +46 -0
- data/lib/recurly/resources/shipping_method_mini.rb +26 -0
- data/lib/recurly/resources/site.rb +54 -0
- data/lib/recurly/resources/subscription.rb +190 -0
- data/lib/recurly/resources/subscription_add_on.rb +66 -0
- data/lib/recurly/resources/subscription_add_on_tier.rb +18 -0
- data/lib/recurly/resources/subscription_change.rb +90 -0
- data/lib/recurly/resources/subscription_change_billing_info.rb +14 -0
- data/lib/recurly/resources/subscription_change_preview.rb +90 -0
- data/lib/recurly/resources/subscription_ramp_interval_response.rb +22 -0
- data/lib/recurly/resources/subscription_shipping.rb +26 -0
- data/lib/recurly/resources/tax_detail.rb +26 -0
- data/lib/recurly/resources/tax_info.rb +26 -0
- data/lib/recurly/resources/tier.rb +18 -0
- data/lib/recurly/resources/transaction.rb +162 -0
- data/lib/recurly/resources/transaction_error.rb +38 -0
- data/lib/recurly/resources/transaction_payment_gateway.rb +26 -0
- data/lib/recurly/resources/unique_coupon_code.rb +50 -0
- data/lib/recurly/resources/usage.rb +70 -0
- data/lib/recurly/resources/user.rb +42 -0
- data/lib/recurly/resources.rb +18 -0
- data/lib/recurly/schema/file_parser.rb +13 -0
- data/lib/recurly/schema/json_parser.rb +72 -0
- data/lib/recurly/schema/request_caster.rb +60 -0
- data/lib/recurly/schema/resource_caster.rb +46 -0
- data/lib/recurly/schema/schema_factory.rb +48 -0
- data/lib/recurly/schema/schema_validator.rb +144 -0
- data/lib/recurly/schema.rb +156 -0
- data/lib/recurly/version.rb +1 -15
- data/lib/recurly.rb +15 -137
- data/openapi/api.yaml +22373 -0
- data/recurly.gemspec +39 -0
- data/scripts/build +5 -0
- data/scripts/clean +6 -0
- data/scripts/format +12 -0
- data/scripts/prepare-release +50 -0
- data/scripts/release +17 -0
- data/scripts/test +15 -0
- metadata +216 -165
- data/lib/recurly/account.rb +0 -169
- data/lib/recurly/account_balance.rb +0 -21
- data/lib/recurly/add_on.rb +0 -30
- data/lib/recurly/address.rb +0 -25
- data/lib/recurly/adjustment.rb +0 -76
- data/lib/recurly/api/errors.rb +0 -206
- data/lib/recurly/api/net_http_adapter.rb +0 -111
- data/lib/recurly/api.rb +0 -101
- data/lib/recurly/billing_info.rb +0 -80
- data/lib/recurly/coupon.rb +0 -134
- data/lib/recurly/credit_payment.rb +0 -28
- data/lib/recurly/custom_field.rb +0 -15
- data/lib/recurly/delivery.rb +0 -19
- data/lib/recurly/error.rb +0 -13
- data/lib/recurly/gift_card.rb +0 -79
- data/lib/recurly/helper.rb +0 -51
- data/lib/recurly/invoice.rb +0 -268
- data/lib/recurly/invoice_collection.rb +0 -14
- data/lib/recurly/js.rb +0 -14
- data/lib/recurly/juris_detail.rb +0 -14
- data/lib/recurly/measured_unit.rb +0 -16
- data/lib/recurly/money.rb +0 -120
- data/lib/recurly/plan.rb +0 -40
- data/lib/recurly/purchase.rb +0 -219
- 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 -314
- data/lib/recurly/shipping_address.rb +0 -22
- data/lib/recurly/subscription/add_ons.rb +0 -77
- data/lib/recurly/subscription.rb +0 -325
- data/lib/recurly/subscription_add_on.rb +0 -50
- data/lib/recurly/tax_detail.rb +0 -14
- data/lib/recurly/tax_type.rb +0 -12
- data/lib/recurly/transaction/errors.rb +0 -107
- data/lib/recurly/transaction.rb +0 -116
- data/lib/recurly/usage.rb +0 -24
- data/lib/recurly/webhook/account_notification.rb +0 -10
- 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_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/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/gift_card_notification.rb +0 -8
- data/lib/recurly/webhook/invoice_notification.rb +0 -12
- 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_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/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/redeemed_gift_card_notification.rb +0 -7
- 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/subscription_notification.rb +0 -12
- 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/updated_account_notification.rb +0 -6
- data/lib/recurly/webhook/updated_balance_gift_card_notification.rb +0 -7
- 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 -88
- data/lib/recurly/xml/nokogiri.rb +0 -58
- data/lib/recurly/xml/rexml.rb +0 -50
- data/lib/recurly/xml.rb +0 -120
@@ -0,0 +1,22 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Resources
|
7
|
+
class SubscriptionRampIntervalResponse < Resource
|
8
|
+
|
9
|
+
# @!attribute remaining_billing_cycles
|
10
|
+
# @return [Integer] Represents how many billing cycles are left in a ramp interval.
|
11
|
+
define_attribute :remaining_billing_cycles, Integer
|
12
|
+
|
13
|
+
# @!attribute starting_billing_cycle
|
14
|
+
# @return [Integer] Represents the billing cycle where a ramp interval starts.
|
15
|
+
define_attribute :starting_billing_cycle, Integer
|
16
|
+
|
17
|
+
# @!attribute unit_amount
|
18
|
+
# @return [Integer] Represents the price for the ramp interval.
|
19
|
+
define_attribute :unit_amount, Integer
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Resources
|
7
|
+
class SubscriptionShipping < Resource
|
8
|
+
|
9
|
+
# @!attribute address
|
10
|
+
# @return [ShippingAddress]
|
11
|
+
define_attribute :address, :ShippingAddress
|
12
|
+
|
13
|
+
# @!attribute amount
|
14
|
+
# @return [Float] Subscription's shipping cost
|
15
|
+
define_attribute :amount, Float
|
16
|
+
|
17
|
+
# @!attribute method
|
18
|
+
# @return [ShippingMethodMini]
|
19
|
+
define_attribute :method, :ShippingMethodMini
|
20
|
+
|
21
|
+
# @!attribute object
|
22
|
+
# @return [String] Object type
|
23
|
+
define_attribute :object, String
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Resources
|
7
|
+
class TaxDetail < Resource
|
8
|
+
|
9
|
+
# @!attribute rate
|
10
|
+
# @return [Float] Provides the tax rate for the region.
|
11
|
+
define_attribute :rate, Float
|
12
|
+
|
13
|
+
# @!attribute region
|
14
|
+
# @return [String] Provides the tax region applied on an invoice. For Canadian Sales Tax, this will be either the 2 letter province code or country code.
|
15
|
+
define_attribute :region, String
|
16
|
+
|
17
|
+
# @!attribute tax
|
18
|
+
# @return [Float] The total tax applied for this tax type.
|
19
|
+
define_attribute :tax, Float
|
20
|
+
|
21
|
+
# @!attribute type
|
22
|
+
# @return [String] Provides the tax type for the region. For Canadian Sales Tax, this will be GST, HST, QST or PST.
|
23
|
+
define_attribute :type, String
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Resources
|
7
|
+
class TaxInfo < Resource
|
8
|
+
|
9
|
+
# @!attribute rate
|
10
|
+
# @return [Float] Rate
|
11
|
+
define_attribute :rate, Float
|
12
|
+
|
13
|
+
# @!attribute region
|
14
|
+
# @return [String] Provides the tax region applied on an invoice. For U.S. Sales Tax, this will be the 2 letter state code. For EU VAT this will be the 2 letter country code. For all country level tax types, this will display the regional tax, like VAT, GST, or PST.
|
15
|
+
define_attribute :region, String
|
16
|
+
|
17
|
+
# @!attribute tax_details
|
18
|
+
# @return [Array[TaxDetail]] Provides additional tax details for Canadian Sales Tax when there is tax applied at both the country and province levels. This will only be populated for the Invoice response when fetching a single invoice and not for the InvoiceList or LineItem.
|
19
|
+
define_attribute :tax_details, Array, { :item_type => :TaxDetail }
|
20
|
+
|
21
|
+
# @!attribute type
|
22
|
+
# @return [String] Provides the tax type as "vat" for EU VAT, "usst" for U.S. Sales Tax, or the 2 letter country code for country level tax types like Canada, Australia, New Zealand, Israel, and all non-EU European countries.
|
23
|
+
define_attribute :type, String
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Resources
|
7
|
+
class Tier < Resource
|
8
|
+
|
9
|
+
# @!attribute currencies
|
10
|
+
# @return [Array[Pricing]] Tier pricing
|
11
|
+
define_attribute :currencies, Array, { :item_type => :Pricing }
|
12
|
+
|
13
|
+
# @!attribute ending_quantity
|
14
|
+
# @return [Integer] Ending quantity
|
15
|
+
define_attribute :ending_quantity, Integer
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,162 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Resources
|
7
|
+
class Transaction < Resource
|
8
|
+
|
9
|
+
# @!attribute account
|
10
|
+
# @return [AccountMini] Account mini details
|
11
|
+
define_attribute :account, :AccountMini
|
12
|
+
|
13
|
+
# @!attribute amount
|
14
|
+
# @return [Float] Total transaction amount sent to the payment gateway.
|
15
|
+
define_attribute :amount, Float
|
16
|
+
|
17
|
+
# @!attribute avs_check
|
18
|
+
# @return [String] When processed, result from checking the overall AVS on the transaction.
|
19
|
+
define_attribute :avs_check, String
|
20
|
+
|
21
|
+
# @!attribute backup_payment_method_used
|
22
|
+
# @return [Boolean] Indicates if the transaction was completed using a backup payment
|
23
|
+
define_attribute :backup_payment_method_used, :Boolean
|
24
|
+
|
25
|
+
# @!attribute billing_address
|
26
|
+
# @return [Address]
|
27
|
+
define_attribute :billing_address, :Address
|
28
|
+
|
29
|
+
# @!attribute collected_at
|
30
|
+
# @return [DateTime] Collected at, or if not collected yet, the time the transaction was created.
|
31
|
+
define_attribute :collected_at, DateTime
|
32
|
+
|
33
|
+
# @!attribute collection_method
|
34
|
+
# @return [String] The method by which the payment was collected.
|
35
|
+
define_attribute :collection_method, String
|
36
|
+
|
37
|
+
# @!attribute created_at
|
38
|
+
# @return [DateTime] Created at
|
39
|
+
define_attribute :created_at, DateTime
|
40
|
+
|
41
|
+
# @!attribute currency
|
42
|
+
# @return [String] 3-letter ISO 4217 currency code.
|
43
|
+
define_attribute :currency, String
|
44
|
+
|
45
|
+
# @!attribute customer_message
|
46
|
+
# @return [String] For declined (`success=false`) transactions, the message displayed to the customer.
|
47
|
+
define_attribute :customer_message, String
|
48
|
+
|
49
|
+
# @!attribute customer_message_locale
|
50
|
+
# @return [String] Language code for the message
|
51
|
+
define_attribute :customer_message_locale, String
|
52
|
+
|
53
|
+
# @!attribute cvv_check
|
54
|
+
# @return [String] When processed, result from checking the CVV/CVC value on the transaction.
|
55
|
+
define_attribute :cvv_check, String
|
56
|
+
|
57
|
+
# @!attribute gateway_approval_code
|
58
|
+
# @return [String] Transaction approval code from the payment gateway.
|
59
|
+
define_attribute :gateway_approval_code, String
|
60
|
+
|
61
|
+
# @!attribute gateway_message
|
62
|
+
# @return [String] Transaction message from the payment gateway.
|
63
|
+
define_attribute :gateway_message, String
|
64
|
+
|
65
|
+
# @!attribute gateway_reference
|
66
|
+
# @return [String] Transaction reference number from the payment gateway.
|
67
|
+
define_attribute :gateway_reference, String
|
68
|
+
|
69
|
+
# @!attribute gateway_response_code
|
70
|
+
# @return [String] For declined transactions (`success=false`), this field lists the gateway error code.
|
71
|
+
define_attribute :gateway_response_code, String
|
72
|
+
|
73
|
+
# @!attribute gateway_response_time
|
74
|
+
# @return [Float] Time, in seconds, for gateway to process the transaction.
|
75
|
+
define_attribute :gateway_response_time, Float
|
76
|
+
|
77
|
+
# @!attribute gateway_response_values
|
78
|
+
# @return [Hash] The values in this field will vary from gateway to gateway.
|
79
|
+
define_attribute :gateway_response_values, Hash
|
80
|
+
|
81
|
+
# @!attribute id
|
82
|
+
# @return [String] Transaction ID
|
83
|
+
define_attribute :id, String
|
84
|
+
|
85
|
+
# @!attribute invoice
|
86
|
+
# @return [InvoiceMini] Invoice mini details
|
87
|
+
define_attribute :invoice, :InvoiceMini
|
88
|
+
|
89
|
+
# @!attribute ip_address_country
|
90
|
+
# @return [String] Origin IP address country, 2-letter ISO 3166-1 alpha-2 code, if known by Recurly.
|
91
|
+
define_attribute :ip_address_country, String
|
92
|
+
|
93
|
+
# @!attribute ip_address_v4
|
94
|
+
# @return [String] IP address provided when the billing information was collected: - When the customer enters billing information into the Recurly.js or Hosted Payment Pages, Recurly records the IP address. - When the merchant enters billing information using the API, the merchant may provide an IP address. - When the merchant enters billing information using the UI, no IP address is recorded.
|
95
|
+
define_attribute :ip_address_v4, String
|
96
|
+
|
97
|
+
# @!attribute object
|
98
|
+
# @return [String] Object type
|
99
|
+
define_attribute :object, String
|
100
|
+
|
101
|
+
# @!attribute origin
|
102
|
+
# @return [String] Describes how the transaction was triggered.
|
103
|
+
define_attribute :origin, String
|
104
|
+
|
105
|
+
# @!attribute original_transaction_id
|
106
|
+
# @return [String] If this transaction is a refund (`type=refund`), this will be the ID of the original transaction on the invoice being refunded.
|
107
|
+
define_attribute :original_transaction_id, String
|
108
|
+
|
109
|
+
# @!attribute payment_gateway
|
110
|
+
# @return [TransactionPaymentGateway]
|
111
|
+
define_attribute :payment_gateway, :TransactionPaymentGateway
|
112
|
+
|
113
|
+
# @!attribute payment_method
|
114
|
+
# @return [PaymentMethod]
|
115
|
+
define_attribute :payment_method, :PaymentMethod
|
116
|
+
|
117
|
+
# @!attribute refunded
|
118
|
+
# @return [Boolean] Indicates if part or all of this transaction was refunded.
|
119
|
+
define_attribute :refunded, :Boolean
|
120
|
+
|
121
|
+
# @!attribute status
|
122
|
+
# @return [String] The current transaction status. Note that the status may change, e.g. a `pending` transaction may become `declined` or `success` may later become `void`.
|
123
|
+
define_attribute :status, String
|
124
|
+
|
125
|
+
# @!attribute status_code
|
126
|
+
# @return [String] Status code
|
127
|
+
define_attribute :status_code, String
|
128
|
+
|
129
|
+
# @!attribute status_message
|
130
|
+
# @return [String] For declined (`success=false`) transactions, the message displayed to the merchant.
|
131
|
+
define_attribute :status_message, String
|
132
|
+
|
133
|
+
# @!attribute subscription_ids
|
134
|
+
# @return [Array[String]] If the transaction is charging or refunding for one or more subscriptions, these are their IDs.
|
135
|
+
define_attribute :subscription_ids, Array, { :item_type => String }
|
136
|
+
|
137
|
+
# @!attribute success
|
138
|
+
# @return [Boolean] Did this transaction complete successfully?
|
139
|
+
define_attribute :success, :Boolean
|
140
|
+
|
141
|
+
# @!attribute type
|
142
|
+
# @return [String] - `authorization` – verifies billing information and places a hold on money in the customer's account. - `capture` – captures funds held by an authorization and completes a purchase. - `purchase` – combines the authorization and capture in one transaction. - `refund` – returns all or a portion of the money collected in a previous transaction to the customer. - `verify` – a $0 or $1 transaction used to verify billing information which is immediately voided.
|
143
|
+
define_attribute :type, String
|
144
|
+
|
145
|
+
# @!attribute updated_at
|
146
|
+
# @return [DateTime] Updated at
|
147
|
+
define_attribute :updated_at, DateTime
|
148
|
+
|
149
|
+
# @!attribute uuid
|
150
|
+
# @return [String] The UUID is useful for matching data with the CSV exports and building URLs into Recurly's UI.
|
151
|
+
define_attribute :uuid, String
|
152
|
+
|
153
|
+
# @!attribute voided_at
|
154
|
+
# @return [DateTime] Voided at
|
155
|
+
define_attribute :voided_at, DateTime
|
156
|
+
|
157
|
+
# @!attribute voided_by_invoice
|
158
|
+
# @return [InvoiceMini] Invoice mini details
|
159
|
+
define_attribute :voided_by_invoice, :InvoiceMini
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Resources
|
7
|
+
class TransactionError < Resource
|
8
|
+
|
9
|
+
# @!attribute category
|
10
|
+
# @return [String] Category
|
11
|
+
define_attribute :category, String
|
12
|
+
|
13
|
+
# @!attribute code
|
14
|
+
# @return [String] Code
|
15
|
+
define_attribute :code, String
|
16
|
+
|
17
|
+
# @!attribute merchant_advice
|
18
|
+
# @return [String] Merchant message
|
19
|
+
define_attribute :merchant_advice, String
|
20
|
+
|
21
|
+
# @!attribute message
|
22
|
+
# @return [String] Customer message
|
23
|
+
define_attribute :message, String
|
24
|
+
|
25
|
+
# @!attribute object
|
26
|
+
# @return [String] Object type
|
27
|
+
define_attribute :object, String
|
28
|
+
|
29
|
+
# @!attribute three_d_secure_action_token_id
|
30
|
+
# @return [String] Returned when 3-D Secure authentication is required for a transaction. Pass this value to Recurly.js so it can continue the challenge flow.
|
31
|
+
define_attribute :three_d_secure_action_token_id, String
|
32
|
+
|
33
|
+
# @!attribute transaction_id
|
34
|
+
# @return [String] Transaction ID
|
35
|
+
define_attribute :transaction_id, String
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Resources
|
7
|
+
class TransactionPaymentGateway < Resource
|
8
|
+
|
9
|
+
# @!attribute id
|
10
|
+
# @return [String]
|
11
|
+
define_attribute :id, String
|
12
|
+
|
13
|
+
# @!attribute name
|
14
|
+
# @return [String]
|
15
|
+
define_attribute :name, String
|
16
|
+
|
17
|
+
# @!attribute object
|
18
|
+
# @return [String] Object type
|
19
|
+
define_attribute :object, String
|
20
|
+
|
21
|
+
# @!attribute type
|
22
|
+
# @return [String]
|
23
|
+
define_attribute :type, String
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Resources
|
7
|
+
class UniqueCouponCode < Resource
|
8
|
+
|
9
|
+
# @!attribute bulk_coupon_code
|
10
|
+
# @return [String] The Coupon code of the parent Bulk Coupon
|
11
|
+
define_attribute :bulk_coupon_code, String
|
12
|
+
|
13
|
+
# @!attribute bulk_coupon_id
|
14
|
+
# @return [String] The Coupon ID of the parent Bulk Coupon
|
15
|
+
define_attribute :bulk_coupon_id, String
|
16
|
+
|
17
|
+
# @!attribute code
|
18
|
+
# @return [String] The code the customer enters to redeem the coupon.
|
19
|
+
define_attribute :code, String
|
20
|
+
|
21
|
+
# @!attribute created_at
|
22
|
+
# @return [DateTime] Created at
|
23
|
+
define_attribute :created_at, DateTime
|
24
|
+
|
25
|
+
# @!attribute expired_at
|
26
|
+
# @return [DateTime] The date and time the coupon was expired early or reached its `max_redemptions`.
|
27
|
+
define_attribute :expired_at, DateTime
|
28
|
+
|
29
|
+
# @!attribute id
|
30
|
+
# @return [String] Unique Coupon Code ID
|
31
|
+
define_attribute :id, String
|
32
|
+
|
33
|
+
# @!attribute object
|
34
|
+
# @return [String] Object type
|
35
|
+
define_attribute :object, String
|
36
|
+
|
37
|
+
# @!attribute redeemed_at
|
38
|
+
# @return [DateTime] The date and time the unique coupon code was redeemed.
|
39
|
+
define_attribute :redeemed_at, DateTime
|
40
|
+
|
41
|
+
# @!attribute state
|
42
|
+
# @return [String] Indicates if the unique coupon code is redeemable or why not.
|
43
|
+
define_attribute :state, String
|
44
|
+
|
45
|
+
# @!attribute updated_at
|
46
|
+
# @return [DateTime] Updated at
|
47
|
+
define_attribute :updated_at, DateTime
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Resources
|
7
|
+
class Usage < Resource
|
8
|
+
|
9
|
+
# @!attribute amount
|
10
|
+
# @return [Float] The amount of usage. Can be positive, negative, or 0. If the Decimal Quantity feature is enabled, this value will be rounded to nine decimal places. Otherwise, all digits after the decimal will be stripped. If the usage-based add-on is billed with a percentage, your usage should be a monetary amount formatted in cents (e.g., $5.00 is "500").
|
11
|
+
define_attribute :amount, Float
|
12
|
+
|
13
|
+
# @!attribute billed_at
|
14
|
+
# @return [DateTime] When the usage record was billed on an invoice.
|
15
|
+
define_attribute :billed_at, DateTime
|
16
|
+
|
17
|
+
# @!attribute created_at
|
18
|
+
# @return [DateTime] When the usage record was created in Recurly.
|
19
|
+
define_attribute :created_at, DateTime
|
20
|
+
|
21
|
+
# @!attribute id
|
22
|
+
# @return [String]
|
23
|
+
define_attribute :id, String
|
24
|
+
|
25
|
+
# @!attribute measured_unit_id
|
26
|
+
# @return [String] The ID of the measured unit associated with the add-on the usage record is for.
|
27
|
+
define_attribute :measured_unit_id, String
|
28
|
+
|
29
|
+
# @!attribute merchant_tag
|
30
|
+
# @return [String] Custom field for recording the id in your own system associated with the usage, so you can provide auditable usage displays to your customers using a GET on this endpoint.
|
31
|
+
define_attribute :merchant_tag, String
|
32
|
+
|
33
|
+
# @!attribute object
|
34
|
+
# @return [String] Object type
|
35
|
+
define_attribute :object, String
|
36
|
+
|
37
|
+
# @!attribute recording_timestamp
|
38
|
+
# @return [DateTime] When the usage was recorded in your system.
|
39
|
+
define_attribute :recording_timestamp, DateTime
|
40
|
+
|
41
|
+
# @!attribute tier_type
|
42
|
+
# @return [String] The pricing model for the add-on. For more information, [click here](https://docs.recurly.com/docs/billing-models#section-quantity-based).
|
43
|
+
define_attribute :tier_type, String
|
44
|
+
|
45
|
+
# @!attribute tiers
|
46
|
+
# @return [Array[SubscriptionAddOnTier]] The tiers and prices of the subscription based on the usage_timestamp. If tier_type = flat, tiers = null
|
47
|
+
define_attribute :tiers, Array, { :item_type => :SubscriptionAddOnTier }
|
48
|
+
|
49
|
+
# @!attribute unit_amount
|
50
|
+
# @return [Float] Unit price
|
51
|
+
define_attribute :unit_amount, Float
|
52
|
+
|
53
|
+
# @!attribute updated_at
|
54
|
+
# @return [DateTime] When the usage record was billed on an invoice.
|
55
|
+
define_attribute :updated_at, DateTime
|
56
|
+
|
57
|
+
# @!attribute usage_percentage
|
58
|
+
# @return [Float] The percentage taken of the monetary amount of usage tracked. This can be up to 4 decimal places. A value between 0.0 and 100.0.
|
59
|
+
define_attribute :usage_percentage, Float
|
60
|
+
|
61
|
+
# @!attribute usage_timestamp
|
62
|
+
# @return [DateTime] When the usage actually happened. This will define the line item dates this usage is billed under and is important for revenue recognition.
|
63
|
+
define_attribute :usage_timestamp, DateTime
|
64
|
+
|
65
|
+
# @!attribute usage_type
|
66
|
+
# @return [String] Type of usage, returns usage type if `add_on_type` is `usage`.
|
67
|
+
define_attribute :usage_type, String
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# This file is automatically created by Recurly's OpenAPI generation process
|
2
|
+
# and thus any edits you make by hand will be lost. If you wish to make a
|
3
|
+
# change to this file, please create a Github issue explaining the changes you
|
4
|
+
# need and we will usher them to the appropriate places.
|
5
|
+
module Recurly
|
6
|
+
module Resources
|
7
|
+
class User < Resource
|
8
|
+
|
9
|
+
# @!attribute created_at
|
10
|
+
# @return [DateTime]
|
11
|
+
define_attribute :created_at, DateTime
|
12
|
+
|
13
|
+
# @!attribute deleted_at
|
14
|
+
# @return [DateTime]
|
15
|
+
define_attribute :deleted_at, DateTime
|
16
|
+
|
17
|
+
# @!attribute email
|
18
|
+
# @return [String]
|
19
|
+
define_attribute :email, String
|
20
|
+
|
21
|
+
# @!attribute first_name
|
22
|
+
# @return [String]
|
23
|
+
define_attribute :first_name, String
|
24
|
+
|
25
|
+
# @!attribute id
|
26
|
+
# @return [String]
|
27
|
+
define_attribute :id, String
|
28
|
+
|
29
|
+
# @!attribute last_name
|
30
|
+
# @return [String]
|
31
|
+
define_attribute :last_name, String
|
32
|
+
|
33
|
+
# @!attribute object
|
34
|
+
# @return [String] Object type
|
35
|
+
define_attribute :object, String
|
36
|
+
|
37
|
+
# @!attribute time_zone
|
38
|
+
# @return [String]
|
39
|
+
define_attribute :time_zone, String
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Include all resource files
|
2
|
+
resources = File.join(File.dirname(__FILE__), "resources", "*.rb")
|
3
|
+
Dir.glob(resources, &method(:require))
|
4
|
+
|
5
|
+
module Recurly
|
6
|
+
module Resources
|
7
|
+
class Empty < Resource
|
8
|
+
end
|
9
|
+
|
10
|
+
class Page < Resource
|
11
|
+
# leave data untyped
|
12
|
+
define_attribute :data, Array, item_type: Hash
|
13
|
+
define_attribute :has_more, :Boolean
|
14
|
+
define_attribute :next, String
|
15
|
+
define_attribute :object, String
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Recurly
|
2
|
+
# This is a wrapper class to help parse http response into Recurly objects.
|
3
|
+
class FileParser
|
4
|
+
|
5
|
+
# Parses the json body into a recurly object.
|
6
|
+
#
|
7
|
+
# @param body [String] The data string to cast.
|
8
|
+
# @return [Resource]
|
9
|
+
def self.parse(body)
|
10
|
+
Recurly::Resources::BinaryFile.cast(data: body)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require "json"
|
2
|
+
|
3
|
+
module Recurly
|
4
|
+
# This is a wrapper class to help parse http response into Recurly objects.
|
5
|
+
class JSONParser
|
6
|
+
|
7
|
+
# Parses the json body into a recurly object.
|
8
|
+
#
|
9
|
+
# @param client [Client] The Recurly client which made the request.
|
10
|
+
# @param body [String] The JSON string to parse.
|
11
|
+
# @return [Resource]
|
12
|
+
def self.parse(client, body)
|
13
|
+
data = JSON.parse(body)
|
14
|
+
from_json(data).tap do |object|
|
15
|
+
object.client = client if object.requires_client?
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# Converts the parsed JSON into a Recurly object.
|
20
|
+
#
|
21
|
+
# *TODO*: Instead of inferring this type from the `object`
|
22
|
+
# attribute. We should instead "register" the response type
|
23
|
+
# in the client/operations code. The `get`, `post`, etc methods
|
24
|
+
# could explicitly state their response types.
|
25
|
+
#
|
26
|
+
# @param data [Hash] The parsed JSON data
|
27
|
+
# @return [Error,Resource]
|
28
|
+
def self.from_json(data)
|
29
|
+
type = if data.has_key?("error")
|
30
|
+
"error_may_have_transaction"
|
31
|
+
else
|
32
|
+
data["object"]
|
33
|
+
end
|
34
|
+
klazz = self.recurly_class(type)
|
35
|
+
|
36
|
+
unless klazz
|
37
|
+
raise ArgumentError, "Unknown resource for json type #{type}"
|
38
|
+
end
|
39
|
+
|
40
|
+
data = data["error"] if klazz == Resources::ErrorMayHaveTransaction
|
41
|
+
|
42
|
+
klazz.cast(data)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Returns the Recurly ruby class responsible for the Recurly json key.
|
46
|
+
#
|
47
|
+
# @example
|
48
|
+
# JSONParser.recurly_class('list')
|
49
|
+
# #=> Recurly::Page
|
50
|
+
# @example
|
51
|
+
# JSONParser.recurly_class('shipping_address')
|
52
|
+
# #=> Recurly::Resources::ShippingAddress
|
53
|
+
#
|
54
|
+
# @param type [String] The JSON key.
|
55
|
+
# @return [Resource,Pager,nil]
|
56
|
+
def self.recurly_class(type)
|
57
|
+
case type
|
58
|
+
when nil
|
59
|
+
nil
|
60
|
+
when "list"
|
61
|
+
Resources::Page
|
62
|
+
else
|
63
|
+
type_camelized = type.split("_").map(&:capitalize).join
|
64
|
+
if Resources.const_defined?(type_camelized, false)
|
65
|
+
Resources.const_get(type_camelized, false)
|
66
|
+
elsif Recurly::STRICT_MODE
|
67
|
+
raise ArgumentError, "Could not find Recurly Resource responsible for key #{type}"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|