recurly 3.0.0.beta.4 → 3.0.0.beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +3 -1
- data/Gemfile +1 -1
- data/README.md +1 -1
- data/lib/recurly.rb +6 -2
- data/lib/recurly/client.rb +31 -26
- data/lib/recurly/client/adapter.rb +4 -2
- data/lib/recurly/client/operations.rb +118 -8
- data/lib/recurly/errors.rb +1 -1
- data/lib/recurly/pager.rb +3 -3
- data/lib/recurly/requests/account_acquisition_updatable.rb +1 -1
- data/lib/recurly/requests/account_create.rb +2 -2
- data/lib/recurly/requests/account_purchase.rb +86 -0
- data/lib/recurly/requests/account_update.rb +2 -2
- data/lib/recurly/requests/add_on_create.rb +3 -3
- data/lib/recurly/requests/add_on_update.rb +3 -3
- data/lib/recurly/requests/coupon_create.rb +6 -6
- data/lib/recurly/requests/external_refund.rb +1 -1
- data/lib/recurly/requests/invoice_create.rb +2 -2
- data/lib/recurly/requests/invoice_refund.rb +2 -2
- data/lib/recurly/requests/line_item_create.rb +3 -3
- data/lib/recurly/requests/plan_create.rb +3 -3
- data/lib/recurly/requests/plan_update.rb +4 -4
- data/lib/recurly/requests/purchase_create.rb +74 -0
- data/lib/recurly/requests/shipping_address_update.rb +2 -2
- data/lib/recurly/requests/subscription_change_create.rb +2 -2
- data/lib/recurly/requests/subscription_create.rb +1 -1
- data/lib/recurly/requests/subscription_purchase.rb +58 -0
- data/lib/recurly/requests/subscription_shipping_purchase.rb +22 -0
- data/lib/recurly/requests/subscription_update.rb +2 -2
- data/lib/recurly/resources/account.rb +18 -18
- data/lib/recurly/resources/account_acquisition.rb +9 -9
- data/lib/recurly/resources/account_balance.rb +2 -2
- data/lib/recurly/resources/account_mini.rb +4 -4
- data/lib/recurly/resources/account_note.rb +6 -6
- data/lib/recurly/resources/add_on.rb +15 -15
- data/lib/recurly/resources/add_on_mini.rb +4 -4
- data/lib/recurly/resources/billing_info.rb +16 -16
- data/lib/recurly/resources/billing_info_payment_method.rb +1 -1
- data/lib/recurly/resources/coupon.rb +16 -16
- data/lib/recurly/resources/coupon_discount.rb +1 -1
- data/lib/recurly/resources/coupon_discount_trial.rb +1 -1
- data/lib/recurly/resources/coupon_mini.rb +6 -6
- data/lib/recurly/resources/coupon_redemption.rb +12 -12
- data/lib/recurly/resources/coupon_redemption_mini.rb +7 -7
- data/lib/recurly/resources/credit_payment.rb +7 -7
- data/lib/recurly/resources/custom_field_definition.rb +12 -12
- data/lib/recurly/resources/error.rb +1 -1
- data/lib/recurly/resources/error_may_have_transaction.rb +1 -1
- data/lib/recurly/resources/fraud_info.rb +1 -1
- data/lib/recurly/resources/invoice.rb +12 -12
- data/lib/recurly/resources/invoice_mini.rb +2 -2
- data/lib/recurly/resources/line_item.rb +6 -6
- data/lib/recurly/resources/plan.rb +15 -15
- data/lib/recurly/resources/plan_mini.rb +4 -4
- data/lib/recurly/resources/settings.rb +6 -6
- data/lib/recurly/resources/shipping_address.rb +8 -8
- data/lib/recurly/resources/site.rb +16 -16
- data/lib/recurly/resources/subscription.rb +2 -2
- data/lib/recurly/resources/subscription_change.rb +8 -8
- data/lib/recurly/resources/transaction.rb +8 -8
- data/lib/recurly/resources/transaction_payment_method.rb +2 -2
- data/lib/recurly/resources/unique_coupon_code.rb +11 -11
- data/lib/recurly/resources/user.rb +8 -8
- data/lib/recurly/schema.rb +5 -6
- data/lib/recurly/schema/json_deserializer.rb +5 -4
- data/lib/recurly/schema/json_parser.rb +4 -4
- data/lib/recurly/schema/request_caster.rb +4 -4
- data/lib/recurly/schema/schema_factory.rb +1 -1
- data/lib/recurly/schema/schema_validator.rb +1 -2
- data/lib/recurly/version.rb +1 -1
- data/recurly.gemspec +12 -11
- data/scripts/format +6 -0
- data/scripts/test +12 -1
- metadata +22 -5
- data/scripts/check-deps +0 -28
- data/scripts/install-deps +0 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3a83d4657995fd0ff223c206cec0f070cd2444d6
|
4
|
+
data.tar.gz: 30cd8091362db149ca7c6b58eda4bc0e28909362
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4e1d7f40eddeec2548d7725b00a23753ce9c89101395a15bb33039ff8e4fc76366c6fab7d77739ba78a3d8ae5106bc42e0a86cd55b6f6b58d9ef8a0cbbcac3e
|
7
|
+
data.tar.gz: 7a009fc1f8447ae303d17cf4040fbb3b7e0ccbf391814479a9003342a06e059febbe4d8fe243c082a74a7c63da7afb57a5ad73b6d03cb067174b63dff2f2319e
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.4.
|
1
|
+
2.4.5
|
data/.travis.yml
CHANGED
data/Gemfile
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.5'
|
19
19
|
```
|
20
20
|
|
21
21
|
It's important that you lock on a specific version as there may be breaking changes between releases.
|
data/lib/recurly.rb
CHANGED
@@ -4,13 +4,17 @@ require "recurly/request"
|
|
4
4
|
require "recurly/resource"
|
5
5
|
require "recurly/pager"
|
6
6
|
# Include all request files
|
7
|
-
resources = File.join(File.dirname(__FILE__),
|
7
|
+
resources = File.join(File.dirname(__FILE__), "recurly", "requests", "*.rb")
|
8
8
|
Dir.glob(resources, &method(:require))
|
9
9
|
# Include all resource files
|
10
|
-
resources = File.join(File.dirname(__FILE__),
|
10
|
+
resources = File.join(File.dirname(__FILE__), "recurly", "resources", "*.rb")
|
11
11
|
Dir.glob(resources, &method(:require))
|
12
12
|
require "recurly/errors"
|
13
13
|
require "recurly/client"
|
14
14
|
|
15
15
|
module Recurly
|
16
|
+
STRICT_MODE = !ENV["RECURLY_STRICT_MODE"].nil?
|
17
|
+
if STRICT_MODE
|
18
|
+
puts "[Recurly] [WARNING] STRICT_MODE enabled. This should only be used for testing purposes."
|
19
|
+
end
|
16
20
|
end
|
data/lib/recurly/client.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
|
4
|
-
require_relative
|
1
|
+
require "faraday"
|
2
|
+
require "logger"
|
3
|
+
require "erb"
|
4
|
+
require_relative "./schema/json_parser"
|
5
|
+
require_relative "./client/adapter"
|
5
6
|
|
6
7
|
module Recurly
|
7
8
|
class Client
|
8
|
-
require_relative
|
9
|
+
require_relative "./client/operations"
|
9
10
|
|
10
11
|
BASE_URL = "https://partner-api.recurly.com/"
|
11
12
|
|
@@ -94,15 +95,15 @@ module Recurly
|
|
94
95
|
raise_network_error!(ex)
|
95
96
|
end
|
96
97
|
|
97
|
-
def put(path, request_data=nil, request_class=nil, **options)
|
98
|
+
def put(path, request_data = nil, request_class = nil, **options)
|
98
99
|
response = if request_data
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
100
|
+
request = request_class.new(request_data)
|
101
|
+
request.validate!
|
102
|
+
logger.info("PUT BODY #{JSON.dump(request_data)}")
|
103
|
+
run_request(:put, path, JSON.dump(request_data), headers)
|
104
|
+
else
|
105
|
+
run_request(:put, path, nil, headers)
|
106
|
+
end
|
106
107
|
raise_api_error!(response) unless (200...300).include?(response.status)
|
107
108
|
JSONParser.parse(self, response.body)
|
108
109
|
rescue Faraday::ClientError => ex
|
@@ -138,7 +139,7 @@ module Recurly
|
|
138
139
|
when Faraday::TimeoutError
|
139
140
|
Errors::TimeoutError
|
140
141
|
when Faraday::ConnectionFailed
|
141
|
-
Errors::
|
142
|
+
Errors::ConnectionFailedError
|
142
143
|
when Faraday::SSLError
|
143
144
|
Errors::SSLError
|
144
145
|
else
|
@@ -155,25 +156,27 @@ module Recurly
|
|
155
156
|
end
|
156
157
|
|
157
158
|
def read_headers(response)
|
158
|
-
@rate_limit = response.headers[
|
159
|
-
@rate_limit_remaining = response.headers[
|
160
|
-
@rate_limit_reset = Time.at(response.headers[
|
161
|
-
if !@_ignore_deprecation_warning && response.headers[
|
162
|
-
puts "[recurly-client-ruby] WARNING: Your current API version \"#{api_version}\" is deprecated and will be sunset on #{response.headers[
|
159
|
+
@rate_limit = response.headers["x-ratelimit-limit"].to_i
|
160
|
+
@rate_limit_remaining = response.headers["x-ratelimit-remaining"].to_i
|
161
|
+
@rate_limit_reset = Time.at(response.headers["x-ratelimit-reset"].to_i).to_datetime
|
162
|
+
if !@_ignore_deprecation_warning && response.headers["Recurly-Deprecated"]&.upcase == "TRUE"
|
163
|
+
puts "[recurly-client-ruby] WARNING: Your current API version \"#{api_version}\" is deprecated and will be sunset on #{response.headers["Recurly-Sunset-Date"]}"
|
163
164
|
end
|
164
165
|
response
|
165
166
|
end
|
166
167
|
|
167
168
|
def headers
|
168
169
|
{
|
169
|
-
|
170
|
-
|
171
|
-
|
170
|
+
"Accept" => "application/vnd.recurly.#{api_version}", # got this method from operations.rb
|
171
|
+
"Content-Type" => "application/json",
|
172
|
+
"User-Agent" => "Recurly/#{VERSION}; #{RUBY_DESCRIPTION}",
|
172
173
|
}.merge(@extra_headers)
|
173
174
|
end
|
174
175
|
|
175
176
|
def interpolate_path(path, **options)
|
176
177
|
options.each do |k, v|
|
178
|
+
# Check to see that we are passing the correct data types
|
179
|
+
# This prevents a confusing error if the user passes in a non-primitive by mistake
|
177
180
|
unless [String, Symbol, Integer, Float].include?(v.class)
|
178
181
|
message = "We cannot build the url with the given argument #{k}=#{v.inspect}."
|
179
182
|
if k =~ /_id$/
|
@@ -181,6 +184,8 @@ module Recurly
|
|
181
184
|
end
|
182
185
|
raise ArgumentError, message
|
183
186
|
end
|
187
|
+
# We need to encode the values for the url
|
188
|
+
options[k] = ERB::Util.url_encode(v.to_s)
|
184
189
|
end
|
185
190
|
path = path.gsub("{", "%{")
|
186
191
|
path % options
|
@@ -200,19 +205,19 @@ module Recurly
|
|
200
205
|
options = {
|
201
206
|
url: BASE_URL,
|
202
207
|
request: { timeout: 60, open_timeout: 50 },
|
203
|
-
ssl: { verify: true }
|
208
|
+
ssl: { verify: true },
|
204
209
|
}
|
205
210
|
# Let's not use the bundled cert in production yet
|
206
211
|
# but we will use these certs for any other staging or dev environment
|
207
|
-
unless BASE_URL.end_with?(
|
208
|
-
options[:ssl][:ca_file] = File.join(File.dirname(__FILE__),
|
212
|
+
unless BASE_URL.end_with?(".recurly.com")
|
213
|
+
options[:ssl][:ca_file] = File.join(File.dirname(__FILE__), "../data/ca-certificates.crt")
|
209
214
|
end
|
210
215
|
|
211
216
|
@conn = Faraday.new(options) do |faraday|
|
212
217
|
if [Logger::DEBUG, Logger::INFO].include?(@log_level)
|
213
218
|
faraday.response :logger
|
214
219
|
end
|
215
|
-
faraday.basic_auth(api_key,
|
220
|
+
faraday.basic_auth(api_key, "")
|
216
221
|
configure_net_adapter(faraday)
|
217
222
|
end
|
218
223
|
end
|
@@ -1,9 +1,10 @@
|
|
1
|
-
require
|
1
|
+
require "openssl"
|
2
2
|
|
3
3
|
module Recurly
|
4
4
|
class Client
|
5
5
|
module NetHttpPersistentAdapter
|
6
6
|
protected
|
7
|
+
|
7
8
|
def configure_net_adapter(faraday)
|
8
9
|
faraday.adapter :net_http_persistent do |http|
|
9
10
|
# yields Net::HTTP::Persistent
|
@@ -19,6 +20,7 @@ module Recurly
|
|
19
20
|
|
20
21
|
module NetHttpAdapter
|
21
22
|
protected
|
23
|
+
|
22
24
|
def configure_net_adapter(faraday)
|
23
25
|
faraday.adapter :net_http do |http|
|
24
26
|
# yields Net::HTTP
|
@@ -29,7 +31,7 @@ module Recurly
|
|
29
31
|
include NetHttpAdapter
|
30
32
|
|
31
33
|
begin
|
32
|
-
require
|
34
|
+
require "net/http/persistent"
|
33
35
|
include NetHttpPersistentAdapter
|
34
36
|
rescue LoadError
|
35
37
|
end
|
@@ -16,6 +16,7 @@ module Recurly
|
|
16
16
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
17
17
|
#
|
18
18
|
# *Important notes:*
|
19
|
+
#
|
19
20
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
20
21
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
21
22
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -59,6 +60,7 @@ module Recurly
|
|
59
60
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
60
61
|
#
|
61
62
|
# *Important notes:*
|
63
|
+
#
|
62
64
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
63
65
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
64
66
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -386,6 +388,7 @@ module Recurly
|
|
386
388
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
387
389
|
#
|
388
390
|
# *Important notes:*
|
391
|
+
#
|
389
392
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
390
393
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
391
394
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -530,6 +533,7 @@ module Recurly
|
|
530
533
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
531
534
|
#
|
532
535
|
# *Important notes:*
|
536
|
+
#
|
533
537
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
534
538
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
535
539
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -637,6 +641,7 @@ module Recurly
|
|
637
641
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
638
642
|
#
|
639
643
|
# *Important notes:*
|
644
|
+
#
|
640
645
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
641
646
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
642
647
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -713,6 +718,7 @@ module Recurly
|
|
713
718
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
714
719
|
#
|
715
720
|
# *Important notes:*
|
721
|
+
#
|
716
722
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
717
723
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
718
724
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -766,6 +772,7 @@ module Recurly
|
|
766
772
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
767
773
|
#
|
768
774
|
# *Important notes:*
|
775
|
+
#
|
769
776
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
770
777
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
771
778
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -902,6 +909,7 @@ module Recurly
|
|
902
909
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
903
910
|
#
|
904
911
|
# *Important notes:*
|
912
|
+
#
|
905
913
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
906
914
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
907
915
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -922,6 +930,7 @@ module Recurly
|
|
922
930
|
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
923
931
|
#
|
924
932
|
# @param state [String] Filter by state.
|
933
|
+
#
|
925
934
|
# - When +state=active+, +state=canceled+, +state=expired+, or +state=future+, subscriptions with states that match the query and only those subscriptions will be returned.
|
926
935
|
# - When +state=in_trial+, only subscriptions that have a trial_started_at date earlier than now and a trial_ends_at date later than now will be returned.
|
927
936
|
# - When +state=live+, only subscriptions that are in an active, canceled, or future state or are in trial will be returned.
|
@@ -950,6 +959,7 @@ module Recurly
|
|
950
959
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
951
960
|
#
|
952
961
|
# *Important notes:*
|
962
|
+
#
|
953
963
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
954
964
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
955
965
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -995,6 +1005,7 @@ module Recurly
|
|
995
1005
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
996
1006
|
#
|
997
1007
|
# *Important notes:*
|
1008
|
+
#
|
998
1009
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
999
1010
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
1000
1011
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -1020,13 +1031,13 @@ module Recurly
|
|
1020
1031
|
# @param past_due [String] Filter for accounts with an invoice in the +past_due+ state.
|
1021
1032
|
# @return [Pager<Resources::Account>] A list of an account's child accounts.
|
1022
1033
|
# @example
|
1023
|
-
#
|
1024
|
-
#
|
1025
|
-
#
|
1026
|
-
#
|
1027
|
-
#
|
1028
|
-
#
|
1029
|
-
#
|
1034
|
+
# child_accounts = @client.list_child_accounts(
|
1035
|
+
# account_id: account_id,
|
1036
|
+
# limit: 200
|
1037
|
+
# )
|
1038
|
+
# child_accounts.each do |child|
|
1039
|
+
# puts "Account: #{child.code}"
|
1040
|
+
# end
|
1030
1041
|
#
|
1031
1042
|
def list_child_accounts(account_id:, **options)
|
1032
1043
|
path = interpolate_path("/sites/{site_id}/accounts/{account_id}/accounts", site_id: site_id, account_id: account_id)
|
@@ -1041,6 +1052,7 @@ module Recurly
|
|
1041
1052
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1042
1053
|
#
|
1043
1054
|
# *Important notes:*
|
1055
|
+
#
|
1044
1056
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
1045
1057
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
1046
1058
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -1080,6 +1092,7 @@ module Recurly
|
|
1080
1092
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1081
1093
|
#
|
1082
1094
|
# *Important notes:*
|
1095
|
+
#
|
1083
1096
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
1084
1097
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
1085
1098
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -1187,6 +1200,7 @@ module Recurly
|
|
1187
1200
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1188
1201
|
#
|
1189
1202
|
# *Important notes:*
|
1203
|
+
#
|
1190
1204
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
1191
1205
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
1192
1206
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -1259,6 +1273,7 @@ module Recurly
|
|
1259
1273
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1260
1274
|
#
|
1261
1275
|
# *Important notes:*
|
1276
|
+
#
|
1262
1277
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
1263
1278
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
1264
1279
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -1279,6 +1294,12 @@ module Recurly
|
|
1279
1294
|
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
1280
1295
|
#
|
1281
1296
|
# @return [Pager<Resources::CustomFieldDefinition>] A list of the site's custom field definitions.
|
1297
|
+
# @example
|
1298
|
+
# custom_fields = @client.list_custom_field_definitions(limit: 200)
|
1299
|
+
# custom_fields.each do |field|
|
1300
|
+
# puts "CustomFieldDefinition: #{field.name}"
|
1301
|
+
# end
|
1302
|
+
#
|
1282
1303
|
def list_custom_field_definitions(**options)
|
1283
1304
|
path = interpolate_path("/sites/{site_id}/custom_field_definitions", site_id: site_id)
|
1284
1305
|
pager(path, **options)
|
@@ -1303,6 +1324,7 @@ module Recurly
|
|
1303
1324
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1304
1325
|
#
|
1305
1326
|
# *Important notes:*
|
1327
|
+
#
|
1306
1328
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
1307
1329
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
1308
1330
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -1457,7 +1479,7 @@ module Recurly
|
|
1457
1479
|
put(path)
|
1458
1480
|
end
|
1459
1481
|
|
1460
|
-
# List
|
1482
|
+
# List an invoice's line items
|
1461
1483
|
#
|
1462
1484
|
# {https://partner-docs.recurly.com/v2018-08-09#operation/list_invoice_line_items list_invoice_line_items api documenation}
|
1463
1485
|
#
|
@@ -1466,6 +1488,7 @@ module Recurly
|
|
1466
1488
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1467
1489
|
#
|
1468
1490
|
# *Important notes:*
|
1491
|
+
#
|
1469
1492
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
1470
1493
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
1471
1494
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -1503,6 +1526,7 @@ module Recurly
|
|
1503
1526
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1504
1527
|
#
|
1505
1528
|
# *Important notes:*
|
1529
|
+
#
|
1506
1530
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
1507
1531
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
1508
1532
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -1583,6 +1607,7 @@ module Recurly
|
|
1583
1607
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1584
1608
|
#
|
1585
1609
|
# *Important notes:*
|
1610
|
+
#
|
1586
1611
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
1587
1612
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
1588
1613
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -1662,6 +1687,7 @@ module Recurly
|
|
1662
1687
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1663
1688
|
#
|
1664
1689
|
# *Important notes:*
|
1690
|
+
#
|
1665
1691
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
1666
1692
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
1667
1693
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -1785,6 +1811,7 @@ module Recurly
|
|
1785
1811
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1786
1812
|
#
|
1787
1813
|
# *Important notes:*
|
1814
|
+
#
|
1788
1815
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
1789
1816
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
1790
1817
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -1889,6 +1916,7 @@ module Recurly
|
|
1889
1916
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1890
1917
|
#
|
1891
1918
|
# *Important notes:*
|
1919
|
+
#
|
1892
1920
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
1893
1921
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
1894
1922
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -1934,6 +1962,7 @@ module Recurly
|
|
1934
1962
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
1935
1963
|
#
|
1936
1964
|
# *Important notes:*
|
1965
|
+
#
|
1937
1966
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
1938
1967
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
1939
1968
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -1954,6 +1983,7 @@ module Recurly
|
|
1954
1983
|
# *Note:* this value is an ISO8601 timestamp. A partial timestamp that does not include a time zone will default to UTC.
|
1955
1984
|
#
|
1956
1985
|
# @param state [String] Filter by state.
|
1986
|
+
#
|
1957
1987
|
# - When +state=active+, +state=canceled+, +state=expired+, or +state=future+, subscriptions with states that match the query and only those subscriptions will be returned.
|
1958
1988
|
# - When +state=in_trial+, only subscriptions that have a trial_started_at date earlier than now and a trial_ends_at date later than now will be returned.
|
1959
1989
|
# - When +state=live+, only subscriptions that are in an active, canceled, or future state or are in trial will be returned.
|
@@ -2267,6 +2297,7 @@ module Recurly
|
|
2267
2297
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
2268
2298
|
#
|
2269
2299
|
# *Important notes:*
|
2300
|
+
#
|
2270
2301
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
2271
2302
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
2272
2303
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -2316,6 +2347,7 @@ module Recurly
|
|
2316
2347
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
2317
2348
|
#
|
2318
2349
|
# *Important notes:*
|
2350
|
+
#
|
2319
2351
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
2320
2352
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
2321
2353
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -2362,6 +2394,7 @@ module Recurly
|
|
2362
2394
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
2363
2395
|
#
|
2364
2396
|
# *Important notes:*
|
2397
|
+
#
|
2365
2398
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
2366
2399
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
2367
2400
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -2402,6 +2435,7 @@ module Recurly
|
|
2402
2435
|
# commas as separators, e.g. +ids=h1at4d57xlmy,gyqgg0d3v9n1,jrsm5b4yefg6+.
|
2403
2436
|
#
|
2404
2437
|
# *Important notes:*
|
2438
|
+
#
|
2405
2439
|
# * The +ids+ parameter cannot be used with any other ordering or filtering
|
2406
2440
|
# parameters (+limit+, +order+, +sort+, +begin_time+, +end_time+, etc)
|
2407
2441
|
# * Invalid or unknown IDs will be ignored, so you should check that the
|
@@ -2488,5 +2522,81 @@ module Recurly
|
|
2488
2522
|
path = interpolate_path("/sites/{site_id}/unique_coupon_codes/{unique_coupon_code_id}/restore", site_id: site_id, unique_coupon_code_id: unique_coupon_code_id)
|
2489
2523
|
put(path)
|
2490
2524
|
end
|
2525
|
+
|
2526
|
+
# Create a new purchase
|
2527
|
+
#
|
2528
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/create_purchase create_purchase api documenation}
|
2529
|
+
#
|
2530
|
+
# @param body [Requests::PurchaseCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::PurchaseCreate}
|
2531
|
+
# @return [Resources::InvoiceCollection] Returns the new invoices
|
2532
|
+
# @example
|
2533
|
+
# begin
|
2534
|
+
# purchase = {
|
2535
|
+
# currency: "USD",
|
2536
|
+
# account: {
|
2537
|
+
# code: account_code,
|
2538
|
+
# first_name: "Benjamin",
|
2539
|
+
# last_name: "Du Monde",
|
2540
|
+
# billing_info: {
|
2541
|
+
# token_id: rjs_token_id
|
2542
|
+
# },
|
2543
|
+
# },
|
2544
|
+
# subscriptions: [
|
2545
|
+
# { plan_code: plan_code }
|
2546
|
+
# ]
|
2547
|
+
# }
|
2548
|
+
# invoice_collection = @client.create_purchase(
|
2549
|
+
# body: purchase
|
2550
|
+
# )
|
2551
|
+
# puts "Created Charge Invoice #{invoice_collection.charge_invoice}"
|
2552
|
+
# puts "Created Credit Invoices #{invoice_collection.credit_invoices}"
|
2553
|
+
# rescue Recurly::Errors::ValidationError => e
|
2554
|
+
# # If the request was invalid, you may want to tell your user
|
2555
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
2556
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
2557
|
+
# end
|
2558
|
+
#
|
2559
|
+
def create_purchase(body:)
|
2560
|
+
path = interpolate_path("/sites/{site_id}/purchases", site_id: site_id)
|
2561
|
+
post(path, body, Requests::PurchaseCreate)
|
2562
|
+
end
|
2563
|
+
|
2564
|
+
# Preview a new purchase
|
2565
|
+
#
|
2566
|
+
# {https://partner-docs.recurly.com/v2018-08-09#operation/preview_purchase preview_purchase api documenation}
|
2567
|
+
#
|
2568
|
+
# @param body [Requests::PurchaseCreate] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::PurchaseCreate}
|
2569
|
+
# @return [Resources::InvoiceCollection] Returns preview of the new invoices
|
2570
|
+
# @example
|
2571
|
+
# begin
|
2572
|
+
# purchase = {
|
2573
|
+
# currency: "USD",
|
2574
|
+
# account: {
|
2575
|
+
# code: account_code,
|
2576
|
+
# first_name: "Benjamin",
|
2577
|
+
# last_name: "Du Monde",
|
2578
|
+
# billing_info: {
|
2579
|
+
# token_id: rjs_token_id
|
2580
|
+
# },
|
2581
|
+
# },
|
2582
|
+
# subscriptions: [
|
2583
|
+
# { plan_code: plan_code }
|
2584
|
+
# ]
|
2585
|
+
# }
|
2586
|
+
# invoice_collection = @client.preview_purchase(
|
2587
|
+
# body: purchase
|
2588
|
+
# )
|
2589
|
+
# puts "Preview Charge Invoice #{invoice_collection.charge_invoice}"
|
2590
|
+
# puts "Preview Credit Invoices #{invoice_collection.credit_invoices}"
|
2591
|
+
# rescue Recurly::Errors::ValidationError => e
|
2592
|
+
# # If the request was invalid, you may want to tell your user
|
2593
|
+
# # why. You can find the invalid params and reasons in e.recurly_error.params
|
2594
|
+
# puts "ValidationError: #{e.recurly_error.params}"
|
2595
|
+
# end
|
2596
|
+
#
|
2597
|
+
def preview_purchase(body:)
|
2598
|
+
path = interpolate_path("/sites/{site_id}/purchases/preview", site_id: site_id)
|
2599
|
+
post(path, body, Requests::PurchaseCreate)
|
2600
|
+
end
|
2491
2601
|
end
|
2492
2602
|
end
|