square.rb 18.0.0.20220216 → 20.0.0.20220512

Sign up to get free protection for your applications and to get access to all the features.
data/lib/square/client.rb CHANGED
@@ -4,7 +4,7 @@ module Square
4
4
  attr_reader :config
5
5
 
6
6
  def sdk_version
7
- '18.0.0.20220216'
7
+ '20.0.0.20220512'
8
8
  end
9
9
 
10
10
  def square_version
@@ -75,6 +75,12 @@ module Square
75
75
  @customers ||= CustomersApi.new config
76
76
  end
77
77
 
78
+ # Access to customer_custom_attributes controller.
79
+ # @return [CustomerCustomAttributesApi] Returns the controller instance.
80
+ def customer_custom_attributes
81
+ @customer_custom_attributes ||= CustomerCustomAttributesApi.new config
82
+ end
83
+
78
84
  # Access to customer_groups controller.
79
85
  # @return [CustomerGroupsApi] Returns the controller instance.
80
86
  def customer_groups
@@ -177,6 +183,12 @@ module Square
177
183
  @payments ||= PaymentsApi.new config
178
184
  end
179
185
 
186
+ # Access to payouts controller.
187
+ # @return [PayoutsApi] Returns the controller instance.
188
+ def payouts
189
+ @payouts ||= PayoutsApi.new config
190
+ end
191
+
180
192
  # Access to refunds controller.
181
193
  # @return [RefundsApi] Returns the controller instance.
182
194
  def refunds
@@ -213,12 +225,18 @@ module Square
213
225
  @terminal ||= TerminalApi.new config
214
226
  end
215
227
 
228
+ # Access to vendors controller.
229
+ # @return [VendorsApi] Returns the controller instance.
230
+ def vendors
231
+ @vendors ||= VendorsApi.new config
232
+ end
233
+
216
234
  def initialize(connection: nil, timeout: 60, max_retries: 0,
217
235
  retry_interval: 1, backoff_factor: 2,
218
236
  retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
219
237
  retry_methods: %i[get put], environment: 'production',
220
238
  custom_url: 'https://connect.squareup.com',
221
- square_version: '2022-02-16', access_token: '',
239
+ square_version: '2022-05-12', access_token: '',
222
240
  user_agent_detail: '', additional_headers: {}, config: nil)
223
241
  @config = if config.nil?
224
242
  Configuration.new(connection: connection, timeout: timeout,
@@ -20,7 +20,7 @@ module Square
20
20
  retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
21
21
  retry_methods: %i[get put], environment: 'production',
22
22
  custom_url: 'https://connect.squareup.com',
23
- square_version: '2022-02-16', access_token: '',
23
+ square_version: '2022-05-12', access_token: '',
24
24
  user_agent_detail: '', additional_headers: {})
25
25
  # The Faraday connection object passed by the SDK user for making requests
26
26
  @connection = connection
@@ -1,5 +1,8 @@
1
1
  require 'faraday/http_cache'
2
- require 'faraday_middleware'
2
+ require 'faraday/retry'
3
+ require 'faraday/multipart'
4
+ require 'faraday/follow_redirects'
5
+ require 'faraday/gzip'
3
6
 
4
7
  module Square
5
8
  # An implementation of HttpClient.
@@ -27,8 +30,8 @@ module Square
27
30
  cache: false, verify: true)
28
31
  Faraday.new do |faraday|
29
32
  faraday.use Faraday::HttpCache, serializer: Marshal if cache
30
- faraday.use FaradayMiddleware::FollowRedirects
31
- faraday.use :gzip
33
+ faraday.use Faraday::FollowRedirects::Middleware
34
+ faraday.request :gzip
32
35
  faraday.request :multipart
33
36
  faraday.request :url_encoded
34
37
  faraday.ssl[:ca_file] = Certifi.where
@@ -36,7 +39,10 @@ module Square
36
39
  faraday.request :retry, max: max_retries, interval: retry_interval,
37
40
  backoff_factor: backoff_factor,
38
41
  retry_statuses: retry_statuses,
39
- methods: retry_methods
42
+ methods: retry_methods,
43
+ retry_if: proc { |env, _exc|
44
+ env.request.context['forced_retry'] ||= false
45
+ }
40
46
  faraday.adapter Faraday.default_adapter
41
47
  faraday.options[:params_encoder] = Faraday::FlatParamsEncoder
42
48
  faraday.options[:timeout] = timeout if timeout.positive?
@@ -49,7 +55,9 @@ module Square
49
55
  http_request.http_method.downcase,
50
56
  http_request.query_url
51
57
  ) do |request|
52
- request.headers = http_request.headers
58
+ request.headers = http_request.headers.map { |k, v| [k.to_s, v.to_s] }
59
+ request.options.context ||= {}
60
+ request.options.context.merge!(http_request.context)
53
61
  unless http_request.http_method == HttpMethodEnum::GET &&
54
62
  http_request.parameters.empty?
55
63
  request.body = http_request.parameters
@@ -65,6 +73,8 @@ module Square
65
73
  http_request.query_url
66
74
  ) do |request|
67
75
  request.headers = http_request.headers
76
+ request.options.context ||= {}
77
+ request.options.context.merge!(http_request.context)
68
78
  unless http_request.http_method == HttpMethodEnum::GET &&
69
79
  http_request.parameters.empty?
70
80
  request.body = http_request.parameters
@@ -28,72 +28,91 @@ module Square
28
28
  # Get a GET HttpRequest object.
29
29
  # @param [String] The URL to send the request to.
30
30
  # @param [Hash, Optional] The headers for the HTTP Request.
31
+ # @param [Hash, Optional] The context for the HTTP Request.
31
32
  def get(query_url,
32
- headers: {})
33
+ headers: {},
34
+ context: {})
33
35
  HttpRequest.new(HttpMethodEnum::GET,
34
36
  query_url,
35
- headers: headers)
37
+ headers: headers,
38
+ context: context)
36
39
  end
37
40
 
38
41
  # Get a HEAD HttpRequest object.
39
42
  # @param [String] The URL to send the request to.
40
43
  # @param [Hash, Optional] The headers for the HTTP Request.
44
+ # @param [Hash, Optional] The context for the HTTP Request.
41
45
  def head(query_url,
42
- headers: {})
46
+ headers: {},
47
+ context: {})
43
48
  HttpRequest.new(HttpMethodEnum::HEAD,
44
49
  query_url,
45
- headers: headers)
50
+ headers: headers,
51
+ context: context)
46
52
  end
47
53
 
48
54
  # Get a POST HttpRequest object.
49
55
  # @param [String] The URL to send the request to.
50
56
  # @param [Hash, Optional] The headers for the HTTP Request.
51
57
  # @param [Hash, Optional] The parameters for the HTTP Request.
58
+ # @param [Hash, Optional] The context for the HTTP Request.
52
59
  def post(query_url,
53
60
  headers: {},
54
- parameters: {})
61
+ parameters: {},
62
+ context: {})
55
63
  HttpRequest.new(HttpMethodEnum::POST,
56
64
  query_url,
57
65
  headers: headers,
58
- parameters: parameters)
66
+ parameters: parameters,
67
+ context: context)
59
68
  end
60
69
 
61
70
  # Get a PUT HttpRequest object.
62
71
  # @param [String] The URL to send the request to.
63
72
  # @param [Hash, Optional] The headers for the HTTP Request.
64
73
  # @param [Hash, Optional] The parameters for the HTTP Request.
74
+ # @param [Hash, Optional] The context for the HTTP Request.
65
75
  def put(query_url,
66
76
  headers: {},
67
- parameters: {})
77
+ parameters: {},
78
+ context: {})
68
79
  HttpRequest.new(HttpMethodEnum::PUT,
69
80
  query_url,
70
81
  headers: headers,
71
- parameters: parameters)
82
+ parameters: parameters,
83
+ context: context)
72
84
  end
73
85
 
74
86
  # Get a PATCH HttpRequest object.
75
87
  # @param [String] The URL to send the request to.
76
88
  # @param [Hash, Optional] The headers for the HTTP Request.
77
89
  # @param [Hash, Optional] The parameters for the HTTP Request.
90
+ # @param [Hash, Optional] The context for the HTTP Request.
78
91
  def patch(query_url,
79
92
  headers: {},
80
- parameters: {})
93
+ parameters: {},
94
+ context: {})
81
95
  HttpRequest.new(HttpMethodEnum::PATCH,
82
96
  query_url,
83
97
  headers: headers,
84
- parameters: parameters)
98
+ parameters: parameters,
99
+ context: context)
85
100
  end
86
101
 
87
102
  # Get a DELETE HttpRequest object.
88
103
  # @param [String] The URL to send the request to.
89
104
  # @param [Hash, Optional] The headers for the HTTP Request.
105
+ # @param [Hash, Optional] The parameters for the HTTP Request.
106
+ # @param [Hash, Optional] The context for the HTTP Request.
90
107
  def delete(query_url,
91
108
  headers: {},
92
- parameters: {})
109
+ parameters: {},
110
+ context: {})
93
111
  HttpRequest.new(HttpMethodEnum::DELETE,
94
112
  query_url,
95
113
  headers: headers,
96
- parameters: parameters)
114
+ parameters: parameters,
115
+ context: context)
97
116
  end
98
117
  end
99
118
  end
@@ -2,21 +2,25 @@ module Square
2
2
  # Represents a single Http Request.
3
3
  class HttpRequest
4
4
  attr_accessor :http_method, :query_url, :headers,
5
- :parameters, :username, :password
5
+ :parameters, :username, :password,
6
+ :context
6
7
 
7
8
  # The constructor.
8
9
  # @param [HttpMethodEnum] The HTTP method.
9
10
  # @param [String] The URL to send the request to.
10
11
  # @param [Hash, Optional] The headers for the HTTP Request.
11
12
  # @param [Hash, Optional] The parameters for the HTTP Request.
13
+ # @param [Hash, Optional] The context for the HTTP Request.
12
14
  def initialize(http_method,
13
15
  query_url,
14
16
  headers: {},
15
- parameters: {})
17
+ parameters: {},
18
+ context: {})
16
19
  @http_method = http_method
17
20
  @query_url = query_url
18
21
  @headers = headers
19
22
  @parameters = parameters
23
+ @context = context
20
24
  end
21
25
 
22
26
  # Add a header to the HttpRequest.
data/lib/square.rb CHANGED
@@ -40,6 +40,7 @@ require_relative 'square/api/cards_api'
40
40
  require_relative 'square/api/cash_drawers_api'
41
41
  require_relative 'square/api/catalog_api'
42
42
  require_relative 'square/api/customers_api'
43
+ require_relative 'square/api/customer_custom_attributes_api'
43
44
  require_relative 'square/api/customer_groups_api'
44
45
  require_relative 'square/api/customer_segments_api'
45
46
  require_relative 'square/api/devices_api'
@@ -57,9 +58,11 @@ require_relative 'square/api/loyalty_api'
57
58
  require_relative 'square/api/merchants_api'
58
59
  require_relative 'square/api/orders_api'
59
60
  require_relative 'square/api/payments_api'
61
+ require_relative 'square/api/payouts_api'
60
62
  require_relative 'square/api/refunds_api'
61
63
  require_relative 'square/api/sites_api'
62
64
  require_relative 'square/api/snippets_api'
63
65
  require_relative 'square/api/subscriptions_api'
64
66
  require_relative 'square/api/team_api'
65
67
  require_relative 'square/api/terminal_api'
68
+ require_relative 'square/api/vendors_api'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: square.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 18.0.0.20220216
4
+ version: 20.0.0.20220512
5
5
  platform: ruby
6
6
  authors:
7
7
  - Square Developer Platform
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-15 00:00:00.000000000 Z
11
+ date: 2022-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logging
@@ -30,22 +30,64 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.0'
33
+ version: '2.0'
34
34
  - - ">="
35
35
  - !ruby/object:Gem::Version
36
- version: 1.0.1
36
+ version: 2.0.1
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: '1.0'
43
+ version: '2.0'
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 1.0.1
46
+ version: 2.0.1
47
+ - !ruby/object:Gem::Dependency
48
+ name: faraday-follow_redirects
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.2'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.2'
61
+ - !ruby/object:Gem::Dependency
62
+ name: faraday-multipart
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '1.0'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: faraday-gzip
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0.1'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.1'
47
89
  - !ruby/object:Gem::Dependency
48
- name: faraday_middleware
90
+ name: faraday-retry
49
91
  requirement: !ruby/object:Gem::Requirement
50
92
  requirements:
51
93
  - - "~>"
@@ -144,6 +186,7 @@ files:
144
186
  - lib/square/api/cash_drawers_api.rb
145
187
  - lib/square/api/catalog_api.rb
146
188
  - lib/square/api/checkout_api.rb
189
+ - lib/square/api/customer_custom_attributes_api.rb
147
190
  - lib/square/api/customer_groups_api.rb
148
191
  - lib/square/api/customer_segments_api.rb
149
192
  - lib/square/api/customers_api.rb
@@ -162,6 +205,7 @@ files:
162
205
  - lib/square/api/o_auth_api.rb
163
206
  - lib/square/api/orders_api.rb
164
207
  - lib/square/api/payments_api.rb
208
+ - lib/square/api/payouts_api.rb
165
209
  - lib/square/api/refunds_api.rb
166
210
  - lib/square/api/sites_api.rb
167
211
  - lib/square/api/snippets_api.rb
@@ -170,6 +214,7 @@ files:
170
214
  - lib/square/api/terminal_api.rb
171
215
  - lib/square/api/transactions_api.rb
172
216
  - lib/square/api/v1_transactions_api.rb
217
+ - lib/square/api/vendors_api.rb
173
218
  - lib/square/api_helper.rb
174
219
  - lib/square/client.rb
175
220
  - lib/square/configuration.rb
@@ -208,7 +253,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
208
253
  requirements:
209
254
  - - ">="
210
255
  - !ruby/object:Gem::Version
211
- version: '2.5'
256
+ version: '2.6'
212
257
  required_rubygems_version: !ruby/object:Gem::Requirement
213
258
  requirements:
214
259
  - - ">="