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.
Files changed (234) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +14 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +158 -110
  8. data/Rakefile +6 -0
  9. data/bin/bundle +105 -0
  10. data/bin/coderay +29 -0
  11. data/bin/console +14 -0
  12. data/bin/htmldiff +29 -0
  13. data/bin/ldiff +29 -0
  14. data/bin/pry +29 -0
  15. data/bin/rake +29 -0
  16. data/bin/rspec +29 -0
  17. data/bin/setup +8 -0
  18. data/bin/yard +29 -0
  19. data/bin/yardoc +29 -0
  20. data/bin/yri +29 -0
  21. data/lib/data/ca-certificates.crt +31 -0
  22. data/lib/recurly/client/operations.rb +935 -0
  23. data/lib/recurly/client.rb +198 -0
  24. data/lib/recurly/errors/api_errors.rb +35 -0
  25. data/lib/recurly/errors/network_errors.rb +8 -0
  26. data/lib/recurly/errors.rb +34 -0
  27. data/lib/recurly/pager.rb +119 -0
  28. data/lib/recurly/request.rb +30 -0
  29. data/lib/recurly/requests/account_acquisition_updatable.rb +22 -0
  30. data/lib/recurly/requests/account_create_only.rb +18 -0
  31. data/lib/recurly/requests/account_updatable.rb +50 -0
  32. data/lib/recurly/requests/add_on_create.rb +38 -0
  33. data/lib/recurly/requests/add_on_update.rb +38 -0
  34. data/lib/recurly/requests/address.rb +42 -0
  35. data/lib/recurly/requests/billing_info_create.rb +58 -0
  36. data/lib/recurly/requests/coupon_create_only.rb +66 -0
  37. data/lib/recurly/requests/coupon_updatable.rb +30 -0
  38. data/lib/recurly/requests/create_account.rb +62 -0
  39. data/lib/recurly/requests/create_coupon.rb +90 -0
  40. data/lib/recurly/requests/invoice_create.rb +42 -0
  41. data/lib/recurly/requests/invoice_refund.rb +30 -0
  42. data/lib/recurly/requests/line_item_create.rb +46 -0
  43. data/lib/recurly/requests/plan_create.rb +66 -0
  44. data/lib/recurly/requests/plan_update.rb +70 -0
  45. data/lib/recurly/requests/shipping_address_create.rb +58 -0
  46. data/lib/recurly/requests/shipping_address_update.rb +62 -0
  47. data/lib/recurly/requests/subscription_add_on_create.rb +22 -0
  48. data/lib/recurly/requests/subscription_change_create.rb +42 -0
  49. data/lib/recurly/requests/subscription_create.rb +86 -0
  50. data/lib/recurly/requests/subscription_update.rb +42 -0
  51. data/lib/recurly/requests/update_coupon.rb +30 -0
  52. data/lib/recurly/resource.rb +16 -1114
  53. data/lib/recurly/resources/account.rb +86 -0
  54. data/lib/recurly/resources/account_acquisition.rb +42 -0
  55. data/lib/recurly/resources/account_balance.rb +22 -0
  56. data/lib/recurly/resources/account_note.rb +30 -0
  57. data/lib/recurly/resources/add_on.rb +62 -0
  58. data/lib/recurly/resources/address.rb +42 -0
  59. data/lib/recurly/resources/billing_info.rb +62 -0
  60. data/lib/recurly/resources/coupon.rb +110 -0
  61. data/lib/recurly/resources/coupon_discount.rb +22 -0
  62. data/lib/recurly/resources/coupon_redemption.rb +46 -0
  63. data/lib/recurly/resources/credit_payment.rb +62 -0
  64. data/lib/recurly/resources/error.rb +18 -0
  65. data/lib/recurly/resources/error_may_have_transaction.rb +22 -0
  66. data/lib/recurly/resources/invoice.rb +138 -0
  67. data/lib/recurly/resources/invoice_collection.rb +18 -0
  68. data/lib/recurly/resources/line_item.rb +166 -0
  69. data/lib/recurly/resources/plan.rb +86 -0
  70. data/lib/recurly/resources/settings.rb +18 -0
  71. data/lib/recurly/resources/shipping_address.rb +74 -0
  72. data/lib/recurly/resources/site.rb +46 -0
  73. data/lib/recurly/resources/subscription.rb +134 -0
  74. data/lib/recurly/resources/subscription_add_on.rb +42 -0
  75. data/lib/recurly/resources/subscription_change.rb +54 -0
  76. data/lib/recurly/resources/tax_info.rb +18 -0
  77. data/lib/recurly/resources/transaction.rb +146 -0
  78. data/lib/recurly/resources/unique_coupon_code.rb +38 -0
  79. data/lib/recurly/resources/user.rb +38 -0
  80. data/lib/recurly/schema/json_deserializer.rb +53 -0
  81. data/lib/recurly/schema/json_parser.rb +71 -0
  82. data/lib/recurly/schema/request_caster.rb +66 -0
  83. data/lib/recurly/schema/schema_factory.rb +50 -0
  84. data/lib/recurly/schema/schema_validator.rb +125 -0
  85. data/lib/recurly/schema.rb +114 -0
  86. data/lib/recurly/version.rb +1 -10
  87. data/lib/recurly.rb +14 -167
  88. data/recurly.gemspec +32 -0
  89. data/scripts/build +4 -0
  90. data/scripts/clean +6 -0
  91. data/scripts/test +3 -0
  92. metadata +129 -196
  93. data/lib/recurly/account.rb +0 -230
  94. data/lib/recurly/account_acquisition.rb +0 -27
  95. data/lib/recurly/account_balance.rb +0 -23
  96. data/lib/recurly/add_on.rb +0 -52
  97. data/lib/recurly/address.rb +0 -25
  98. data/lib/recurly/adjustment.rb +0 -100
  99. data/lib/recurly/api/errors.rb +0 -208
  100. data/lib/recurly/api/net_http_adapter.rb +0 -111
  101. data/lib/recurly/api.rb +0 -110
  102. data/lib/recurly/billing_info.rb +0 -134
  103. data/lib/recurly/business_entity.rb +0 -35
  104. data/lib/recurly/coupon.rb +0 -136
  105. data/lib/recurly/credit_payment.rb +0 -32
  106. data/lib/recurly/currency_percentage_tier.rb +0 -17
  107. data/lib/recurly/custom_field.rb +0 -15
  108. data/lib/recurly/custom_field_definition.rb +0 -14
  109. data/lib/recurly/customer_permission.rb +0 -10
  110. data/lib/recurly/delivery.rb +0 -19
  111. data/lib/recurly/dunning_campaign.rb +0 -30
  112. data/lib/recurly/dunning_cycle.rb +0 -18
  113. data/lib/recurly/entitlement.rb +0 -19
  114. data/lib/recurly/error.rb +0 -13
  115. data/lib/recurly/external_account.rb +0 -17
  116. data/lib/recurly/external_charge.rb +0 -20
  117. data/lib/recurly/external_invoice.rb +0 -27
  118. data/lib/recurly/external_payment_phase.rb +0 -27
  119. data/lib/recurly/external_product.rb +0 -34
  120. data/lib/recurly/external_product_reference.rb +0 -18
  121. data/lib/recurly/external_subscription.rb +0 -62
  122. data/lib/recurly/gateway_attribute.rb +0 -10
  123. data/lib/recurly/general_ledger_account.rb +0 -16
  124. data/lib/recurly/gift_card.rb +0 -85
  125. data/lib/recurly/helper.rb +0 -51
  126. data/lib/recurly/invoice.rb +0 -354
  127. data/lib/recurly/invoice_collection.rb +0 -14
  128. data/lib/recurly/invoice_template.rb +0 -14
  129. data/lib/recurly/item.rb +0 -36
  130. data/lib/recurly/js.rb +0 -14
  131. data/lib/recurly/juris_detail.rb +0 -15
  132. data/lib/recurly/measured_unit.rb +0 -16
  133. data/lib/recurly/money.rb +0 -120
  134. data/lib/recurly/note.rb +0 -14
  135. data/lib/recurly/percentage_tier.rb +0 -17
  136. data/lib/recurly/performance_obligation.rb +0 -15
  137. data/lib/recurly/plan.rb +0 -59
  138. data/lib/recurly/plan_ramp_interval.rb +0 -10
  139. data/lib/recurly/purchase.rb +0 -239
  140. data/lib/recurly/redemption.rb +0 -46
  141. data/lib/recurly/resource/association.rb +0 -16
  142. data/lib/recurly/resource/errors.rb +0 -20
  143. data/lib/recurly/resource/pager.rb +0 -313
  144. data/lib/recurly/rev_rec.rb +0 -18
  145. data/lib/recurly/shipping_address.rb +0 -26
  146. data/lib/recurly/shipping_fee.rb +0 -17
  147. data/lib/recurly/shipping_method.rb +0 -13
  148. data/lib/recurly/sub_add_on_percentage_tier.rb +0 -17
  149. data/lib/recurly/subscription/add_ons.rb +0 -82
  150. data/lib/recurly/subscription.rb +0 -374
  151. data/lib/recurly/subscription_add_on.rb +0 -64
  152. data/lib/recurly/subscription_ramp_interval.rb +0 -12
  153. data/lib/recurly/tax_detail.rb +0 -18
  154. data/lib/recurly/tax_type.rb +0 -13
  155. data/lib/recurly/tier.rb +0 -18
  156. data/lib/recurly/transaction/errors.rb +0 -119
  157. data/lib/recurly/transaction.rb +0 -132
  158. data/lib/recurly/usage.rb +0 -29
  159. data/lib/recurly/verify.rb +0 -12
  160. data/lib/recurly/webhook/account_notification.rb +0 -13
  161. data/lib/recurly/webhook/billing_info_update_failed_notification.rb +0 -6
  162. data/lib/recurly/webhook/billing_info_updated_notification.rb +0 -6
  163. data/lib/recurly/webhook/canceled_account_notification.rb +0 -6
  164. data/lib/recurly/webhook/canceled_gift_card_notification.rb +0 -6
  165. data/lib/recurly/webhook/canceled_subscription_notification.rb +0 -6
  166. data/lib/recurly/webhook/closed_credit_invoice_notification.rb +0 -6
  167. data/lib/recurly/webhook/closed_invoice_notification.rb +0 -6
  168. data/lib/recurly/webhook/credit_payment_notification.rb +0 -12
  169. data/lib/recurly/webhook/deactivated_item_notification.rb +0 -6
  170. data/lib/recurly/webhook/deleted_shipping_address_notification.rb +0 -6
  171. data/lib/recurly/webhook/dunning_notification.rb +0 -14
  172. data/lib/recurly/webhook/expired_subscription_notification.rb +0 -6
  173. data/lib/recurly/webhook/failed_charge_invoice_notification.rb +0 -6
  174. data/lib/recurly/webhook/failed_payment_notification.rb +0 -6
  175. data/lib/recurly/webhook/fraud_info_updated_notification.rb +0 -6
  176. data/lib/recurly/webhook/gift_card_notification.rb +0 -8
  177. data/lib/recurly/webhook/invoice_notification.rb +0 -12
  178. data/lib/recurly/webhook/item_notification.rb +0 -7
  179. data/lib/recurly/webhook/low_balance_gift_card_notification.rb +0 -6
  180. data/lib/recurly/webhook/new_account_notification.rb +0 -6
  181. data/lib/recurly/webhook/new_charge_invoice_notification.rb +0 -6
  182. data/lib/recurly/webhook/new_credit_invoice_notification.rb +0 -6
  183. data/lib/recurly/webhook/new_credit_payment_notification.rb +0 -6
  184. data/lib/recurly/webhook/new_dunning_event_notification.rb +0 -6
  185. data/lib/recurly/webhook/new_invoice_notification.rb +0 -6
  186. data/lib/recurly/webhook/new_item_notification.rb +0 -6
  187. data/lib/recurly/webhook/new_shipping_address_notification.rb +0 -6
  188. data/lib/recurly/webhook/new_subscription_notification.rb +0 -6
  189. data/lib/recurly/webhook/new_usage_notification.rb +0 -8
  190. data/lib/recurly/webhook/notification.rb +0 -18
  191. data/lib/recurly/webhook/paid_charge_invoice_notification.rb +0 -6
  192. data/lib/recurly/webhook/past_due_charge_invoice_notification.rb +0 -6
  193. data/lib/recurly/webhook/past_due_invoice_notification.rb +0 -6
  194. data/lib/recurly/webhook/paused_subscription_renewal_notification.rb +0 -6
  195. data/lib/recurly/webhook/prerenewal_notification.rb +0 -6
  196. data/lib/recurly/webhook/processing_charge_invoice_notification.rb +0 -6
  197. data/lib/recurly/webhook/processing_credit_invoice_notification.rb +0 -6
  198. data/lib/recurly/webhook/processing_invoice_notification.rb +0 -6
  199. data/lib/recurly/webhook/processing_payment_notification.rb +0 -6
  200. data/lib/recurly/webhook/purchased_gift_card_notification.rb +0 -7
  201. data/lib/recurly/webhook/reactivated_account_notification.rb +0 -6
  202. data/lib/recurly/webhook/reactivated_item_notification.rb +0 -6
  203. data/lib/recurly/webhook/redeemed_gift_card_notification.rb +0 -7
  204. data/lib/recurly/webhook/regenerated_gift_card_notification.rb +0 -6
  205. data/lib/recurly/webhook/renewed_subscription_notification.rb +0 -6
  206. data/lib/recurly/webhook/reopened_charge_invoice_notification.rb +0 -6
  207. data/lib/recurly/webhook/reopened_credit_invoice_notification.rb +0 -6
  208. data/lib/recurly/webhook/scheduled_payment_notification.rb +0 -6
  209. data/lib/recurly/webhook/scheduled_subscription_pause_notification.rb +0 -6
  210. data/lib/recurly/webhook/scheduled_subscription_update_notification.rb +0 -6
  211. data/lib/recurly/webhook/subscription_notification.rb +0 -12
  212. data/lib/recurly/webhook/subscription_pause_canceled_notification.rb +0 -6
  213. data/lib/recurly/webhook/subscription_pause_modified_notification.rb +0 -6
  214. data/lib/recurly/webhook/subscription_paused_notification.rb +0 -6
  215. data/lib/recurly/webhook/subscription_resumed_notification.rb +0 -6
  216. data/lib/recurly/webhook/successful_payment_notification.rb +0 -6
  217. data/lib/recurly/webhook/successful_refund_notification.rb +0 -6
  218. data/lib/recurly/webhook/transaction_authorized_notification.rb +0 -6
  219. data/lib/recurly/webhook/transaction_notification.rb +0 -12
  220. data/lib/recurly/webhook/transaction_status_updated_notification.rb +0 -6
  221. data/lib/recurly/webhook/updated_account_notification.rb +0 -6
  222. data/lib/recurly/webhook/updated_balance_gift_card_notification.rb +0 -7
  223. data/lib/recurly/webhook/updated_gift_card_notification.rb +0 -6
  224. data/lib/recurly/webhook/updated_invoice_notification.rb +0 -6
  225. data/lib/recurly/webhook/updated_item_notification.rb +0 -6
  226. data/lib/recurly/webhook/updated_shipping_address_notification.rb +0 -6
  227. data/lib/recurly/webhook/updated_subscription_notification.rb +0 -6
  228. data/lib/recurly/webhook/void_payment_notification.rb +0 -6
  229. data/lib/recurly/webhook/voided_credit_invoice_notification.rb +0 -6
  230. data/lib/recurly/webhook/voided_credit_payment_notification.rb +0 -6
  231. data/lib/recurly/webhook.rb +0 -113
  232. data/lib/recurly/xml/nokogiri.rb +0 -60
  233. data/lib/recurly/xml/rexml.rb +0 -52
  234. data/lib/recurly/xml.rb +0 -122
@@ -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
@@ -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
@@ -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
@@ -1,14 +0,0 @@
1
- module Recurly
2
- class CustomFieldDefinition < Resource
3
- define_attribute_methods %w(
4
- id
5
- related_type
6
- name
7
- user_access
8
- display_name
9
- tooltip
10
- created_at
11
- updated_at
12
- )
13
- end
14
- end
@@ -1,10 +0,0 @@
1
- module Recurly
2
- class CustomerPermission < Resource
3
- define_attribute_methods %w(
4
- id
5
- code
6
- name
7
- description
8
- )
9
- end
10
- end
@@ -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
@@ -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