recurly 3.0.0.beta.3 → 3.0.0.beta.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.ruby-version +1 -0
- data/.travis.yml +3 -1
- data/README.md +9 -2
- data/lib/recurly/client.rb +42 -13
- data/lib/recurly/client/adapter.rb +9 -18
- data/lib/recurly/client/operations.rb +1179 -78
- data/lib/recurly/errors/api_errors.rb +4 -0
- data/lib/recurly/errors/network_errors.rb +1 -1
- data/lib/recurly/pager.rb +5 -1
- data/lib/recurly/requests/account_acquisition_cost.rb +18 -0
- data/lib/recurly/requests/account_acquisition_updatable.rb +5 -1
- data/lib/recurly/requests/account_create.rb +23 -3
- data/lib/recurly/requests/account_update.rb +22 -2
- data/lib/recurly/requests/add_on_create.rb +7 -3
- data/lib/recurly/requests/add_on_pricing.rb +18 -0
- data/lib/recurly/requests/add_on_update.rb +7 -3
- data/lib/recurly/requests/address.rb +4 -0
- data/lib/recurly/requests/billing_info_create.rb +4 -0
- data/lib/recurly/requests/coupon_bulk_create.rb +4 -0
- data/lib/recurly/requests/coupon_create.rb +13 -9
- data/lib/recurly/requests/coupon_pricing.rb +18 -0
- data/lib/recurly/requests/coupon_redemption_create.rb +4 -0
- data/lib/recurly/requests/coupon_update.rb +4 -0
- data/lib/recurly/requests/external_refund.rb +22 -0
- data/lib/recurly/requests/invoice_address.rb +54 -0
- data/lib/recurly/requests/invoice_create.rb +6 -2
- data/lib/recurly/requests/invoice_refund.rb +7 -3
- data/lib/recurly/requests/invoice_updatable.rb +34 -0
- data/lib/recurly/requests/line_item_create.rb +6 -2
- data/lib/recurly/requests/line_item_refund.rb +4 -0
- data/lib/recurly/requests/plan_create.rb +11 -7
- data/lib/recurly/requests/plan_hosted_pages.rb +26 -0
- data/lib/recurly/requests/plan_pricing.rb +22 -0
- data/lib/recurly/requests/plan_update.rb +11 -7
- data/lib/recurly/requests/shipping_address_create.rb +4 -0
- data/lib/recurly/requests/shipping_address_update.rb +5 -1
- data/lib/recurly/requests/subscription_add_on_create.rb +8 -0
- data/lib/recurly/requests/subscription_change_create.rb +13 -5
- data/lib/recurly/requests/subscription_create.rb +11 -7
- data/lib/recurly/requests/subscription_pause.rb +4 -0
- data/lib/recurly/requests/subscription_update.rb +8 -4
- data/lib/recurly/resource.rb +6 -6
- data/lib/recurly/resources/account.rb +27 -11
- data/lib/recurly/resources/account_acquisition.rb +9 -5
- data/lib/recurly/resources/account_acquisition_cost.rb +18 -0
- data/lib/recurly/resources/account_balance.rb +7 -3
- data/lib/recurly/resources/account_balance_amount.rb +18 -0
- data/lib/recurly/resources/account_mini.rb +18 -2
- data/lib/recurly/resources/account_note.rb +7 -3
- data/lib/recurly/resources/add_on.rb +13 -9
- data/lib/recurly/resources/add_on_mini.rb +6 -2
- data/lib/recurly/resources/add_on_pricing.rb +18 -0
- data/lib/recurly/resources/address.rb +4 -0
- data/lib/recurly/resources/billing_info.rb +12 -8
- data/lib/recurly/resources/billing_info_payment_method.rb +34 -0
- data/lib/recurly/resources/billing_info_updated_by.rb +18 -0
- data/lib/recurly/resources/coupon.rb +21 -13
- data/lib/recurly/resources/coupon_discount.rb +7 -3
- 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 +8 -4
- data/lib/recurly/resources/coupon_redemption.rb +9 -5
- data/lib/recurly/resources/coupon_redemption_mini.rb +8 -4
- data/lib/recurly/resources/credit_payment.rb +8 -4
- data/lib/recurly/resources/custom_field.rb +4 -0
- data/lib/recurly/resources/custom_field_definition.rb +11 -7
- data/lib/recurly/resources/error.rb +6 -2
- data/lib/recurly/resources/error_may_have_transaction.rb +6 -2
- data/lib/recurly/resources/fraud_info.rb +22 -0
- data/lib/recurly/resources/invoice.rb +17 -13
- data/lib/recurly/resources/invoice_address.rb +54 -0
- data/lib/recurly/resources/invoice_collection.rb +5 -1
- data/lib/recurly/resources/invoice_mini.rb +6 -2
- data/lib/recurly/resources/line_item.rb +13 -5
- data/lib/recurly/resources/line_item_list.rb +5 -1
- data/lib/recurly/resources/plan.rb +16 -12
- data/lib/recurly/resources/plan_hosted_pages.rb +26 -0
- data/lib/recurly/resources/plan_mini.rb +6 -2
- data/lib/recurly/resources/plan_pricing.rb +22 -0
- data/lib/recurly/resources/settings.rb +7 -3
- data/lib/recurly/resources/shipping_address.rb +8 -4
- data/lib/recurly/resources/site.rb +16 -8
- data/lib/recurly/resources/subscription.rb +9 -5
- data/lib/recurly/resources/subscription_add_on.rb +4 -0
- data/lib/recurly/resources/subscription_change.rb +9 -5
- data/lib/recurly/resources/tax_info.rb +4 -0
- data/lib/recurly/resources/transaction.rb +16 -8
- data/lib/recurly/resources/transaction_payment_gateway.rb +26 -0
- data/lib/recurly/resources/transaction_payment_method.rb +34 -0
- data/lib/recurly/resources/unique_coupon_code.rb +10 -6
- data/lib/recurly/resources/user.rb +8 -4
- data/lib/recurly/schema/json_deserializer.rb +18 -20
- data/lib/recurly/schema/request_caster.rb +1 -1
- data/lib/recurly/schema/schema_validator.rb +31 -8
- data/lib/recurly/version.rb +1 -1
- data/recurly.gemspec +1 -1
- data/scripts/check-deps +28 -0
- data/scripts/install-deps +44 -0
- metadata +37 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: fa84948d98ac3695fb2639905b05c1ae0ff8ee70
|
4
|
+
data.tar.gz: 36229c9d3cd0e548e1b8845d98453e07b4fc07a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6794cb420246f6407362fa23c1e0c5621df35703fa210f97b4090e0226e56b2e68f8040a654a943909f802c89c7b37246de363bc297bbd8b0af6266de7cf7fe3
|
7
|
+
data.tar.gz: cc7fb401cd2ef58e1444137bb0e881e71afac83135ca18c1012aa8aef0c3f2c2016760382873f3384f1e8f268b61aa3e73313280e7e5248e132b9157ed2936ab
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.4.4
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -15,7 +15,7 @@ This contains everything in the README as well as code-level documentation. We s
|
|
15
15
|
This gem is a pre-release. In your Gemfile, add `recurly` as a dependency.
|
16
16
|
|
17
17
|
```ruby
|
18
|
-
gem 'recurly', '3.0.0.beta.
|
18
|
+
gem 'recurly', '3.0.0.beta.4'
|
19
19
|
```
|
20
20
|
|
21
21
|
It's important that you lock on a specific version as there may be breaking changes between releases.
|
@@ -48,7 +48,7 @@ Recurly::Client.new(subdomain: 'mysite-prod', api_key: API_KEY) do |client|
|
|
48
48
|
end
|
49
49
|
```
|
50
50
|
|
51
|
-
If you
|
51
|
+
If you plan on using the client for more than one site, you should initialize a new client for each site.
|
52
52
|
|
53
53
|
```ruby
|
54
54
|
# Give a `site_id`
|
@@ -112,6 +112,7 @@ The names, types, and descriptions of these arguments are listed in the rubydocs
|
|
112
112
|
|
113
113
|
```ruby
|
114
114
|
options = {
|
115
|
+
limit: 200, # number of items per page
|
115
116
|
state: :active, # only active plans
|
116
117
|
sort: :updated_at,
|
117
118
|
order: :asc,
|
@@ -125,6 +126,12 @@ plans.each do |plan|
|
|
125
126
|
end
|
126
127
|
```
|
127
128
|
|
129
|
+
**A note on `limit`**:
|
130
|
+
|
131
|
+
`limit` defaults to 20 items per page and can be set from 1 to 200. Choosing a lower limit means more network requests but smaller payloads.
|
132
|
+
We recommend keeping the default for most cases but increasing the limit if you are planning on iterating through many pages of items (e.g. all transactions in your site).
|
133
|
+
|
134
|
+
|
128
135
|
### Creating Resources
|
129
136
|
|
130
137
|
Currently, resources are created by passing in a `body` keyword argument in the form of a `Hash`.
|
data/lib/recurly/client.rb
CHANGED
@@ -65,7 +65,7 @@ module Recurly
|
|
65
65
|
|
66
66
|
def next_page(pager)
|
67
67
|
run_request(:get, pager.next, nil, headers).tap do |response|
|
68
|
-
raise_api_error!(response)
|
68
|
+
raise_api_error!(response) unless (200...300).include?(response.status)
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
@@ -77,7 +77,7 @@ module Recurly
|
|
77
77
|
|
78
78
|
def get(path, **options)
|
79
79
|
response = run_request(:get, path, nil, headers)
|
80
|
-
raise_api_error!(response)
|
80
|
+
raise_api_error!(response) unless (200...300).include?(response.status)
|
81
81
|
JSONParser.parse(self, response.body)
|
82
82
|
rescue Faraday::ClientError => ex
|
83
83
|
raise_network_error!(ex)
|
@@ -88,18 +88,22 @@ module Recurly
|
|
88
88
|
request.validate!
|
89
89
|
logger.info("POST BODY #{JSON.dump(request_data)}")
|
90
90
|
response = run_request(:post, path, JSON.dump(request.attributes), headers)
|
91
|
-
raise_api_error!(response)
|
91
|
+
raise_api_error!(response) unless (200...300).include?(response.status)
|
92
92
|
JSONParser.parse(self, response.body)
|
93
93
|
rescue Faraday::ClientError => ex
|
94
94
|
raise_network_error!(ex)
|
95
95
|
end
|
96
96
|
|
97
|
-
def put(path, request_data, request_class, **options)
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
97
|
+
def put(path, request_data=nil, request_class=nil, **options)
|
98
|
+
response = if request_data
|
99
|
+
request = request_class.new(request_data)
|
100
|
+
request.validate!
|
101
|
+
logger.info("PUT BODY #{JSON.dump(request_data)}")
|
102
|
+
run_request(:put, path, JSON.dump(request_data), headers)
|
103
|
+
else
|
104
|
+
run_request(:put, path, nil, headers)
|
105
|
+
end
|
106
|
+
raise_api_error!(response) unless (200...300).include?(response.status)
|
103
107
|
JSONParser.parse(self, response.body)
|
104
108
|
rescue Faraday::ClientError => ex
|
105
109
|
raise_network_error!(ex)
|
@@ -107,8 +111,10 @@ module Recurly
|
|
107
111
|
|
108
112
|
def delete(path, **options)
|
109
113
|
response = run_request(:delete, path, nil, headers)
|
110
|
-
raise_api_error!(response)
|
111
|
-
|
114
|
+
raise_api_error!(response) unless (200...300).include?(response.status)
|
115
|
+
if response.body && !response.body.empty?
|
116
|
+
JSONParser.parse(self, response.body)
|
117
|
+
end
|
112
118
|
rescue Faraday::ClientError => ex
|
113
119
|
raise_network_error!(ex)
|
114
120
|
end
|
@@ -152,6 +158,9 @@ module Recurly
|
|
152
158
|
@rate_limit = response.headers['x-ratelimit-limit'].to_i
|
153
159
|
@rate_limit_remaining = response.headers['x-ratelimit-remaining'].to_i
|
154
160
|
@rate_limit_reset = Time.at(response.headers['x-ratelimit-reset'].to_i).to_datetime
|
161
|
+
if !@_ignore_deprecation_warning && response.headers['Recurly-Deprecated']&.upcase == 'TRUE'
|
162
|
+
puts "[recurly-client-ruby] WARNING: Your current API version \"#{api_version}\" is deprecated and will be sunset on #{response.headers['Recurly-Sunset-Date']}"
|
163
|
+
end
|
155
164
|
response
|
156
165
|
end
|
157
166
|
|
@@ -164,6 +173,15 @@ module Recurly
|
|
164
173
|
end
|
165
174
|
|
166
175
|
def interpolate_path(path, **options)
|
176
|
+
options.each do |k, v|
|
177
|
+
unless [String, Symbol, Integer, Float].include?(v.class)
|
178
|
+
message = "We cannot build the url with the given argument #{k}=#{v.inspect}."
|
179
|
+
if k =~ /_id$/
|
180
|
+
message << " Since this appears to be an id, perhaps you meant to pass in a String?"
|
181
|
+
end
|
182
|
+
raise ArgumentError, message
|
183
|
+
end
|
184
|
+
end
|
167
185
|
path = path.gsub("{", "%{")
|
168
186
|
path % options
|
169
187
|
end
|
@@ -179,8 +197,19 @@ module Recurly
|
|
179
197
|
end
|
180
198
|
|
181
199
|
def set_faraday_connection(api_key)
|
182
|
-
|
183
|
-
|
200
|
+
options = {
|
201
|
+
url: BASE_URL,
|
202
|
+
request: { timeout: 60, open_timeout: 50 },
|
203
|
+
ssl: { verify: true }
|
204
|
+
}
|
205
|
+
# Let's not use the bundled cert in production yet
|
206
|
+
# but we will use these certs for any other staging or dev environment
|
207
|
+
unless BASE_URL.end_with?('.recurly.com')
|
208
|
+
options[:ssl][:ca_file] = File.join(File.dirname(__FILE__), '../data/ca-certificates.crt')
|
209
|
+
end
|
210
|
+
|
211
|
+
@conn = Faraday.new(options) do |faraday|
|
212
|
+
if [Logger::DEBUG, Logger::INFO].include?(@log_level)
|
184
213
|
faraday.response :logger
|
185
214
|
end
|
186
215
|
faraday.basic_auth(api_key, '')
|
@@ -5,14 +5,14 @@ module Recurly
|
|
5
5
|
module NetHttpPersistentAdapter
|
6
6
|
protected
|
7
7
|
def configure_net_adapter(faraday)
|
8
|
-
faraday.adapter :net_http_persistent do |http|
|
9
|
-
#
|
10
|
-
#
|
11
|
-
|
12
|
-
http.
|
8
|
+
faraday.adapter :net_http_persistent do |http|
|
9
|
+
# yields Net::HTTP::Persistent
|
10
|
+
# for net-http-persistent 2.X, alternative is for 3.X
|
11
|
+
if http.respond_to? :keep_alive_timeout
|
12
|
+
http.keep_alive_timeout = 60
|
13
|
+
else
|
14
|
+
http.keep_alive = 60
|
13
15
|
end
|
14
|
-
http.open_timeout = 50
|
15
|
-
http.read_timeout = 60
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
@@ -20,17 +20,8 @@ module Recurly
|
|
20
20
|
module NetHttpAdapter
|
21
21
|
protected
|
22
22
|
def configure_net_adapter(faraday)
|
23
|
-
faraday.adapter :net_http do |http|
|
24
|
-
#
|
25
|
-
# but we will use these certs for any other staging or dev environment
|
26
|
-
unless BASE_URL.end_with?('.recurly.com')
|
27
|
-
http.ca_file = File.join(File.dirname(__FILE__), '../data/ca-certificates.crt')
|
28
|
-
end
|
29
|
-
http.use_ssl = true
|
30
|
-
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
31
|
-
http.open_timeout = 50
|
32
|
-
http.read_timeout = 60
|
33
|
-
http.keep_alive_timeout = 60
|
23
|
+
faraday.adapter :net_http do |http|
|
24
|
+
# yields Net::HTTP
|
34
25
|
end
|
35
26
|
end
|
36
27
|
end
|
@@ -1,13 +1,19 @@
|
|
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.
|
1
5
|
module Recurly
|
2
6
|
class Client
|
3
7
|
def api_version
|
4
|
-
"v2018-
|
8
|
+
"v2018-08-09"
|
5
9
|
end
|
6
10
|
|
7
11
|
# List sites
|
8
12
|
#
|
9
|
-
#
|
10
|
-
#
|
13
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_sites list_sites api documenation}
|
14
|
+
#
|
15
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
16
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
11
17
|
#
|
12
18
|
# *Important notes:*
|
13
19
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -24,6 +30,12 @@ module Recurly
|
|
24
30
|
# prevent some records from being returned.
|
25
31
|
#
|
26
32
|
# @return [Pager<Resources::Site>] A list of sites.
|
33
|
+
# @example
|
34
|
+
# sites = @client.list_sites(limit: 200)
|
35
|
+
# sites.each do |site|
|
36
|
+
# puts "Site: #{site.subdomain}"
|
37
|
+
# end
|
38
|
+
#
|
27
39
|
def list_sites(**options)
|
28
40
|
path = "/sites"
|
29
41
|
pager(path, **options)
|
@@ -31,6 +43,8 @@ module Recurly
|
|
31
43
|
|
32
44
|
# Fetch a site
|
33
45
|
#
|
46
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_site get_site api documenation}
|
47
|
+
#
|
34
48
|
# @return [Resources::Site] A site.
|
35
49
|
def get_site()
|
36
50
|
path = interpolate_path("/sites/{site_id}", site_id: site_id)
|
@@ -39,8 +53,10 @@ module Recurly
|
|
39
53
|
|
40
54
|
# List a site's accounts
|
41
55
|
#
|
42
|
-
#
|
43
|
-
#
|
56
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_accounts list_accounts api documenation}
|
57
|
+
#
|
58
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
59
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
44
60
|
#
|
45
61
|
# *Important notes:*
|
46
62
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -67,6 +83,12 @@ module Recurly
|
|
67
83
|
#
|
68
84
|
# @param past_due [String] Filter for accounts with an invoice in the +past_due+ state.
|
69
85
|
# @return [Pager<Resources::Account>] A list of the site's accounts.
|
86
|
+
# @example
|
87
|
+
# accounts = @client.list_accounts(limit: 200)
|
88
|
+
# accounts.each do |account|
|
89
|
+
# puts "Account: #{account.code}"
|
90
|
+
# end
|
91
|
+
#
|
70
92
|
def list_accounts(**options)
|
71
93
|
path = interpolate_path("/sites/{site_id}/accounts", site_id: site_id)
|
72
94
|
pager(path, **options)
|
@@ -74,8 +96,46 @@ module Recurly
|
|
74
96
|
|
75
97
|
# Create an account
|
76
98
|
#
|
99
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/create_account create_account api documenation}
|
100
|
+
#
|
77
101
|
# @param body [Requests::AccountCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::AccountCreate}
|
78
102
|
# @return [Resources::Account] An account.
|
103
|
+
# @example
|
104
|
+
# begin
|
105
|
+
# account_create = {
|
106
|
+
# code: account_code,
|
107
|
+
# first_name: "Benjamin",
|
108
|
+
# last_name: "Du Monde",
|
109
|
+
# acquisition: {
|
110
|
+
# campaign: "podcast-marketing",
|
111
|
+
# channel: "social_media",
|
112
|
+
# subchannel: "twitter",
|
113
|
+
# cost: {
|
114
|
+
# currency: "USD",
|
115
|
+
# amount: 0.50
|
116
|
+
# }
|
117
|
+
# },
|
118
|
+
# shipping_addresses: [
|
119
|
+
# {
|
120
|
+
# nickname: "Home",
|
121
|
+
# street1: "1 Tchoupitoulas St",
|
122
|
+
# city: "New Orleans",
|
123
|
+
# region: "LA",
|
124
|
+
# country: "US",
|
125
|
+
# postal_code: "70115",
|
126
|
+
# first_name: "Benjamin",
|
127
|
+
# last_name: "Du Monde"
|
128
|
+
# }
|
129
|
+
# ]
|
130
|
+
# }
|
131
|
+
# account = @client.create_account(body: account_create)
|
132
|
+
# puts "Created Account #{account}"
|
133
|
+
# rescue Recurly::Errors::ValidationError => e
|
134
|
+
# # If the request was invalid, you may want to tell your user
|
135
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
136
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
137
|
+
# end
|
138
|
+
#
|
79
139
|
def create_account(body:)
|
80
140
|
path = interpolate_path("/sites/{site_id}/accounts", site_id: site_id)
|
81
141
|
post(path, body, Requests::AccountCreate)
|
@@ -83,19 +143,18 @@ module Recurly
|
|
83
143
|
|
84
144
|
# Fetch an account
|
85
145
|
#
|
146
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_account get_account api documenation}
|
147
|
+
#
|
86
148
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
87
149
|
# @return [Resources::Account] An account.
|
88
150
|
# @example
|
89
151
|
# begin
|
90
|
-
#
|
91
|
-
#
|
92
|
-
#
|
93
|
-
#
|
94
|
-
#
|
95
|
-
# puts
|
96
|
-
# # => Recurly::NotFoundError: Couldn't find Account with code = benjamin.dumonde@example.com
|
97
|
-
# puts e.recurly_error
|
98
|
-
# # => #<Recurly::Error:0x007f8b29918618 @attributes={:type=>"not_found", :message=>"Couldn't find Account with code = benjamin.dumonde@example.com", :params=>[{"param"=>"account_id"}]}>
|
152
|
+
# account = @client.get_account(account_id: account_id)
|
153
|
+
# puts "Got Account #{account}"
|
154
|
+
# rescue Recurly::Errors::NotFoundError
|
155
|
+
# # If the resource was not found, you may want to alert the user or
|
156
|
+
# # just return nil
|
157
|
+
# puts "Resource Not Found"
|
99
158
|
# end
|
100
159
|
#
|
101
160
|
def get_account(account_id:)
|
@@ -105,9 +164,28 @@ module Recurly
|
|
105
164
|
|
106
165
|
# Modify an account
|
107
166
|
#
|
167
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/update_account update_account api documenation}
|
168
|
+
#
|
108
169
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
109
170
|
# @param body [Requests::AccountUpdate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::AccountUpdate}
|
110
171
|
# @return [Resources::Account] An account.
|
172
|
+
# @example
|
173
|
+
# begin
|
174
|
+
# account_update = {
|
175
|
+
# first_name: "Aaron",
|
176
|
+
# last_name: "Du Monde",
|
177
|
+
# }
|
178
|
+
# account = @client.update_account(
|
179
|
+
# account_id: account_id,
|
180
|
+
# body: account_update
|
181
|
+
# )
|
182
|
+
# puts "Updated Account #{account}"
|
183
|
+
# rescue Recurly::Errors::ValidationError => e
|
184
|
+
# # If the request was invalid, you may want to tell your user
|
185
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
186
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
187
|
+
# end
|
188
|
+
#
|
111
189
|
def update_account(account_id:, body:)
|
112
190
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}", site_id: site_id, account_id: account_id)
|
113
191
|
put(path, body, Requests::AccountUpdate)
|
@@ -115,8 +193,20 @@ module Recurly
|
|
115
193
|
|
116
194
|
# Deactivate an account
|
117
195
|
#
|
196
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/deactivate_account deactivate_account api documenation}
|
197
|
+
#
|
118
198
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
119
199
|
# @return [Resources::Account] An account.
|
200
|
+
# @example
|
201
|
+
# begin
|
202
|
+
# account = @client.deactivate_account(account_id: account_id)
|
203
|
+
# puts "Deactivated Account #{account}"
|
204
|
+
# rescue Recurly::Errors::NotFoundError
|
205
|
+
# # If the resource was not found, you may want to alert the user or
|
206
|
+
# # just return nil
|
207
|
+
# puts "Resource Not Found"
|
208
|
+
# end
|
209
|
+
#
|
120
210
|
def deactivate_account(account_id:)
|
121
211
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}", site_id: site_id, account_id: account_id)
|
122
212
|
delete(path)
|
@@ -124,8 +214,20 @@ module Recurly
|
|
124
214
|
|
125
215
|
# Fetch an account's acquisition data
|
126
216
|
#
|
217
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_account_acquisition get_account_acquisition api documenation}
|
218
|
+
#
|
127
219
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
128
220
|
# @return [Resources::AccountAcquisition] An account's acquisition data.
|
221
|
+
# @example
|
222
|
+
# begin
|
223
|
+
# @client.get_account_acquisition(account_id: account_id)
|
224
|
+
# puts "Got AccountAcquisition"
|
225
|
+
# rescue Recurly::Errors::NotFoundError
|
226
|
+
# # If the resource was not found, you may want to alert the user or
|
227
|
+
# # just return nil
|
228
|
+
# puts "Resource Not Found"
|
229
|
+
# end
|
230
|
+
#
|
129
231
|
def get_account_acquisition(account_id:)
|
130
232
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/acquisition", site_id: site_id, account_id: account_id)
|
131
233
|
get(path)
|
@@ -133,6 +235,8 @@ module Recurly
|
|
133
235
|
|
134
236
|
# Update an account's acquisition data
|
135
237
|
#
|
238
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/update_account_acquisition update_account_acquisition api documenation}
|
239
|
+
#
|
136
240
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
137
241
|
# @param body [Requests::AccountAcquisitionUpdatable] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::AccountAcquisitionUpdatable}
|
138
242
|
# @return [Resources::AccountAcquisition] An account's updated acquisition data.
|
@@ -143,7 +247,19 @@ module Recurly
|
|
143
247
|
|
144
248
|
# Remove an account's acquisition data
|
145
249
|
#
|
250
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/remove_account_acquisition remove_account_acquisition api documenation}
|
251
|
+
#
|
146
252
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
253
|
+
# @example
|
254
|
+
# begin
|
255
|
+
# acquisition = @client.remove_account_acquisition(account_id: account_id)
|
256
|
+
# puts "Removed AccountAcqusition #{acquisition}"
|
257
|
+
# rescue Recurly::Errors::NotFoundError
|
258
|
+
# # If the resource was not found, you may want to alert the user or
|
259
|
+
# # just return nil
|
260
|
+
# puts "Resource Not Found"
|
261
|
+
# end
|
262
|
+
#
|
147
263
|
def remove_account_acquisition(account_id:)
|
148
264
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/acquisition", site_id: site_id, account_id: account_id)
|
149
265
|
delete(path)
|
@@ -151,8 +267,20 @@ module Recurly
|
|
151
267
|
|
152
268
|
# Reactivate an inactive account
|
153
269
|
#
|
270
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/reactivate_account reactivate_account api documenation}
|
271
|
+
#
|
154
272
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
155
273
|
# @return [Resources::Account] An account.
|
274
|
+
# @example
|
275
|
+
# begin
|
276
|
+
# account = @client.reactivate_account(account_id: account_id)
|
277
|
+
# puts "Reactivated account #{account}"
|
278
|
+
# rescue Recurly::Errors::NotFoundError
|
279
|
+
# # If the resource was not found, you may want to alert the user or
|
280
|
+
# # just return nil
|
281
|
+
# puts "Resource Not Found"
|
282
|
+
# end
|
283
|
+
#
|
156
284
|
def reactivate_account(account_id:)
|
157
285
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/reactivate", site_id: site_id, account_id: account_id)
|
158
286
|
put(path)
|
@@ -160,8 +288,20 @@ module Recurly
|
|
160
288
|
|
161
289
|
# Fetch an account's balance and past due status
|
162
290
|
#
|
291
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_account_balance get_account_balance api documenation}
|
292
|
+
#
|
163
293
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
164
294
|
# @return [Resources::AccountBalance] An account's balance.
|
295
|
+
# @example
|
296
|
+
# begin
|
297
|
+
# balance = @client.get_account_balance(account_id: account_id)
|
298
|
+
# puts "Got AccountBalance #{balance}"
|
299
|
+
# rescue Recurly::Errors::NotFoundError
|
300
|
+
# # If the resource was not found, you may want to alert the user or
|
301
|
+
# # just return nil
|
302
|
+
# puts "Resource Not Found"
|
303
|
+
# end
|
304
|
+
#
|
165
305
|
def get_account_balance(account_id:)
|
166
306
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/balance", site_id: site_id, account_id: account_id)
|
167
307
|
get(path)
|
@@ -169,8 +309,20 @@ module Recurly
|
|
169
309
|
|
170
310
|
# Fetch an account's billing information
|
171
311
|
#
|
312
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_billing_info get_billing_info api documenation}
|
313
|
+
#
|
172
314
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
173
315
|
# @return [Resources::BillingInfo] An account's billing information.
|
316
|
+
# @example
|
317
|
+
# begin
|
318
|
+
# billing = @client.get_billing_info(account_id: account_id)
|
319
|
+
# puts "Got BillingInfo #{billing}"
|
320
|
+
# rescue Recurly::Errors::NotFoundError
|
321
|
+
# # If the resource was not found, you may want to alert the user or
|
322
|
+
# # just return nil
|
323
|
+
# puts "Resource Not Found"
|
324
|
+
# end
|
325
|
+
#
|
174
326
|
def get_billing_info(account_id:)
|
175
327
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/billing_info", site_id: site_id, account_id: account_id)
|
176
328
|
get(path)
|
@@ -178,9 +330,28 @@ module Recurly
|
|
178
330
|
|
179
331
|
# Set an account's billing information
|
180
332
|
#
|
333
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/update_billing_info update_billing_info api documenation}
|
334
|
+
#
|
181
335
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
182
336
|
# @param body [Requests::BillingInfoCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::BillingInfoCreate}
|
183
337
|
# @return [Resources::BillingInfo] Updated billing information.
|
338
|
+
# @example
|
339
|
+
# begin
|
340
|
+
# billing_update = {
|
341
|
+
# first_name: "Aaron",
|
342
|
+
# last_name: "Du Monde",
|
343
|
+
# }
|
344
|
+
# billing = @client.update_billing_info(
|
345
|
+
# account_id: account_id,
|
346
|
+
# body: billing_update
|
347
|
+
# )
|
348
|
+
# puts "Updated BillingInfo #{billing}"
|
349
|
+
# rescue Recurly::Errors::ValidationError => e
|
350
|
+
# # If the request was invalid, you may want to tell your user
|
351
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
352
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
353
|
+
# end
|
354
|
+
#
|
184
355
|
def update_billing_info(account_id:, body:)
|
185
356
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/billing_info", site_id: site_id, account_id: account_id)
|
186
357
|
put(path, body, Requests::BillingInfoCreate)
|
@@ -188,7 +359,19 @@ module Recurly
|
|
188
359
|
|
189
360
|
# Remove an account's billing information
|
190
361
|
#
|
362
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/remove_billing_info remove_billing_info api documenation}
|
363
|
+
#
|
191
364
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
365
|
+
# @example
|
366
|
+
# begin
|
367
|
+
# @client.remove_billing_info(account_id: account_id)
|
368
|
+
# puts "Removed BillingInfo #{account_id}"
|
369
|
+
# rescue Recurly::Errors::NotFoundError
|
370
|
+
# # If the resource was not found, you may want to alert the user or
|
371
|
+
# # just return nil
|
372
|
+
# puts "Resource Not Found"
|
373
|
+
# end
|
374
|
+
#
|
192
375
|
def remove_billing_info(account_id:)
|
193
376
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/billing_info", site_id: site_id, account_id: account_id)
|
194
377
|
delete(path)
|
@@ -196,9 +379,11 @@ module Recurly
|
|
196
379
|
|
197
380
|
# Show the coupon redemptions for an account
|
198
381
|
#
|
382
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_account_coupon_redemptions list_account_coupon_redemptions api documenation}
|
383
|
+
#
|
199
384
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
200
|
-
# @param ids [
|
201
|
-
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
|
385
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
386
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
202
387
|
#
|
203
388
|
# *Important notes:*
|
204
389
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -208,7 +393,26 @@ module Recurly
|
|
208
393
|
# * Records are returned in an arbitrary order. Since results are all
|
209
394
|
# returned at once you can sort the records yourself.
|
210
395
|
#
|
396
|
+
# @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
|
397
|
+
# order. In descending order updated records will move behind the cursor and could
|
398
|
+
# prevent some records from being returned.
|
399
|
+
#
|
400
|
+
# @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
|
401
|
+
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
402
|
+
#
|
403
|
+
# @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
|
404
|
+
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
405
|
+
#
|
211
406
|
# @return [Pager<Resources::CouponRedemption>] A list of the the coupon redemptions on an account.
|
407
|
+
# @example
|
408
|
+
# redemptions = @client.list_account_coupon_redemptions(
|
409
|
+
# account_id: account_id,
|
410
|
+
# limit: 200
|
411
|
+
# )
|
412
|
+
# redemptions.each do |redemption|
|
413
|
+
# puts "CouponRedemption: #{redemption.id}"
|
414
|
+
# end
|
415
|
+
#
|
212
416
|
def list_account_coupon_redemptions(account_id:, **options)
|
213
417
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/coupon_redemptions", site_id: site_id, account_id: account_id)
|
214
418
|
pager(path, **options)
|
@@ -216,8 +420,20 @@ module Recurly
|
|
216
420
|
|
217
421
|
# Show the coupon redemption that is active on an account
|
218
422
|
#
|
423
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_active_coupon_redemption get_active_coupon_redemption api documenation}
|
424
|
+
#
|
219
425
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
220
426
|
# @return [Resources::CouponRedemption] An active coupon redemption on an account.
|
427
|
+
# @example
|
428
|
+
# begin
|
429
|
+
# redemption = @client.get_active_coupon_redemption(account_id: account_id)
|
430
|
+
# puts "Got CouponRedemption #{redemption}"
|
431
|
+
# rescue Recurly::Errors::NotFoundError
|
432
|
+
# # If the resource was not found, you may want to alert the user or
|
433
|
+
# # just return nil
|
434
|
+
# puts "Resource Not Found"
|
435
|
+
# end
|
436
|
+
#
|
221
437
|
def get_active_coupon_redemption(account_id:)
|
222
438
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/coupon_redemptions/active", site_id: site_id, account_id: account_id)
|
223
439
|
get(path)
|
@@ -225,9 +441,28 @@ module Recurly
|
|
225
441
|
|
226
442
|
# Generate an active coupon redemption on an account
|
227
443
|
#
|
444
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/create_coupon_redemption create_coupon_redemption api documenation}
|
445
|
+
#
|
228
446
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
229
447
|
# @param body [Requests::CouponRedemptionCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::CouponRedemptionCreate}
|
230
448
|
# @return [Resources::CouponRedemption] Returns the new coupon redemption.
|
449
|
+
# @example
|
450
|
+
# begin
|
451
|
+
# redemption_create = {
|
452
|
+
# currency: 'USD',
|
453
|
+
# coupon_id: coupon_id
|
454
|
+
# }
|
455
|
+
# redemption = @client.create_coupon_redemption(
|
456
|
+
# account_id: account_id,
|
457
|
+
# body: redemption_create
|
458
|
+
# )
|
459
|
+
# puts "Created CouponRedemption #{redemption}"
|
460
|
+
# rescue Recurly::Errors::ValidationError => e
|
461
|
+
# # If the request was invalid, you may want to tell your user
|
462
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
463
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
464
|
+
# end
|
465
|
+
#
|
231
466
|
def create_coupon_redemption(account_id:, body:)
|
232
467
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/coupon_redemptions/active", site_id: site_id, account_id: account_id)
|
233
468
|
post(path, body, Requests::CouponRedemptionCreate)
|
@@ -235,8 +470,20 @@ module Recurly
|
|
235
470
|
|
236
471
|
# Delete the active coupon redemption from an account
|
237
472
|
#
|
473
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/remove_coupon_redemption remove_coupon_redemption api documenation}
|
474
|
+
#
|
238
475
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
239
476
|
# @return [Resources::CouponRedemption] Coupon redemption deleted.
|
477
|
+
# @example
|
478
|
+
# begin
|
479
|
+
# @client.remove_coupon_redemption(account_id: account_id)
|
480
|
+
# puts "Removed CouponRedemption #{account_id}"
|
481
|
+
# rescue Recurly::Errors::NotFoundError
|
482
|
+
# # If the resource was not found, you may want to alert the user or
|
483
|
+
# # just return nil
|
484
|
+
# puts "Resource Not Found"
|
485
|
+
# end
|
486
|
+
#
|
240
487
|
def remove_coupon_redemption(account_id:)
|
241
488
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/coupon_redemptions/active", site_id: site_id, account_id: account_id)
|
242
489
|
delete(path)
|
@@ -244,6 +491,8 @@ module Recurly
|
|
244
491
|
|
245
492
|
# List an account's credit payments
|
246
493
|
#
|
494
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_account_credit_payments list_account_credit_payments api documenation}
|
495
|
+
#
|
247
496
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
248
497
|
# @param limit [Integer] Limit number of records 1-200.
|
249
498
|
# @param order [String] Sort order.
|
@@ -258,6 +507,15 @@ module Recurly
|
|
258
507
|
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
259
508
|
#
|
260
509
|
# @return [Pager<Resources::CreditPayment>] A list of the account's credit payments.
|
510
|
+
# @example
|
511
|
+
# payments = @client.list_account_credit_payments(
|
512
|
+
# account_id: account_id,
|
513
|
+
# limit: 200
|
514
|
+
# )
|
515
|
+
# payments.each do |payment|
|
516
|
+
# puts "CreditPayment: #{payment.id}"
|
517
|
+
# end
|
518
|
+
#
|
261
519
|
def list_account_credit_payments(account_id:, **options)
|
262
520
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/credit_payments", site_id: site_id, account_id: account_id)
|
263
521
|
pager(path, **options)
|
@@ -265,9 +523,11 @@ module Recurly
|
|
265
523
|
|
266
524
|
# List an account's invoices
|
267
525
|
#
|
526
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_account_invoices list_account_invoices api documenation}
|
527
|
+
#
|
268
528
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
269
|
-
# @param ids [
|
270
|
-
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
|
529
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
530
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
271
531
|
#
|
272
532
|
# *Important notes:*
|
273
533
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -296,6 +556,15 @@ module Recurly
|
|
296
556
|
# - +type=legacy+, only legacy invoices will be returned.
|
297
557
|
#
|
298
558
|
# @return [Pager<Resources::Invoice>] A list of the account's invoices.
|
559
|
+
# @example
|
560
|
+
# invoices = @client.list_account_invoices(
|
561
|
+
# account_id: account_id,
|
562
|
+
# limit: 200
|
563
|
+
# )
|
564
|
+
# invoices.each do |invoice|
|
565
|
+
# puts "Invoice: #{invoice.number}"
|
566
|
+
# end
|
567
|
+
#
|
299
568
|
def list_account_invoices(account_id:, **options)
|
300
569
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/invoices", site_id: site_id, account_id: account_id)
|
301
570
|
pager(path, **options)
|
@@ -303,9 +572,28 @@ module Recurly
|
|
303
572
|
|
304
573
|
# Create an invoice for pending line items
|
305
574
|
#
|
575
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/create_invoice create_invoice api documenation}
|
576
|
+
#
|
306
577
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
307
578
|
# @param body [Requests::InvoiceCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::InvoiceCreate}
|
308
579
|
# @return [Resources::InvoiceCollection] Returns the new invoices.
|
580
|
+
# @example
|
581
|
+
# begin
|
582
|
+
# invoice_create = {
|
583
|
+
# currency: 'USD',
|
584
|
+
# collection_method: 'automatic'
|
585
|
+
# }
|
586
|
+
# collection = @client.create_invoice(
|
587
|
+
# account_id: account_id,
|
588
|
+
# body: invoice_create
|
589
|
+
# )
|
590
|
+
# puts "Created InvoiceCollection #{collection}"
|
591
|
+
# rescue Recurly::Errors::ValidationError => e
|
592
|
+
# # If the request was invalid, you may want to tell your user
|
593
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
594
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
595
|
+
# end
|
596
|
+
#
|
309
597
|
def create_invoice(account_id:, body:)
|
310
598
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/invoices", site_id: site_id, account_id: account_id)
|
311
599
|
post(path, body, Requests::InvoiceCreate)
|
@@ -313,9 +601,28 @@ module Recurly
|
|
313
601
|
|
314
602
|
# Preview new invoice for pending line items
|
315
603
|
#
|
604
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/preview_invoice preview_invoice api documenation}
|
605
|
+
#
|
316
606
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
317
607
|
# @param body [Requests::InvoiceCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::InvoiceCreate}
|
318
608
|
# @return [Resources::InvoiceCollection] Returns the invoice previews.
|
609
|
+
# @example
|
610
|
+
# begin
|
611
|
+
# invoice_preview = {
|
612
|
+
# currency: "USD",
|
613
|
+
# collection_method: "automatic"
|
614
|
+
# }
|
615
|
+
# collection = @client.create_invoice(
|
616
|
+
# account_id: account_id,
|
617
|
+
# body: invoice_preview
|
618
|
+
# )
|
619
|
+
# puts "Created InvoiceCollection #{collection}"
|
620
|
+
# rescue Recurly::Errors::ValidationError => e
|
621
|
+
# # If the request was invalid, you may want to tell your user
|
622
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
623
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
624
|
+
# end
|
625
|
+
#
|
319
626
|
def preview_invoice(account_id:, body:)
|
320
627
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/invoices/preview", site_id: site_id, account_id: account_id)
|
321
628
|
post(path, body, Requests::InvoiceCreate)
|
@@ -323,9 +630,11 @@ module Recurly
|
|
323
630
|
|
324
631
|
# List an account's line items
|
325
632
|
#
|
633
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_account_line_items list_account_line_items api documenation}
|
634
|
+
#
|
326
635
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
327
|
-
# @param ids [
|
328
|
-
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
|
636
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
637
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
329
638
|
#
|
330
639
|
# *Important notes:*
|
331
640
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -351,6 +660,15 @@ module Recurly
|
|
351
660
|
# @param state [String] Filter by state field.
|
352
661
|
# @param type [String] Filter by type field.
|
353
662
|
# @return [Pager<Resources::LineItem>] A list of the account's line items.
|
663
|
+
# @example
|
664
|
+
# line_items = @client.list_account_line_items(
|
665
|
+
# account_id: account_id,
|
666
|
+
# limit: 200
|
667
|
+
# )
|
668
|
+
# line_items.each do |line_item|
|
669
|
+
# puts "LineItem: #{line_item.id}"
|
670
|
+
# end
|
671
|
+
#
|
354
672
|
def list_account_line_items(account_id:, **options)
|
355
673
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/line_items", site_id: site_id, account_id: account_id)
|
356
674
|
pager(path, **options)
|
@@ -358,9 +676,29 @@ module Recurly
|
|
358
676
|
|
359
677
|
# Create a new line item for the account
|
360
678
|
#
|
679
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/create_line_item create_line_item api documenation}
|
680
|
+
#
|
361
681
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
362
682
|
# @param body [Requests::LineItemCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::LineItemCreate}
|
363
683
|
# @return [Resources::LineItem] Returns the new line item.
|
684
|
+
# @example
|
685
|
+
# begin
|
686
|
+
# line_item_create = {
|
687
|
+
# currency: 'USD',
|
688
|
+
# unit_amount: 1_000,
|
689
|
+
# type: :charge
|
690
|
+
# }
|
691
|
+
# line_item = @client.create_line_item(
|
692
|
+
# account_id: account_id,
|
693
|
+
# body: line_item_create
|
694
|
+
# )
|
695
|
+
# puts "Created LineItem #{line_item}"
|
696
|
+
# rescue Recurly::Errors::ValidationError => e
|
697
|
+
# # If the request was invalid, you may want to tell your user
|
698
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
699
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
700
|
+
# end
|
701
|
+
#
|
364
702
|
def create_line_item(account_id:, body:)
|
365
703
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/line_items", site_id: site_id, account_id: account_id)
|
366
704
|
post(path, body, Requests::LineItemCreate)
|
@@ -368,9 +706,11 @@ module Recurly
|
|
368
706
|
|
369
707
|
# Fetch a list of an account's notes
|
370
708
|
#
|
709
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_account_notes list_account_notes api documenation}
|
710
|
+
#
|
371
711
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
372
|
-
# @param ids [
|
373
|
-
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
|
712
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
713
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
374
714
|
#
|
375
715
|
# *Important notes:*
|
376
716
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -381,6 +721,12 @@ module Recurly
|
|
381
721
|
# returned at once you can sort the records yourself.
|
382
722
|
#
|
383
723
|
# @return [Pager<Resources::AccountNote>] A list of an account's notes.
|
724
|
+
# @example
|
725
|
+
# account_notes = @client.list_account_notes(account_id: account_id, limit: 200)
|
726
|
+
# account_notes.each do |note|
|
727
|
+
# puts "AccountNote: #{note.message}"
|
728
|
+
# end
|
729
|
+
#
|
384
730
|
def list_account_notes(account_id:, **options)
|
385
731
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/notes", site_id: site_id, account_id: account_id)
|
386
732
|
pager(path, **options)
|
@@ -388,9 +734,24 @@ module Recurly
|
|
388
734
|
|
389
735
|
# Fetch an account note
|
390
736
|
#
|
737
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_account_note get_account_note api documenation}
|
738
|
+
#
|
391
739
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
392
740
|
# @param account_note_id [String] Account Note ID.
|
393
741
|
# @return [Resources::AccountNote] An account note.
|
742
|
+
# @example
|
743
|
+
# begin
|
744
|
+
# note = @client.get_account_note(
|
745
|
+
# account_id: account_id,
|
746
|
+
# account_note_id: note_id
|
747
|
+
# )
|
748
|
+
# puts "Got AccountNote #{note}"
|
749
|
+
# rescue Recurly::Errors::NotFoundError
|
750
|
+
# # If the resource was not found, you may want to alert the user or
|
751
|
+
# # just return nil
|
752
|
+
# puts "Resource Not Found"
|
753
|
+
# end
|
754
|
+
#
|
394
755
|
def get_account_note(account_id:, account_note_id:)
|
395
756
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/notes/{account_note_id}", site_id: site_id, account_id: account_id, account_note_id: account_note_id)
|
396
757
|
get(path)
|
@@ -398,9 +759,11 @@ module Recurly
|
|
398
759
|
|
399
760
|
# Fetch a list of an account's shipping addresses
|
400
761
|
#
|
762
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_shipping_addresses list_shipping_addresses api documenation}
|
763
|
+
#
|
401
764
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
402
|
-
# @param ids [
|
403
|
-
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
|
765
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
766
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
404
767
|
#
|
405
768
|
# *Important notes:*
|
406
769
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -423,6 +786,15 @@ module Recurly
|
|
423
786
|
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
424
787
|
#
|
425
788
|
# @return [Pager<Resources::ShippingAddress>] A list of an account's shipping addresses.
|
789
|
+
# @example
|
790
|
+
# shipping_addresses = @client.list_shipping_addresses(
|
791
|
+
# account_id: account_id,
|
792
|
+
# limit: 200
|
793
|
+
# )
|
794
|
+
# shipping_addresses.each do |addr|
|
795
|
+
# puts "ShippingAddress: #{addr.nickname} - #{addr.street1}"
|
796
|
+
# end
|
797
|
+
#
|
426
798
|
def list_shipping_addresses(account_id:, **options)
|
427
799
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/shipping_addresses", site_id: site_id, account_id: account_id)
|
428
800
|
pager(path, **options)
|
@@ -430,6 +802,8 @@ module Recurly
|
|
430
802
|
|
431
803
|
# Create a new shipping address for the account
|
432
804
|
#
|
805
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/create_shipping_address create_shipping_address api documenation}
|
806
|
+
#
|
433
807
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
434
808
|
# @param body [Requests::ShippingAddressCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::ShippingAddressCreate}
|
435
809
|
# @return [Resources::ShippingAddress] Returns the new shipping address.
|
@@ -440,9 +814,24 @@ module Recurly
|
|
440
814
|
|
441
815
|
# Fetch an account's shipping address
|
442
816
|
#
|
817
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_shipping_address get_shipping_address api documenation}
|
818
|
+
#
|
443
819
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
444
820
|
# @param shipping_address_id [String] Shipping Address ID.
|
445
821
|
# @return [Resources::ShippingAddress] A shipping address.
|
822
|
+
# @example
|
823
|
+
# begin
|
824
|
+
# address = @client.get_shipping_address(
|
825
|
+
# account_id: account_id,
|
826
|
+
# shipping_address_id: shipping_address_id
|
827
|
+
# )
|
828
|
+
# puts "Got ShippingAddress #{address}"
|
829
|
+
# rescue Recurly::Errors::NotFoundError
|
830
|
+
# # If the resource was not found, you may want to alert the user or
|
831
|
+
# # just return nil
|
832
|
+
# puts "Resource Not Found"
|
833
|
+
# end
|
834
|
+
#
|
446
835
|
def get_shipping_address(account_id:, shipping_address_id:)
|
447
836
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/shipping_addresses/{shipping_address_id}", site_id: site_id, account_id: account_id, shipping_address_id: shipping_address_id)
|
448
837
|
get(path)
|
@@ -450,10 +839,31 @@ module Recurly
|
|
450
839
|
|
451
840
|
# Update an account's shipping address
|
452
841
|
#
|
842
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/update_shipping_address update_shipping_address api documenation}
|
843
|
+
#
|
453
844
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
454
845
|
# @param shipping_address_id [String] Shipping Address ID.
|
455
846
|
# @param body [Requests::ShippingAddressUpdate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::ShippingAddressUpdate}
|
456
847
|
# @return [Resources::ShippingAddress] The updated shipping address.
|
848
|
+
# @example
|
849
|
+
# begin
|
850
|
+
# address_update = {
|
851
|
+
# first_name: "Aaron",
|
852
|
+
# last_name: "Du Monde",
|
853
|
+
# postal_code: "70130"
|
854
|
+
# }
|
855
|
+
# address = @client.update_shipping_address(
|
856
|
+
# account_id: account_id,
|
857
|
+
# shipping_address_id: shipping_address_id,
|
858
|
+
# body: address_update
|
859
|
+
# )
|
860
|
+
# puts "Updated ShippingAddress #{address}"
|
861
|
+
# rescue Recurly::Errors::ValidationError => e
|
862
|
+
# # If the request was invalid, you may want to tell your user
|
863
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
864
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
865
|
+
# end
|
866
|
+
#
|
457
867
|
def update_shipping_address(account_id:, shipping_address_id:, body:)
|
458
868
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/shipping_addresses/{shipping_address_id}", site_id: site_id, account_id: account_id, shipping_address_id: shipping_address_id)
|
459
869
|
put(path, body, Requests::ShippingAddressUpdate)
|
@@ -461,8 +871,23 @@ module Recurly
|
|
461
871
|
|
462
872
|
# Remove an account's shipping address
|
463
873
|
#
|
874
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/remove_shipping_address remove_shipping_address api documenation}
|
875
|
+
#
|
464
876
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
465
877
|
# @param shipping_address_id [String] Shipping Address ID.
|
878
|
+
# @example
|
879
|
+
# begin
|
880
|
+
# @client.remove_shipping_address(
|
881
|
+
# account_id: account_id,
|
882
|
+
# shipping_address_id: shipping_address_id
|
883
|
+
# )
|
884
|
+
# puts "Removed ShippingAddress #{shipping_address_id}"
|
885
|
+
# rescue Recurly::Errors::NotFoundError
|
886
|
+
# # If the resource was not found, you may want to alert the user or
|
887
|
+
# # just return nil
|
888
|
+
# puts "Resource Not Found"
|
889
|
+
# end
|
890
|
+
#
|
466
891
|
def remove_shipping_address(account_id:, shipping_address_id:)
|
467
892
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/shipping_addresses/{shipping_address_id}", site_id: site_id, account_id: account_id, shipping_address_id: shipping_address_id)
|
468
893
|
delete(path)
|
@@ -470,9 +895,11 @@ module Recurly
|
|
470
895
|
|
471
896
|
# List an account's subscriptions
|
472
897
|
#
|
898
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_account_subscriptions list_account_subscriptions api documenation}
|
899
|
+
#
|
473
900
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
474
|
-
# @param ids [
|
475
|
-
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
|
901
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
902
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
476
903
|
#
|
477
904
|
# *Important notes:*
|
478
905
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -500,6 +927,15 @@ module Recurly
|
|
500
927
|
# - When +state=live+, only subscriptions that are in an active, canceled, or future state or are in trial will be returned.
|
501
928
|
#
|
502
929
|
# @return [Pager<Resources::Subscription>] A list of the account's subscriptions.
|
930
|
+
# @example
|
931
|
+
# subscriptions = @client.list_account_subscriptions(
|
932
|
+
# account_id: account_id,
|
933
|
+
# limit: 200
|
934
|
+
# )
|
935
|
+
# subscriptions.each do |subscription|
|
936
|
+
# puts "Subscription: #{subscription.uuid}"
|
937
|
+
# end
|
938
|
+
#
|
503
939
|
def list_account_subscriptions(account_id:, **options)
|
504
940
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/subscriptions", site_id: site_id, account_id: account_id)
|
505
941
|
pager(path, **options)
|
@@ -507,9 +943,11 @@ module Recurly
|
|
507
943
|
|
508
944
|
# List an account's transactions
|
509
945
|
#
|
946
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_account_transactions list_account_transactions api documenation}
|
947
|
+
#
|
510
948
|
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
511
|
-
# @param ids [
|
512
|
-
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
|
949
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
950
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
513
951
|
#
|
514
952
|
# *Important notes:*
|
515
953
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -531,18 +969,76 @@ module Recurly
|
|
531
969
|
# @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
|
532
970
|
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
533
971
|
#
|
534
|
-
# @param type [String] Filter by type field.
|
972
|
+
# @param type [String] Filter by type field. The value +payment+ will return both +purchase+ and +capture+ transactions.
|
535
973
|
# @param success [String] Filter by success field.
|
536
974
|
# @return [Pager<Resources::Transaction>] A list of the account's transactions.
|
975
|
+
# @example
|
976
|
+
# transactions = @client.list_account_transactions(
|
977
|
+
# account_id: account_id,
|
978
|
+
# limit: 200
|
979
|
+
# )
|
980
|
+
# transactions.each do |transaction|
|
981
|
+
# puts "Transaction: #{transaction.uuid}"
|
982
|
+
# end
|
983
|
+
#
|
537
984
|
def list_account_transactions(account_id:, **options)
|
538
985
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/transactions", site_id: site_id, account_id: account_id)
|
539
986
|
pager(path, **options)
|
540
987
|
end
|
541
988
|
|
989
|
+
# List an account's child accounts
|
990
|
+
#
|
991
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_child_accounts list_child_accounts api documenation}
|
992
|
+
#
|
993
|
+
# @param account_id [String] Account ID or code (use prefix: +code-+, e.g. +code-bob+).
|
994
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
995
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
996
|
+
#
|
997
|
+
# *Important notes:*
|
998
|
+
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
999
|
+
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
1000
|
+
# * Invalid or unknown IDs will be ignored, so you should check that the
|
1001
|
+
# results correspond to your request.
|
1002
|
+
# * Records are returned in an arbitrary order. Since results are all
|
1003
|
+
# returned at once you can sort the records yourself.
|
1004
|
+
#
|
1005
|
+
# @param limit [Integer] Limit number of records 1-200.
|
1006
|
+
# @param order [String] Sort order.
|
1007
|
+
# @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
|
1008
|
+
# order. In descending order updated records will move behind the cursor and could
|
1009
|
+
# prevent some records from being returned.
|
1010
|
+
#
|
1011
|
+
# @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
|
1012
|
+
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
1013
|
+
#
|
1014
|
+
# @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
|
1015
|
+
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
1016
|
+
#
|
1017
|
+
# @param subscriber [String] Filter accounts accounts with or without a subscription in the +active+,
|
1018
|
+
# +canceled+, or +future+ state.
|
1019
|
+
#
|
1020
|
+
# @param past_due [String] Filter for accounts with an invoice in the +past_due+ state.
|
1021
|
+
# @return [Pager<Resources::Account>] A list of an account's child accounts.
|
1022
|
+
# @example
|
1023
|
+
# # child_accounts = @client.list_child_accounts(
|
1024
|
+
# # account_id: account_id,
|
1025
|
+
# # limit: 200
|
1026
|
+
# # )
|
1027
|
+
# # child_accounts.each do |child|
|
1028
|
+
# # puts "Account: #{child.code}"
|
1029
|
+
# # end
|
1030
|
+
#
|
1031
|
+
def list_child_accounts(account_id:, **options)
|
1032
|
+
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/accounts", site_id: site_id, account_id: account_id)
|
1033
|
+
pager(path, **options)
|
1034
|
+
end
|
1035
|
+
|
542
1036
|
# List a site's account acquisition data
|
543
1037
|
#
|
544
|
-
#
|
545
|
-
#
|
1038
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_account_acquisition list_account_acquisition api documenation}
|
1039
|
+
#
|
1040
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
1041
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
546
1042
|
#
|
547
1043
|
# *Important notes:*
|
548
1044
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -564,16 +1060,24 @@ module Recurly
|
|
564
1060
|
# @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
|
565
1061
|
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
566
1062
|
#
|
567
|
-
# @return [Resources::AccountAcquisition] A list of the site's account acquisition data.
|
1063
|
+
# @return [Pager<Resources::AccountAcquisition>] A list of the site's account acquisition data.
|
1064
|
+
# @example
|
1065
|
+
# acquisitions = @client.list_account_acquisition(limit: 200)
|
1066
|
+
# acquisitions.each do |acquisition|
|
1067
|
+
# puts "AccountAcquisition: #{acquisition.cost}"
|
1068
|
+
# end
|
1069
|
+
#
|
568
1070
|
def list_account_acquisition(**options)
|
569
1071
|
path = interpolate_path("/sites/{site_id}/acquisitions", site_id: site_id)
|
570
|
-
|
1072
|
+
pager(path, **options)
|
571
1073
|
end
|
572
1074
|
|
573
1075
|
# List a site's coupons
|
574
1076
|
#
|
575
|
-
#
|
576
|
-
#
|
1077
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_coupons list_coupons api documenation}
|
1078
|
+
#
|
1079
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
1080
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
577
1081
|
#
|
578
1082
|
# *Important notes:*
|
579
1083
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -596,6 +1100,12 @@ module Recurly
|
|
596
1100
|
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
597
1101
|
#
|
598
1102
|
# @return [Pager<Resources::Coupon>] A list of the site's coupons.
|
1103
|
+
# @example
|
1104
|
+
# coupons = @client.list_coupons(limit: 200)
|
1105
|
+
# coupons.each do |coupon|
|
1106
|
+
# puts "coupon: #{coupon.code}"
|
1107
|
+
# end
|
1108
|
+
#
|
599
1109
|
def list_coupons(**options)
|
600
1110
|
path = interpolate_path("/sites/{site_id}/coupons", site_id: site_id)
|
601
1111
|
pager(path, **options)
|
@@ -603,8 +1113,33 @@ module Recurly
|
|
603
1113
|
|
604
1114
|
# Create a new coupon
|
605
1115
|
#
|
1116
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/create_coupon create_coupon api documenation}
|
1117
|
+
#
|
606
1118
|
# @param body [Requests::CouponCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::CouponCreate}
|
607
1119
|
# @return [Resources::Coupon] A new coupon.
|
1120
|
+
# @example
|
1121
|
+
# begin
|
1122
|
+
# coupon_create = {
|
1123
|
+
# name: "Promotional Coupon",
|
1124
|
+
# code: coupon_code,
|
1125
|
+
# discount_type: 'fixed',
|
1126
|
+
# currencies: [
|
1127
|
+
# {
|
1128
|
+
# currency: 'USD',
|
1129
|
+
# discount: 10_000
|
1130
|
+
# }
|
1131
|
+
# ]
|
1132
|
+
# }
|
1133
|
+
# coupon = @client.create_coupon(
|
1134
|
+
# body: coupon_create
|
1135
|
+
# )
|
1136
|
+
# puts "Created Coupon #{coupon}"
|
1137
|
+
# rescue Recurly::Errors::ValidationError => e
|
1138
|
+
# # If the request was invalid, you may want to tell your user
|
1139
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
1140
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
1141
|
+
# end
|
1142
|
+
#
|
608
1143
|
def create_coupon(body:)
|
609
1144
|
path = interpolate_path("/sites/{site_id}/coupons", site_id: site_id)
|
610
1145
|
post(path, body, Requests::CouponCreate)
|
@@ -612,8 +1147,20 @@ module Recurly
|
|
612
1147
|
|
613
1148
|
# Fetch a coupon
|
614
1149
|
#
|
1150
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_coupon get_coupon api documenation}
|
1151
|
+
#
|
615
1152
|
# @param coupon_id [String] Coupon ID or code (use prefix: +code-+, e.g. +code-10off+).
|
616
1153
|
# @return [Resources::Coupon] A coupon.
|
1154
|
+
# @example
|
1155
|
+
# begin
|
1156
|
+
# coupon = @client.get_coupon(coupon_id: coupon_id)
|
1157
|
+
# puts "Got Coupon #{coupon}"
|
1158
|
+
# rescue Recurly::Errors::NotFoundError
|
1159
|
+
# # If the resource was not found, you may want to alert the user or
|
1160
|
+
# # just return nil
|
1161
|
+
# puts "Resource Not Found"
|
1162
|
+
# end
|
1163
|
+
#
|
617
1164
|
def get_coupon(coupon_id:)
|
618
1165
|
path = interpolate_path("/sites/{site_id}/coupons/{coupon_id}", site_id: site_id, coupon_id: coupon_id)
|
619
1166
|
get(path)
|
@@ -621,6 +1168,8 @@ module Recurly
|
|
621
1168
|
|
622
1169
|
# Update an active coupon
|
623
1170
|
#
|
1171
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/update_coupon update_coupon api documenation}
|
1172
|
+
#
|
624
1173
|
# @param coupon_id [String] Coupon ID or code (use prefix: +code-+, e.g. +code-10off+).
|
625
1174
|
# @param body [Requests::CouponUpdate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::CouponUpdate}
|
626
1175
|
# @return [Resources::Coupon] The updated coupon.
|
@@ -631,9 +1180,11 @@ module Recurly
|
|
631
1180
|
|
632
1181
|
# List unique coupon codes associated with a bulk coupon
|
633
1182
|
#
|
1183
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_unique_coupon_codes list_unique_coupon_codes api documenation}
|
1184
|
+
#
|
634
1185
|
# @param coupon_id [String] Coupon ID or code (use prefix: +code-+, e.g. +code-10off+).
|
635
|
-
# @param ids [
|
636
|
-
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
|
1186
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
1187
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
637
1188
|
#
|
638
1189
|
# *Important notes:*
|
639
1190
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -663,6 +1214,8 @@ module Recurly
|
|
663
1214
|
|
664
1215
|
# List a site's credit payments
|
665
1216
|
#
|
1217
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_credit_payments list_credit_payments api documenation}
|
1218
|
+
#
|
666
1219
|
# @param limit [Integer] Limit number of records 1-200.
|
667
1220
|
# @param order [String] Sort order.
|
668
1221
|
# @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
|
@@ -676,6 +1229,12 @@ module Recurly
|
|
676
1229
|
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
677
1230
|
#
|
678
1231
|
# @return [Pager<Resources::CreditPayment>] A list of the site's credit payments.
|
1232
|
+
# @example
|
1233
|
+
# payments = @client.list_credit_payments(limit: 200)
|
1234
|
+
# payments.each do |payment|
|
1235
|
+
# puts "CreditPayment: #{payment.id}"
|
1236
|
+
# end
|
1237
|
+
#
|
679
1238
|
def list_credit_payments(**options)
|
680
1239
|
path = interpolate_path("/sites/{site_id}/credit_payments", site_id: site_id)
|
681
1240
|
pager(path, **options)
|
@@ -683,6 +1242,8 @@ module Recurly
|
|
683
1242
|
|
684
1243
|
# Fetch a credit payment
|
685
1244
|
#
|
1245
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_credit_payment get_credit_payment api documenation}
|
1246
|
+
#
|
686
1247
|
# @param credit_payment_id [String] Credit Payment ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
687
1248
|
# @return [Resources::CreditPayment] A credit payment.
|
688
1249
|
def get_credit_payment(credit_payment_id:)
|
@@ -692,8 +1253,10 @@ module Recurly
|
|
692
1253
|
|
693
1254
|
# List a site's custom field definitions
|
694
1255
|
#
|
695
|
-
#
|
696
|
-
#
|
1256
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_custom_field_definitions list_custom_field_definitions api documenation}
|
1257
|
+
#
|
1258
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
1259
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
697
1260
|
#
|
698
1261
|
# *Important notes:*
|
699
1262
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -723,6 +1286,8 @@ module Recurly
|
|
723
1286
|
|
724
1287
|
# Fetch an custom field definition
|
725
1288
|
#
|
1289
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_custom_field_definition get_custom_field_definition api documenation}
|
1290
|
+
#
|
726
1291
|
# @param custom_field_definition_id [String] Custom Field Definition ID
|
727
1292
|
# @return [Resources::CustomFieldDefinition] An custom field definition.
|
728
1293
|
def get_custom_field_definition(custom_field_definition_id:)
|
@@ -732,8 +1297,10 @@ module Recurly
|
|
732
1297
|
|
733
1298
|
# List a site's invoices
|
734
1299
|
#
|
735
|
-
#
|
736
|
-
#
|
1300
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_invoices list_invoices api documenation}
|
1301
|
+
#
|
1302
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
1303
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
737
1304
|
#
|
738
1305
|
# *Important notes:*
|
739
1306
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -762,6 +1329,12 @@ module Recurly
|
|
762
1329
|
# - +type=legacy+, only legacy invoices will be returned.
|
763
1330
|
#
|
764
1331
|
# @return [Pager<Resources::Invoice>] A list of the site's invoices.
|
1332
|
+
# @example
|
1333
|
+
# invoices = @client.list_invoices(limit: 200)
|
1334
|
+
# invoices.each do |invoice|
|
1335
|
+
# puts "Invoice: #{invoice.number}"
|
1336
|
+
# end
|
1337
|
+
#
|
765
1338
|
def list_invoices(**options)
|
766
1339
|
path = interpolate_path("/sites/{site_id}/invoices", site_id: site_id)
|
767
1340
|
pager(path, **options)
|
@@ -769,17 +1342,53 @@ module Recurly
|
|
769
1342
|
|
770
1343
|
# Fetch an invoice
|
771
1344
|
#
|
1345
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_invoice get_invoice api documenation}
|
1346
|
+
#
|
772
1347
|
# @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
|
773
1348
|
# @return [Resources::Invoice] An invoice.
|
1349
|
+
# @example
|
1350
|
+
# begin
|
1351
|
+
# invoice = @client.get_invoice(invoice_id: invoice_id)
|
1352
|
+
# puts "Got invoice #{invoice}"
|
1353
|
+
# rescue Recurly::Errors::NotFoundError
|
1354
|
+
# # If the resource was not found, you may want to alert the user or
|
1355
|
+
# # just return nil
|
1356
|
+
# puts "Resource Not Found"
|
1357
|
+
# end
|
1358
|
+
#
|
774
1359
|
def get_invoice(invoice_id:)
|
775
1360
|
path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}", site_id: site_id, invoice_id: invoice_id)
|
776
1361
|
get(path)
|
777
1362
|
end
|
778
1363
|
|
1364
|
+
# Update an invoice
|
1365
|
+
#
|
1366
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/put_invoice put_invoice api documenation}
|
1367
|
+
#
|
1368
|
+
# @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
|
1369
|
+
# @param body [Requests::InvoiceUpdatable] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::InvoiceUpdatable}
|
1370
|
+
# @return [Resources::Invoice] An invoice.
|
1371
|
+
def put_invoice(invoice_id:, body:)
|
1372
|
+
path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}", site_id: site_id, invoice_id: invoice_id)
|
1373
|
+
put(path, body, Requests::InvoiceUpdatable)
|
1374
|
+
end
|
1375
|
+
|
779
1376
|
# Collect a pending or past due, automatic invoice
|
780
1377
|
#
|
1378
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/collect_invoice collect_invoice api documenation}
|
1379
|
+
#
|
781
1380
|
# @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
|
782
1381
|
# @return [Resources::Invoice] The updated invoice.
|
1382
|
+
# @example
|
1383
|
+
# begin
|
1384
|
+
# invoice = @client.collect_invoice(invoice_id: invoice_id)
|
1385
|
+
# puts "Collected invoice #{invoice}"
|
1386
|
+
# rescue Recurly::Errors::NotFoundError
|
1387
|
+
# # If the resource was not found, you may want to alert the user or
|
1388
|
+
# # just return nil
|
1389
|
+
# puts "Resource Not Found"
|
1390
|
+
# end
|
1391
|
+
#
|
783
1392
|
def collect_invoice(invoice_id:)
|
784
1393
|
path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}/collect", site_id: site_id, invoice_id: invoice_id)
|
785
1394
|
put(path)
|
@@ -787,8 +1396,20 @@ module Recurly
|
|
787
1396
|
|
788
1397
|
# Mark an open invoice as failed
|
789
1398
|
#
|
1399
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/fail_invoice fail_invoice api documenation}
|
1400
|
+
#
|
790
1401
|
# @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
|
791
1402
|
# @return [Resources::Invoice] The updated invoice.
|
1403
|
+
# @example
|
1404
|
+
# begin
|
1405
|
+
# invoice = @client.fail_invoice(invoice_id: invoice_id)
|
1406
|
+
# puts "Failed invoice #{invoice}"
|
1407
|
+
# rescue Recurly::Errors::NotFoundError
|
1408
|
+
# # If the resource was not found, you may want to alert the user or
|
1409
|
+
# # just return nil
|
1410
|
+
# puts "Resource Not Found"
|
1411
|
+
# end
|
1412
|
+
#
|
792
1413
|
def fail_invoice(invoice_id:)
|
793
1414
|
path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}/mark_failed", site_id: site_id, invoice_id: invoice_id)
|
794
1415
|
put(path)
|
@@ -796,8 +1417,20 @@ module Recurly
|
|
796
1417
|
|
797
1418
|
# Mark an open invoice as successful
|
798
1419
|
#
|
1420
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/mark_invoice_successful mark_invoice_successful api documenation}
|
1421
|
+
#
|
799
1422
|
# @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
|
800
1423
|
# @return [Resources::Invoice] The updated invoice.
|
1424
|
+
# @example
|
1425
|
+
# begin
|
1426
|
+
# invoice = @client.mark_invoice_successful(invoice_id: invoice_id)
|
1427
|
+
# puts "Marked invoice sucessful #{invoice}"
|
1428
|
+
# rescue Recurly::Errors::NotFoundError
|
1429
|
+
# # If the resource was not found, you may want to alert the user or
|
1430
|
+
# # just return nil
|
1431
|
+
# puts "Resource Not Found"
|
1432
|
+
# end
|
1433
|
+
#
|
801
1434
|
def mark_invoice_successful(invoice_id:)
|
802
1435
|
path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}/mark_successful", site_id: site_id, invoice_id: invoice_id)
|
803
1436
|
put(path)
|
@@ -805,8 +1438,20 @@ module Recurly
|
|
805
1438
|
|
806
1439
|
# Reopen a closed, manual invoice
|
807
1440
|
#
|
1441
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/reopen_invoice reopen_invoice api documenation}
|
1442
|
+
#
|
808
1443
|
# @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
|
809
1444
|
# @return [Resources::Invoice] The updated invoice.
|
1445
|
+
# @example
|
1446
|
+
# begin
|
1447
|
+
# invoice = @client.reopen_invoice(invoice_id: invoice_id)
|
1448
|
+
# puts "Reopened invoice #{invoice}"
|
1449
|
+
# rescue Recurly::Errors::NotFoundError
|
1450
|
+
# # If the resource was not found, you may want to alert the user or
|
1451
|
+
# # just return nil
|
1452
|
+
# puts "Resource Not Found"
|
1453
|
+
# end
|
1454
|
+
#
|
810
1455
|
def reopen_invoice(invoice_id:)
|
811
1456
|
path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}/reopen", site_id: site_id, invoice_id: invoice_id)
|
812
1457
|
put(path)
|
@@ -814,9 +1459,11 @@ module Recurly
|
|
814
1459
|
|
815
1460
|
# List a invoice's line items
|
816
1461
|
#
|
1462
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_invoice_line_items list_invoice_line_items api documenation}
|
1463
|
+
#
|
817
1464
|
# @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
|
818
|
-
# @param ids [
|
819
|
-
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
|
1465
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
1466
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
820
1467
|
#
|
821
1468
|
# *Important notes:*
|
822
1469
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -849,9 +1496,11 @@ module Recurly
|
|
849
1496
|
|
850
1497
|
# Show the coupon redemptions applied to an invoice
|
851
1498
|
#
|
1499
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_invoice_coupon_redemptions list_invoice_coupon_redemptions api documenation}
|
1500
|
+
#
|
852
1501
|
# @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
|
853
|
-
# @param ids [
|
854
|
-
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
|
1502
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
1503
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
855
1504
|
#
|
856
1505
|
# *Important notes:*
|
857
1506
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -861,7 +1510,26 @@ module Recurly
|
|
861
1510
|
# * Records are returned in an arbitrary order. Since results are all
|
862
1511
|
# returned at once you can sort the records yourself.
|
863
1512
|
#
|
1513
|
+
# @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
|
1514
|
+
# order. In descending order updated records will move behind the cursor and could
|
1515
|
+
# prevent some records from being returned.
|
1516
|
+
#
|
1517
|
+
# @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
|
1518
|
+
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
1519
|
+
#
|
1520
|
+
# @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
|
1521
|
+
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
1522
|
+
#
|
864
1523
|
# @return [Pager<Resources::CouponRedemption>] A list of the the coupon redemptions associated with the invoice.
|
1524
|
+
# @example
|
1525
|
+
# coupon_redemptions = @client.list_invoice_coupon_redemptions(
|
1526
|
+
# invoice_id: invoice_id,
|
1527
|
+
# limit: 200
|
1528
|
+
# )
|
1529
|
+
# coupon_redemptions.each do |redemption|
|
1530
|
+
# puts "CouponRedemption: #{redemption.id}"
|
1531
|
+
# end
|
1532
|
+
#
|
865
1533
|
def list_invoice_coupon_redemptions(invoice_id:, **options)
|
866
1534
|
path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}/coupon_redemptions", site_id: site_id, invoice_id: invoice_id)
|
867
1535
|
pager(path, **options)
|
@@ -869,6 +1537,8 @@ module Recurly
|
|
869
1537
|
|
870
1538
|
# List an invoice's related credit or charge invoices
|
871
1539
|
#
|
1540
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_related_invoices list_related_invoices api documenation}
|
1541
|
+
#
|
872
1542
|
# @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
|
873
1543
|
# @return [Pager<Resources::Invoice>] A list of the credit or charge invoices associated with the invoice.
|
874
1544
|
def list_related_invoices(invoice_id:)
|
@@ -878,9 +1548,28 @@ module Recurly
|
|
878
1548
|
|
879
1549
|
# Refund an invoice
|
880
1550
|
#
|
1551
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/refund_invoice refund_invoice api documenation}
|
1552
|
+
#
|
881
1553
|
# @param invoice_id [String] Invoice ID or number (use prefix: +number-+, e.g. +number-1000+).
|
882
1554
|
# @param body [Requests::InvoiceRefund] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::InvoiceRefund}
|
883
1555
|
# @return [Resources::Invoice] Returns the new credit invoice.
|
1556
|
+
# @example
|
1557
|
+
# begin
|
1558
|
+
# invoice_refund = {
|
1559
|
+
# type: "amount",
|
1560
|
+
# amount: 100,
|
1561
|
+
# }
|
1562
|
+
# invoice = @client.refund_invoice(
|
1563
|
+
# invoice_id: invoice_id,
|
1564
|
+
# body: invoice_refund
|
1565
|
+
# )
|
1566
|
+
# puts "Refunded invoice #{invoice}"
|
1567
|
+
# rescue Recurly::Errors::ValidationError => e
|
1568
|
+
# # If the request was invalid, you may want to tell your user
|
1569
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
1570
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
1571
|
+
# end
|
1572
|
+
#
|
884
1573
|
def refund_invoice(invoice_id:, body:)
|
885
1574
|
path = interpolate_path("/sites/{site_id}/invoices/{invoice_id}/refund", site_id: site_id, invoice_id: invoice_id)
|
886
1575
|
post(path, body, Requests::InvoiceRefund)
|
@@ -888,8 +1577,10 @@ module Recurly
|
|
888
1577
|
|
889
1578
|
# List a site's line items
|
890
1579
|
#
|
891
|
-
#
|
892
|
-
#
|
1580
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_line_items list_line_items api documenation}
|
1581
|
+
#
|
1582
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
1583
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
893
1584
|
#
|
894
1585
|
# *Important notes:*
|
895
1586
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -922,8 +1613,20 @@ module Recurly
|
|
922
1613
|
|
923
1614
|
# Fetch a line item
|
924
1615
|
#
|
1616
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_line_item get_line_item api documenation}
|
1617
|
+
#
|
925
1618
|
# @param line_item_id [String] Line Item ID.
|
926
1619
|
# @return [Resources::LineItem] A line item.
|
1620
|
+
# @example
|
1621
|
+
# begin
|
1622
|
+
# line_item = @client.get_line_item(line_item_id: line_item_id)
|
1623
|
+
# puts "Got LineItem #{line_item}"
|
1624
|
+
# rescue Recurly::Errors::NotFoundError
|
1625
|
+
# # If the resource was not found, you may want to alert the user or
|
1626
|
+
# # just return nil
|
1627
|
+
# puts "Resource Not Found"
|
1628
|
+
# end
|
1629
|
+
#
|
927
1630
|
def get_line_item(line_item_id:)
|
928
1631
|
path = interpolate_path("/sites/{site_id}/line_items/{line_item_id}", site_id: site_id, line_item_id: line_item_id)
|
929
1632
|
get(path)
|
@@ -931,7 +1634,21 @@ module Recurly
|
|
931
1634
|
|
932
1635
|
# Delete an uninvoiced line item
|
933
1636
|
#
|
1637
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/remove_line_item remove_line_item api documenation}
|
1638
|
+
#
|
934
1639
|
# @param line_item_id [String] Line Item ID.
|
1640
|
+
# @example
|
1641
|
+
# begin
|
1642
|
+
# @client.remove_line_item(
|
1643
|
+
# line_item_id: line_item_id
|
1644
|
+
# )
|
1645
|
+
# puts "Removed LineItem #{line_item_id}"
|
1646
|
+
# rescue Recurly::Errors::NotFoundError
|
1647
|
+
# # If the resource was not found, you may want to alert the user or
|
1648
|
+
# # just return nil
|
1649
|
+
# puts "Resource Not Found"
|
1650
|
+
# end
|
1651
|
+
#
|
935
1652
|
def remove_line_item(line_item_id:)
|
936
1653
|
path = interpolate_path("/sites/{site_id}/line_items/{line_item_id}", site_id: site_id, line_item_id: line_item_id)
|
937
1654
|
delete(path)
|
@@ -939,8 +1656,10 @@ module Recurly
|
|
939
1656
|
|
940
1657
|
# List a site's plans
|
941
1658
|
#
|
942
|
-
#
|
943
|
-
#
|
1659
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_plans list_plans api documenation}
|
1660
|
+
#
|
1661
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
1662
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
944
1663
|
#
|
945
1664
|
# *Important notes:*
|
946
1665
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -964,6 +1683,12 @@ module Recurly
|
|
964
1683
|
#
|
965
1684
|
# @param state [String] Filter by state.
|
966
1685
|
# @return [Pager<Resources::Plan>] A list of plans.
|
1686
|
+
# @example
|
1687
|
+
# plans = @client.list_plans(limit: 200)
|
1688
|
+
# plans.each do |plan|
|
1689
|
+
# puts "Plan: #{plan.code}"
|
1690
|
+
# end
|
1691
|
+
#
|
967
1692
|
def list_plans(**options)
|
968
1693
|
path = interpolate_path("/sites/{site_id}/plans", site_id: site_id)
|
969
1694
|
pager(path, **options)
|
@@ -971,8 +1696,37 @@ module Recurly
|
|
971
1696
|
|
972
1697
|
# Create a plan
|
973
1698
|
#
|
1699
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/create_plan create_plan api documenation}
|
1700
|
+
#
|
974
1701
|
# @param body [Requests::PlanCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::PlanCreate}
|
975
1702
|
# @return [Resources::Plan] A plan.
|
1703
|
+
# @example
|
1704
|
+
# begin
|
1705
|
+
# plan_create = {
|
1706
|
+
# code: plan_code,
|
1707
|
+
# name: plan_name,
|
1708
|
+
# currencies: [
|
1709
|
+
# currency: "USD",
|
1710
|
+
# setup_fee: 1_000
|
1711
|
+
# ],
|
1712
|
+
# add_ons: [
|
1713
|
+
# {
|
1714
|
+
# name: 'Extra User',
|
1715
|
+
# code: 'extra_user',
|
1716
|
+
# currencies: [
|
1717
|
+
# { currency: 'USD', unit_amount: 10_000 }
|
1718
|
+
# ]
|
1719
|
+
# }
|
1720
|
+
# ]
|
1721
|
+
# }
|
1722
|
+
# plan = @client.create_plan(body: plan_create)
|
1723
|
+
# puts "Created Plan #{plan}"
|
1724
|
+
# rescue Recurly::Errors::ValidationError => e
|
1725
|
+
# # If the request was invalid, you may want to tell your user
|
1726
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
1727
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
1728
|
+
# end
|
1729
|
+
#
|
976
1730
|
def create_plan(body:)
|
977
1731
|
path = interpolate_path("/sites/{site_id}/plans", site_id: site_id)
|
978
1732
|
post(path, body, Requests::PlanCreate)
|
@@ -980,8 +1734,20 @@ module Recurly
|
|
980
1734
|
|
981
1735
|
# Fetch a plan
|
982
1736
|
#
|
1737
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_plan get_plan api documenation}
|
1738
|
+
#
|
983
1739
|
# @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
|
984
1740
|
# @return [Resources::Plan] A plan.
|
1741
|
+
# @example
|
1742
|
+
# begin
|
1743
|
+
# plan = @client.get_plan(plan_id: plan_id)
|
1744
|
+
# puts "Got plan #{plan}"
|
1745
|
+
# rescue Recurly::Errors::NotFoundError
|
1746
|
+
# # If the resource was not found, you may want to alert the user or
|
1747
|
+
# # just return nil
|
1748
|
+
# puts "Resource Not Found"
|
1749
|
+
# end
|
1750
|
+
#
|
985
1751
|
def get_plan(plan_id:)
|
986
1752
|
path = interpolate_path("/sites/{site_id}/plans/{plan_id}", site_id: site_id, plan_id: plan_id)
|
987
1753
|
get(path)
|
@@ -989,6 +1755,8 @@ module Recurly
|
|
989
1755
|
|
990
1756
|
# Update a plan
|
991
1757
|
#
|
1758
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/update_plan update_plan api documenation}
|
1759
|
+
#
|
992
1760
|
# @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
|
993
1761
|
# @param body [Requests::PlanUpdate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::PlanUpdate}
|
994
1762
|
# @return [Resources::Plan] A plan.
|
@@ -999,6 +1767,8 @@ module Recurly
|
|
999
1767
|
|
1000
1768
|
# Remove a plan
|
1001
1769
|
#
|
1770
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/remove_plan remove_plan api documenation}
|
1771
|
+
#
|
1002
1772
|
# @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
|
1003
1773
|
# @return [Resources::Plan] Plan deleted
|
1004
1774
|
def remove_plan(plan_id:)
|
@@ -1008,9 +1778,11 @@ module Recurly
|
|
1008
1778
|
|
1009
1779
|
# List a plan's add-ons
|
1010
1780
|
#
|
1781
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_plan_add_ons list_plan_add_ons api documenation}
|
1782
|
+
#
|
1011
1783
|
# @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
|
1012
|
-
# @param ids [
|
1013
|
-
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
|
1784
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
1785
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1014
1786
|
#
|
1015
1787
|
# *Important notes:*
|
1016
1788
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -1034,6 +1806,15 @@ module Recurly
|
|
1034
1806
|
#
|
1035
1807
|
# @param state [String] Filter by state.
|
1036
1808
|
# @return [Pager<Resources::AddOn>] A list of add-ons.
|
1809
|
+
# @example
|
1810
|
+
# add_ons = @client.list_plan_add_ons(
|
1811
|
+
# plan_id: plan_id,
|
1812
|
+
# limit: 200
|
1813
|
+
# )
|
1814
|
+
# add_ons.each do |add_on|
|
1815
|
+
# puts "AddOn: #{add_on.code}"
|
1816
|
+
# end
|
1817
|
+
#
|
1037
1818
|
def list_plan_add_ons(plan_id:, **options)
|
1038
1819
|
path = interpolate_path("/sites/{site_id}/plans/{plan_id}/add_ons", site_id: site_id, plan_id: plan_id)
|
1039
1820
|
pager(path, **options)
|
@@ -1041,6 +1822,8 @@ module Recurly
|
|
1041
1822
|
|
1042
1823
|
# Create an add-on
|
1043
1824
|
#
|
1825
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/create_plan_add_on create_plan_add_on api documenation}
|
1826
|
+
#
|
1044
1827
|
# @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
|
1045
1828
|
# @param body [Requests::AddOnCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::AddOnCreate}
|
1046
1829
|
# @return [Resources::AddOn] An add-on.
|
@@ -1051,39 +1834,59 @@ module Recurly
|
|
1051
1834
|
|
1052
1835
|
# Fetch a plan's add-on
|
1053
1836
|
#
|
1054
|
-
#
|
1837
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_plan_add_on get_plan_add_on api documenation}
|
1838
|
+
#
|
1055
1839
|
# @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
|
1840
|
+
# @param add_on_id [String] Add-on ID or code (use prefix: +code-+, e.g. +code-gold+).
|
1056
1841
|
# @return [Resources::AddOn] An add-on.
|
1057
|
-
|
1058
|
-
|
1842
|
+
# @example
|
1843
|
+
# begin
|
1844
|
+
# add_on = @client.get_plan_add_on(
|
1845
|
+
# plan_id: plan_id, add_on_id: add_on_id
|
1846
|
+
# )
|
1847
|
+
# puts "Got plan add-on #{add_on}"
|
1848
|
+
# rescue Recurly::Errors::NotFoundError
|
1849
|
+
# # If the resource was not found, you may want to alert the user or
|
1850
|
+
# # just return nil
|
1851
|
+
# puts "Resource Not Found"
|
1852
|
+
# end
|
1853
|
+
#
|
1854
|
+
def get_plan_add_on(plan_id:, add_on_id:)
|
1855
|
+
path = interpolate_path("/sites/{site_id}/plans/{plan_id}/add_ons/{add_on_id}", site_id: site_id, plan_id: plan_id, add_on_id: add_on_id)
|
1059
1856
|
get(path)
|
1060
1857
|
end
|
1061
1858
|
|
1062
1859
|
# Update an add-on
|
1063
1860
|
#
|
1064
|
-
#
|
1861
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/update_plan_add_on update_plan_add_on api documenation}
|
1862
|
+
#
|
1065
1863
|
# @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
|
1864
|
+
# @param add_on_id [String] Add-on ID or code (use prefix: +code-+, e.g. +code-gold+).
|
1066
1865
|
# @param body [Requests::AddOnUpdate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::AddOnUpdate}
|
1067
1866
|
# @return [Resources::AddOn] An add-on.
|
1068
|
-
def update_plan_add_on(
|
1069
|
-
path = interpolate_path("/sites/{site_id}/plans/{plan_id}/add_ons/{add_on_id}", site_id: site_id,
|
1867
|
+
def update_plan_add_on(plan_id:, add_on_id:, body:)
|
1868
|
+
path = interpolate_path("/sites/{site_id}/plans/{plan_id}/add_ons/{add_on_id}", site_id: site_id, plan_id: plan_id, add_on_id: add_on_id)
|
1070
1869
|
put(path, body, Requests::AddOnUpdate)
|
1071
1870
|
end
|
1072
1871
|
|
1073
1872
|
# Remove an add-on
|
1074
1873
|
#
|
1075
|
-
#
|
1874
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/remove_plan_add_on remove_plan_add_on api documenation}
|
1875
|
+
#
|
1076
1876
|
# @param plan_id [String] Plan ID or code (use prefix: +code-+, e.g. +code-gold+).
|
1877
|
+
# @param add_on_id [String] Add-on ID or code (use prefix: +code-+, e.g. +code-gold+).
|
1077
1878
|
# @return [Resources::AddOn] Add-on deleted
|
1078
|
-
def remove_plan_add_on(
|
1079
|
-
path = interpolate_path("/sites/{site_id}/plans/{plan_id}/add_ons/{add_on_id}", site_id: site_id,
|
1879
|
+
def remove_plan_add_on(plan_id:, add_on_id:)
|
1880
|
+
path = interpolate_path("/sites/{site_id}/plans/{plan_id}/add_ons/{add_on_id}", site_id: site_id, plan_id: plan_id, add_on_id: add_on_id)
|
1080
1881
|
delete(path)
|
1081
1882
|
end
|
1082
1883
|
|
1083
1884
|
# List a site's add-ons
|
1084
1885
|
#
|
1085
|
-
#
|
1086
|
-
#
|
1886
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_add_ons list_add_ons api documenation}
|
1887
|
+
#
|
1888
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
1889
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1087
1890
|
#
|
1088
1891
|
# *Important notes:*
|
1089
1892
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -1114,6 +1917,8 @@ module Recurly
|
|
1114
1917
|
|
1115
1918
|
# Fetch an add-on
|
1116
1919
|
#
|
1920
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_add_on get_add_on api documenation}
|
1921
|
+
#
|
1117
1922
|
# @param add_on_id [String] Add-on ID or code (use prefix: +code-+, e.g. +code-gold+).
|
1118
1923
|
# @return [Resources::AddOn] An add-on.
|
1119
1924
|
def get_add_on(add_on_id:)
|
@@ -1123,8 +1928,10 @@ module Recurly
|
|
1123
1928
|
|
1124
1929
|
# List a site's subscriptions
|
1125
1930
|
#
|
1126
|
-
#
|
1127
|
-
#
|
1931
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_subscriptions list_subscriptions api documenation}
|
1932
|
+
#
|
1933
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
1934
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1128
1935
|
#
|
1129
1936
|
# *Important notes:*
|
1130
1937
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -1152,6 +1959,12 @@ module Recurly
|
|
1152
1959
|
# - When +state=live+, only subscriptions that are in an active, canceled, or future state or are in trial will be returned.
|
1153
1960
|
#
|
1154
1961
|
# @return [Pager<Resources::Subscription>] A list of the site's subscriptions.
|
1962
|
+
# @example
|
1963
|
+
# subscriptions = @client.list_subscriptions(limit: 200)
|
1964
|
+
# subscriptions.each do |subscription|
|
1965
|
+
# puts "Subscription: #{subscription.uuid}"
|
1966
|
+
# end
|
1967
|
+
#
|
1155
1968
|
def list_subscriptions(**options)
|
1156
1969
|
path = interpolate_path("/sites/{site_id}/subscriptions", site_id: site_id)
|
1157
1970
|
pager(path, **options)
|
@@ -1159,8 +1972,31 @@ module Recurly
|
|
1159
1972
|
|
1160
1973
|
# Create a new subscription
|
1161
1974
|
#
|
1975
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/create_subscription create_subscription api documenation}
|
1976
|
+
#
|
1162
1977
|
# @param body [Requests::SubscriptionCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::SubscriptionCreate}
|
1163
1978
|
# @return [Resources::Subscription] A subscription.
|
1979
|
+
# @example
|
1980
|
+
# begin
|
1981
|
+
# subscription_create = {
|
1982
|
+
# plan_code: plan_code,
|
1983
|
+
# currency: "USD",
|
1984
|
+
# # This can be an existing account or
|
1985
|
+
# # a new acocunt
|
1986
|
+
# account: {
|
1987
|
+
# code: account_code,
|
1988
|
+
# }
|
1989
|
+
# }
|
1990
|
+
# subscription = @client.create_subscription(
|
1991
|
+
# body: subscription_create
|
1992
|
+
# )
|
1993
|
+
# puts "Created Subscription #{subscription}"
|
1994
|
+
# rescue Recurly::Errors::ValidationError => e
|
1995
|
+
# # If the request was invalid, you may want to tell your user
|
1996
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
1997
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
1998
|
+
# end
|
1999
|
+
#
|
1164
2000
|
def create_subscription(body:)
|
1165
2001
|
path = interpolate_path("/sites/{site_id}/subscriptions", site_id: site_id)
|
1166
2002
|
post(path, body, Requests::SubscriptionCreate)
|
@@ -1168,19 +2004,20 @@ module Recurly
|
|
1168
2004
|
|
1169
2005
|
# Fetch a subscription
|
1170
2006
|
#
|
2007
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_subscription get_subscription api documenation}
|
2008
|
+
#
|
1171
2009
|
# @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
1172
2010
|
# @return [Resources::Subscription] A subscription.
|
1173
2011
|
# @example
|
1174
2012
|
# begin
|
1175
|
-
#
|
1176
|
-
#
|
1177
|
-
#
|
1178
|
-
#
|
1179
|
-
# rescue Recurly::Errors::NotFoundError
|
1180
|
-
#
|
1181
|
-
# #
|
1182
|
-
# puts
|
1183
|
-
# # => #<Recurly::Error:0x007f8b29918618 @attributes={:type=>"not_found", :message=>"Couldn't find Subscription with uuid = 419cd2effd49236e502ccc42db928280", :params=>[{"param"=>"subscription_id"}]}>
|
2013
|
+
# subscription = @client.get_subscription(
|
2014
|
+
# subscription_id: subscription_id
|
2015
|
+
# )
|
2016
|
+
# puts "Got Subscription #{subscription}"
|
2017
|
+
# rescue Recurly::Errors::NotFoundError
|
2018
|
+
# # If the resource was not found, you may want to alert the user or
|
2019
|
+
# # just return nil
|
2020
|
+
# puts "Resource Not Found"
|
1184
2021
|
# end
|
1185
2022
|
#
|
1186
2023
|
def get_subscription(subscription_id:)
|
@@ -1190,9 +2027,28 @@ module Recurly
|
|
1190
2027
|
|
1191
2028
|
# Modify a subscription
|
1192
2029
|
#
|
2030
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/modify_subscription modify_subscription api documenation}
|
2031
|
+
#
|
1193
2032
|
# @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
1194
2033
|
# @param body [Requests::SubscriptionUpdate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::SubscriptionUpdate}
|
1195
2034
|
# @return [Resources::Subscription] A subscription.
|
2035
|
+
# @example
|
2036
|
+
# begin
|
2037
|
+
# subscription_update = {
|
2038
|
+
# customer_notes: "New Notes",
|
2039
|
+
# terms_and_conditions: "New ToC"
|
2040
|
+
# }
|
2041
|
+
# subscription = @client.modify_subscription(
|
2042
|
+
# subscription_id: subscription_id,
|
2043
|
+
# body: subscription_update
|
2044
|
+
# )
|
2045
|
+
# puts "Modified Subscription #{subscription}"
|
2046
|
+
# rescue Recurly::Errors::ValidationError => e
|
2047
|
+
# # If the request was invalid, you may want to tell your user
|
2048
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
2049
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
2050
|
+
# end
|
2051
|
+
#
|
1196
2052
|
def modify_subscription(subscription_id:, body:)
|
1197
2053
|
path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}", site_id: site_id, subscription_id: subscription_id)
|
1198
2054
|
put(path, body, Requests::SubscriptionUpdate)
|
@@ -1200,6 +2056,8 @@ module Recurly
|
|
1200
2056
|
|
1201
2057
|
# Terminate a subscription
|
1202
2058
|
#
|
2059
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/terminate_subscription terminate_subscription api documenation}
|
2060
|
+
#
|
1203
2061
|
# @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
1204
2062
|
# @param refund [String] The type of refund to perform:
|
1205
2063
|
#
|
@@ -1212,6 +2070,18 @@ module Recurly
|
|
1212
2070
|
# You may also terminate a subscription with no refund and then manually refund specific invoices.
|
1213
2071
|
#
|
1214
2072
|
# @return [Resources::Subscription] An expired subscription.
|
2073
|
+
# @example
|
2074
|
+
# begin
|
2075
|
+
# subscription = @client.terminate_subscription(
|
2076
|
+
# subscription_id: subscription_id,
|
2077
|
+
# )
|
2078
|
+
# puts "Terminated Subscription #{subscription}"
|
2079
|
+
# rescue Recurly::Errors::NotFoundError
|
2080
|
+
# # If the resource was not found, you may want to alert the user or
|
2081
|
+
# # just return nil
|
2082
|
+
# puts "Resource Not Found"
|
2083
|
+
# end
|
2084
|
+
#
|
1215
2085
|
def terminate_subscription(subscription_id:, **options)
|
1216
2086
|
path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}", site_id: site_id, subscription_id: subscription_id)
|
1217
2087
|
delete(path, **options)
|
@@ -1219,8 +2089,22 @@ module Recurly
|
|
1219
2089
|
|
1220
2090
|
# Cancel a subscription
|
1221
2091
|
#
|
2092
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/cancel_subscription cancel_subscription api documenation}
|
2093
|
+
#
|
1222
2094
|
# @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
1223
2095
|
# @return [Resources::Subscription] A canceled or failed subscription.
|
2096
|
+
# @example
|
2097
|
+
# begin
|
2098
|
+
# subscription = @client.cancel_subscription(
|
2099
|
+
# subscription_id: subscription_id
|
2100
|
+
# )
|
2101
|
+
# puts "Canceled Subscription #{subscription}"
|
2102
|
+
# rescue Recurly::Errors::NotFoundError
|
2103
|
+
# # If the resource was not found, you may want to alert the user or
|
2104
|
+
# # just return nil
|
2105
|
+
# puts "Resource Not Found"
|
2106
|
+
# end
|
2107
|
+
#
|
1224
2108
|
def cancel_subscription(subscription_id:)
|
1225
2109
|
path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/cancel", site_id: site_id, subscription_id: subscription_id)
|
1226
2110
|
put(path)
|
@@ -1228,8 +2112,22 @@ module Recurly
|
|
1228
2112
|
|
1229
2113
|
# Reactivate a canceled subscription
|
1230
2114
|
#
|
2115
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/reactivate_subscription reactivate_subscription api documenation}
|
2116
|
+
#
|
1231
2117
|
# @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
1232
2118
|
# @return [Resources::Subscription] An active subscription.
|
2119
|
+
# @example
|
2120
|
+
# begin
|
2121
|
+
# subscription = @client.reactivate_subscription(
|
2122
|
+
# subscription_id: subscription_id
|
2123
|
+
# )
|
2124
|
+
# puts "Reactivated Canceled Subscription #{subscription}"
|
2125
|
+
# rescue Recurly::Errors::NotFoundError
|
2126
|
+
# # If the resource was not found, you may want to alert the user or
|
2127
|
+
# # just return nil
|
2128
|
+
# puts "Resource Not Found"
|
2129
|
+
# end
|
2130
|
+
#
|
1233
2131
|
def reactivate_subscription(subscription_id:)
|
1234
2132
|
path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/reactivate", site_id: site_id, subscription_id: subscription_id)
|
1235
2133
|
put(path)
|
@@ -1237,9 +2135,27 @@ module Recurly
|
|
1237
2135
|
|
1238
2136
|
# Pause subscription
|
1239
2137
|
#
|
2138
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/pause_subscription pause_subscription api documenation}
|
2139
|
+
#
|
1240
2140
|
# @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
1241
2141
|
# @param body [Requests::SubscriptionPause] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::SubscriptionPause}
|
1242
2142
|
# @return [Resources::Subscription] A subscription.
|
2143
|
+
# @example
|
2144
|
+
# begin
|
2145
|
+
# subscription_pause = {
|
2146
|
+
# remaining_pause_cycles: 10
|
2147
|
+
# }
|
2148
|
+
# subscription = @client.pause_subscription(
|
2149
|
+
# subscription_id: subscription_id,
|
2150
|
+
# body: subscription_pause
|
2151
|
+
# )
|
2152
|
+
# puts "Paused Subscription #{subscription}"
|
2153
|
+
# rescue Recurly::Errors::NotFoundError
|
2154
|
+
# # If the resource was not found, you may want to alert the user or
|
2155
|
+
# # just return nil
|
2156
|
+
# puts "Resource Not Found"
|
2157
|
+
# end
|
2158
|
+
#
|
1243
2159
|
def pause_subscription(subscription_id:, body:)
|
1244
2160
|
path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/pause", site_id: site_id, subscription_id: subscription_id)
|
1245
2161
|
put(path, body, Requests::SubscriptionPause)
|
@@ -1247,8 +2163,22 @@ module Recurly
|
|
1247
2163
|
|
1248
2164
|
# Resume subscription
|
1249
2165
|
#
|
2166
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/resume_subscription resume_subscription api documenation}
|
2167
|
+
#
|
1250
2168
|
# @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
1251
2169
|
# @return [Resources::Subscription] A subscription.
|
2170
|
+
# @example
|
2171
|
+
# begin
|
2172
|
+
# subscription = @client.resume_subscription(
|
2173
|
+
# subscription_id: subscription_id
|
2174
|
+
# )
|
2175
|
+
# puts "Resumed Subscription #{subscription}"
|
2176
|
+
# rescue Recurly::Errors::NotFoundError
|
2177
|
+
# # If the resource was not found, you may want to alert the user or
|
2178
|
+
# # just return nil
|
2179
|
+
# puts "Resource Not Found"
|
2180
|
+
# end
|
2181
|
+
#
|
1252
2182
|
def resume_subscription(subscription_id:)
|
1253
2183
|
path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/resume", site_id: site_id, subscription_id: subscription_id)
|
1254
2184
|
put(path)
|
@@ -1256,8 +2186,22 @@ module Recurly
|
|
1256
2186
|
|
1257
2187
|
# Fetch a subscription's pending change
|
1258
2188
|
#
|
2189
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_subscription_change get_subscription_change api documenation}
|
2190
|
+
#
|
1259
2191
|
# @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
1260
2192
|
# @return [Resources::SubscriptionChange] A subscription's pending change.
|
2193
|
+
# @example
|
2194
|
+
# begin
|
2195
|
+
# change = @client.get_subscription_change(
|
2196
|
+
# subscription_id: subscription_id
|
2197
|
+
# )
|
2198
|
+
# puts "Got SubscriptionChange #{change}"
|
2199
|
+
# rescue Recurly::Errors::NotFoundError
|
2200
|
+
# # If the resource was not found, you may want to alert the user or
|
2201
|
+
# # just return nil
|
2202
|
+
# puts "Resource Not Found"
|
2203
|
+
# end
|
2204
|
+
#
|
1261
2205
|
def get_subscription_change(subscription_id:)
|
1262
2206
|
path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/change", site_id: site_id, subscription_id: subscription_id)
|
1263
2207
|
get(path)
|
@@ -1265,9 +2209,28 @@ module Recurly
|
|
1265
2209
|
|
1266
2210
|
# Create a new subscription change
|
1267
2211
|
#
|
2212
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/create_subscription_change create_subscription_change api documenation}
|
2213
|
+
#
|
1268
2214
|
# @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
1269
2215
|
# @param body [Requests::SubscriptionChangeCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::SubscriptionChangeCreate}
|
1270
2216
|
# @return [Resources::SubscriptionChange] A subscription change.
|
2217
|
+
# @example
|
2218
|
+
# begin
|
2219
|
+
# change_create = {
|
2220
|
+
# timeframe: "now",
|
2221
|
+
# plan_code: new_plan_code
|
2222
|
+
# }
|
2223
|
+
# change = @client.create_subscription_change(
|
2224
|
+
# subscription_id: subscription_id,
|
2225
|
+
# body: change_create
|
2226
|
+
# )
|
2227
|
+
# puts "Created SubscriptionChange #{change}"
|
2228
|
+
# rescue Recurly::Errors::ValidationError => e
|
2229
|
+
# # If the request was invalid, you may want to tell your user
|
2230
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
2231
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
2232
|
+
# end
|
2233
|
+
#
|
1271
2234
|
def create_subscription_change(subscription_id:, body:)
|
1272
2235
|
path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/change", site_id: site_id, subscription_id: subscription_id)
|
1273
2236
|
post(path, body, Requests::SubscriptionChangeCreate)
|
@@ -1275,7 +2238,21 @@ module Recurly
|
|
1275
2238
|
|
1276
2239
|
# Delete the pending subscription change
|
1277
2240
|
#
|
2241
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/remove_subscription_change remove_subscription_change api documenation}
|
2242
|
+
#
|
1278
2243
|
# @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
2244
|
+
# @example
|
2245
|
+
# begin
|
2246
|
+
# @client.remove_subscription_change(
|
2247
|
+
# subscription_id: subscription_id
|
2248
|
+
# )
|
2249
|
+
# puts "Removed SubscriptionChange #{subscription_id}"
|
2250
|
+
# rescue Recurly::Errors::NotFoundError
|
2251
|
+
# # If the resource was not found, you may want to alert the user or
|
2252
|
+
# # just return nil
|
2253
|
+
# puts "Resource Not Found"
|
2254
|
+
# end
|
2255
|
+
#
|
1279
2256
|
def remove_subscription_change(subscription_id:)
|
1280
2257
|
path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/change", site_id: site_id, subscription_id: subscription_id)
|
1281
2258
|
delete(path)
|
@@ -1283,9 +2260,11 @@ module Recurly
|
|
1283
2260
|
|
1284
2261
|
# List a subscription's invoices
|
1285
2262
|
#
|
2263
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_subscription_invoices list_subscription_invoices api documenation}
|
2264
|
+
#
|
1286
2265
|
# @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
1287
|
-
# @param ids [
|
1288
|
-
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1+.
|
2266
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
2267
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1289
2268
|
#
|
1290
2269
|
# *Important notes:*
|
1291
2270
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -1314,15 +2293,27 @@ module Recurly
|
|
1314
2293
|
# - +type=legacy+, only legacy invoices will be returned.
|
1315
2294
|
#
|
1316
2295
|
# @return [Pager<Resources::Invoice>] A list of the subscription's invoices.
|
2296
|
+
# @example
|
2297
|
+
# invoices = @client.list_subscription_invoices(
|
2298
|
+
# subscription_id: subscription_id,
|
2299
|
+
# limit: 200
|
2300
|
+
# )
|
2301
|
+
# invoices.each do |invoice|
|
2302
|
+
# puts "Invoice: #{invoice.number}"
|
2303
|
+
# end
|
2304
|
+
#
|
1317
2305
|
def list_subscription_invoices(subscription_id:, **options)
|
1318
2306
|
path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/invoices", site_id: site_id, subscription_id: subscription_id)
|
1319
2307
|
pager(path, **options)
|
1320
2308
|
end
|
1321
2309
|
|
1322
|
-
# List a
|
2310
|
+
# List a subscription's line items
|
1323
2311
|
#
|
1324
|
-
#
|
1325
|
-
#
|
2312
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_subscription_line_items list_subscription_line_items api documenation}
|
2313
|
+
#
|
2314
|
+
# @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
2315
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
2316
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1326
2317
|
#
|
1327
2318
|
# *Important notes:*
|
1328
2319
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
@@ -1344,9 +2335,101 @@ module Recurly
|
|
1344
2335
|
# @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
|
1345
2336
|
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
1346
2337
|
#
|
2338
|
+
# @param original [String] Filter by original field.
|
2339
|
+
# @param state [String] Filter by state field.
|
1347
2340
|
# @param type [String] Filter by type field.
|
2341
|
+
# @return [Pager<Resources::LineItem>] A list of the subscription's line items.
|
2342
|
+
# @example
|
2343
|
+
# line_items = @client.list_subscription_line_items(
|
2344
|
+
# subscription_id: subscription_id,
|
2345
|
+
# limit: 200
|
2346
|
+
# )
|
2347
|
+
# line_items.each do |line_item|
|
2348
|
+
# puts "LineItem: #{line_item.id}"
|
2349
|
+
# end
|
2350
|
+
#
|
2351
|
+
def list_subscription_line_items(subscription_id:, **options)
|
2352
|
+
path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/line_items", site_id: site_id, subscription_id: subscription_id)
|
2353
|
+
pager(path, **options)
|
2354
|
+
end
|
2355
|
+
|
2356
|
+
# Show the coupon redemptions for a subscription
|
2357
|
+
#
|
2358
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_subscription_coupon_redemptions list_subscription_coupon_redemptions api documenation}
|
2359
|
+
#
|
2360
|
+
# @param subscription_id [String] Subscription ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
2361
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
2362
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
2363
|
+
#
|
2364
|
+
# *Important notes:*
|
2365
|
+
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
2366
|
+
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
2367
|
+
# * Invalid or unknown IDs will be ignored, so you should check that the
|
2368
|
+
# results correspond to your request.
|
2369
|
+
# * Records are returned in an arbitrary order. Since results are all
|
2370
|
+
# returned at once you can sort the records yourself.
|
2371
|
+
#
|
2372
|
+
# @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
|
2373
|
+
# order. In descending order updated records will move behind the cursor and could
|
2374
|
+
# prevent some records from being returned.
|
2375
|
+
#
|
2376
|
+
# @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
|
2377
|
+
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
2378
|
+
#
|
2379
|
+
# @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
|
2380
|
+
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
2381
|
+
#
|
2382
|
+
# @return [Pager<Resources::CouponRedemption>] A list of the the coupon redemptions on a subscription.
|
2383
|
+
# @example
|
2384
|
+
# coupon_redemptions = @client.list_subscription_coupon_redemptions(
|
2385
|
+
# subscription_id: subscription_id,
|
2386
|
+
# limit: 200
|
2387
|
+
# )
|
2388
|
+
# coupon_redemptions.each do |redemption|
|
2389
|
+
# puts "CouponRedemption: #{redemption.id}"
|
2390
|
+
# end
|
2391
|
+
#
|
2392
|
+
def list_subscription_coupon_redemptions(subscription_id:, **options)
|
2393
|
+
path = interpolate_path("/sites/{site_id}/subscriptions/{subscription_id}/coupon_redemptions", site_id: site_id, subscription_id: subscription_id)
|
2394
|
+
pager(path, **options)
|
2395
|
+
end
|
2396
|
+
|
2397
|
+
# List a site's transactions
|
2398
|
+
#
|
2399
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_transactions list_transactions api documenation}
|
2400
|
+
#
|
2401
|
+
# @param ids [string] Filter results by their IDs. Up to 200 IDs can be passed at once using
|
2402
|
+
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
2403
|
+
#
|
2404
|
+
# *Important notes:*
|
2405
|
+
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
2406
|
+
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
2407
|
+
# * Invalid or unknown IDs will be ignored, so you should check that the
|
2408
|
+
# results correspond to your request.
|
2409
|
+
# * Records are returned in an arbitrary order. Since results are all
|
2410
|
+
# returned at once you can sort the records yourself.
|
2411
|
+
#
|
2412
|
+
# @param limit [Integer] Limit number of records 1-200.
|
2413
|
+
# @param order [String] Sort order.
|
2414
|
+
# @param sort [String] Sort field. You *really* only want to sort by +updated_at+ in ascending
|
2415
|
+
# order. In descending order updated records will move behind the cursor and could
|
2416
|
+
# prevent some records from being returned.
|
2417
|
+
#
|
2418
|
+
# @param begin_time [DateTime] Filter by begin_time when +sort=created_at+ or +sort=updated_at+.
|
2419
|
+
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
2420
|
+
#
|
2421
|
+
# @param end_time [DateTime] Filter by end_time when +sort=created_at+ or +sort=updated_at+.
|
2422
|
+
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
2423
|
+
#
|
2424
|
+
# @param type [String] Filter by type field. The value +payment+ will return both +purchase+ and +capture+ transactions.
|
1348
2425
|
# @param success [String] Filter by success field.
|
1349
2426
|
# @return [Pager<Resources::Transaction>] A list of the site's transactions.
|
2427
|
+
# @example
|
2428
|
+
# transactions = @client.list_transactions(limit: 200)
|
2429
|
+
# transactions.each do |transaction|
|
2430
|
+
# puts "Transaction: #{transaction.uuid}"
|
2431
|
+
# end
|
2432
|
+
#
|
1350
2433
|
def list_transactions(**options)
|
1351
2434
|
path = interpolate_path("/sites/{site_id}/transactions", site_id: site_id)
|
1352
2435
|
pager(path, **options)
|
@@ -1354,8 +2437,20 @@ module Recurly
|
|
1354
2437
|
|
1355
2438
|
# Fetch a transaction
|
1356
2439
|
#
|
2440
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_transaction get_transaction api documenation}
|
2441
|
+
#
|
1357
2442
|
# @param transaction_id [String] Transaction ID or UUID (use prefix: +uuid-+, e.g. +uuid-123457890+).
|
1358
2443
|
# @return [Resources::Transaction] A transaction.
|
2444
|
+
# @example
|
2445
|
+
# begin
|
2446
|
+
# transaction = @client.get_transaction(transaction_id: transaction_id)
|
2447
|
+
# puts "Got Transaction #{transaction}"
|
2448
|
+
# rescue Recurly::Errors::NotFoundError
|
2449
|
+
# # If the resource was not found, you may want to alert the user or
|
2450
|
+
# # just return nil
|
2451
|
+
# puts "Resource Not Found"
|
2452
|
+
# end
|
2453
|
+
#
|
1359
2454
|
def get_transaction(transaction_id:)
|
1360
2455
|
path = interpolate_path("/sites/{site_id}/transactions/{transaction_id}", site_id: site_id, transaction_id: transaction_id)
|
1361
2456
|
get(path)
|
@@ -1363,6 +2458,8 @@ module Recurly
|
|
1363
2458
|
|
1364
2459
|
# Fetch a unique coupon code
|
1365
2460
|
#
|
2461
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/get_unique_coupon_code get_unique_coupon_code api documenation}
|
2462
|
+
#
|
1366
2463
|
# @param unique_coupon_code_id [String] Unique Coupon Code ID or code (use prefix: +code-+, e.g. +code-abc-8dh2-def+).
|
1367
2464
|
# @return [Resources::UniqueCouponCode] A unique coupon code.
|
1368
2465
|
def get_unique_coupon_code(unique_coupon_code_id:)
|
@@ -1372,6 +2469,8 @@ module Recurly
|
|
1372
2469
|
|
1373
2470
|
# Deactivate a unique coupon code
|
1374
2471
|
#
|
2472
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/deactivate_unique_coupon_code deactivate_unique_coupon_code api documenation}
|
2473
|
+
#
|
1375
2474
|
# @param unique_coupon_code_id [String] Unique Coupon Code ID or code (use prefix: +code-+, e.g. +code-abc-8dh2-def+).
|
1376
2475
|
# @return [Resources::UniqueCouponCode] A unique coupon code.
|
1377
2476
|
def deactivate_unique_coupon_code(unique_coupon_code_id:)
|
@@ -1381,6 +2480,8 @@ module Recurly
|
|
1381
2480
|
|
1382
2481
|
# Restore a unique coupon code
|
1383
2482
|
#
|
2483
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/reactivate_unique_coupon_code reactivate_unique_coupon_code api documenation}
|
2484
|
+
#
|
1384
2485
|
# @param unique_coupon_code_id [String] Unique Coupon Code ID or code (use prefix: +code-+, e.g. +code-abc-8dh2-def+).
|
1385
2486
|
# @return [Resources::UniqueCouponCode] A unique coupon code.
|
1386
2487
|
def reactivate_unique_coupon_code(unique_coupon_code_id:)
|