square.rb 13.1.0.20210818 → 16.0.1.20211117

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +35 -22
  4. data/lib/square/api/apple_pay_api.rb +1 -1
  5. data/lib/square/api/base_api.rb +2 -4
  6. data/lib/square/api/bookings_api.rb +64 -4
  7. data/lib/square/api/cards_api.rb +1 -1
  8. data/lib/square/api/catalog_api.rb +10 -10
  9. data/lib/square/api/checkout_api.rb +1 -1
  10. data/lib/square/api/customer_groups_api.rb +3 -3
  11. data/lib/square/api/customer_segments_api.rb +1 -1
  12. data/lib/square/api/customers_api.rb +5 -5
  13. data/lib/square/api/devices_api.rb +1 -1
  14. data/lib/square/api/disputes_api.rb +1 -1
  15. data/lib/square/api/gift_card_activities_api.rb +26 -20
  16. data/lib/square/api/gift_cards_api.rb +29 -24
  17. data/lib/square/api/inventory_api.rb +6 -6
  18. data/lib/square/api/invoices_api.rb +5 -5
  19. data/lib/square/api/labor_api.rb +6 -6
  20. data/lib/square/api/locations_api.rb +2 -2
  21. data/lib/square/api/loyalty_api.rb +9 -9
  22. data/lib/square/api/mobile_authorization_api.rb +1 -1
  23. data/lib/square/api/o_auth_api.rb +22 -15
  24. data/lib/square/api/orders_api.rb +43 -6
  25. data/lib/square/api/payments_api.rb +12 -6
  26. data/lib/square/api/refunds_api.rb +1 -1
  27. data/lib/square/api/sites_api.rb +2 -1
  28. data/lib/square/api/snippets_api.rb +1 -1
  29. data/lib/square/api/subscriptions_api.rb +159 -16
  30. data/lib/square/api/team_api.rb +6 -6
  31. data/lib/square/api/terminal_api.rb +4 -4
  32. data/lib/square/api/transactions_api.rb +0 -188
  33. data/lib/square/api/v1_transactions_api.rb +2 -2
  34. data/lib/square/api_helper.rb +1 -0
  35. data/lib/square/client.rb +6 -11
  36. data/lib/square/configuration.rb +19 -20
  37. data/lib/square/http/api_response.rb +1 -1
  38. data/lib/square/http/faraday_client.rb +20 -1
  39. data/lib/square/utilities/file_wrapper.rb +1 -2
  40. data/lib/square.rb +48 -49
  41. data/test/test_helper.rb +1 -1
  42. metadata +7 -11
  43. data/lib/square/api/v1_employees_api.rb +0 -362
@@ -3,17 +3,9 @@ module Square
3
3
  # are configured in this class.
4
4
  class Configuration
5
5
  # The attribute readers for properties.
6
- attr_reader :http_client
7
- attr_reader :timeout
8
- attr_reader :max_retries
9
- attr_reader :retry_interval
10
- attr_reader :backoff_factor
11
- attr_reader :retry_statuses
12
- attr_reader :retry_methods
13
- attr_reader :environment
14
- attr_reader :custom_url
15
- attr_reader :square_version
16
- attr_reader :access_token
6
+ attr_reader :http_client, :http_client_instance, :timeout, :max_retries, :retry_interval,
7
+ :backoff_factor, :retry_statuses, :retry_methods, :environment, :custom_url,
8
+ :square_version, :access_token
17
9
 
18
10
  def additional_headers
19
11
  @additional_headers.clone
@@ -23,13 +15,16 @@ module Square
23
15
  attr_reader :environments
24
16
  end
25
17
 
26
- def initialize(timeout: 60, max_retries: 0, retry_interval: 1,
27
- backoff_factor: 2,
18
+ def initialize(http_client_instance: nil, timeout: 60, max_retries: 0,
19
+ retry_interval: 1, backoff_factor: 2,
28
20
  retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
29
21
  retry_methods: %i[get put], environment: 'production',
30
22
  custom_url: 'https://connect.squareup.com',
31
- square_version: '2021-08-18', access_token: 'TODO: Replace',
23
+ square_version: '2021-11-17', access_token: '',
32
24
  additional_headers: {})
25
+ # The Http Client passed from the sdk user for making requests
26
+ @http_client_instance = http_client_instance
27
+
33
28
  # The value to use for connection timeout
34
29
  @timeout = timeout
35
30
 
@@ -68,10 +63,12 @@ module Square
68
63
  @http_client = create_http_client
69
64
  end
70
65
 
71
- def clone_with(timeout: nil, max_retries: nil, retry_interval: nil,
72
- backoff_factor: nil, retry_statuses: nil, retry_methods: nil,
73
- environment: nil, custom_url: nil, square_version: nil,
74
- access_token: nil, additional_headers: nil)
66
+ def clone_with(http_client_instance: nil, timeout: nil, max_retries: nil,
67
+ retry_interval: nil, backoff_factor: nil,
68
+ retry_statuses: nil, retry_methods: nil, environment: nil,
69
+ custom_url: nil, square_version: nil, access_token: nil,
70
+ additional_headers: nil)
71
+ http_client_instance ||= self.http_client_instance
75
72
  timeout ||= self.timeout
76
73
  max_retries ||= self.max_retries
77
74
  retry_interval ||= self.retry_interval
@@ -84,7 +81,8 @@ module Square
84
81
  access_token ||= self.access_token
85
82
  additional_headers ||= self.additional_headers
86
83
 
87
- Configuration.new(timeout: timeout, max_retries: max_retries,
84
+ Configuration.new(http_client_instance: http_client_instance,
85
+ timeout: timeout, max_retries: max_retries,
88
86
  retry_interval: retry_interval,
89
87
  backoff_factor: backoff_factor,
90
88
  retry_statuses: retry_statuses,
@@ -99,7 +97,8 @@ module Square
99
97
  retry_interval: retry_interval,
100
98
  backoff_factor: backoff_factor,
101
99
  retry_statuses: retry_statuses,
102
- retry_methods: retry_methods)
100
+ retry_methods: retry_methods,
101
+ http_client_instance: http_client_instance)
103
102
  end
104
103
 
105
104
  # All the environments the SDK can run in.
@@ -25,7 +25,7 @@ module Square
25
25
  end.new(*data.values)
26
26
 
27
27
  @cursor = data.fetch(:cursor, nil)
28
- data.reject! { |k| k == :cursor || k == :errors }
28
+ data.reject! { |k| %i[cursor errors].include?(k) }
29
29
  @data = Struct.new(*data.keys).new(*data.values) if data.keys.any?
30
30
  end
31
31
  else
@@ -7,7 +7,25 @@ module Square
7
7
  # The constructor.
8
8
  def initialize(timeout:, max_retries:, retry_interval:,
9
9
  backoff_factor:, retry_statuses:, retry_methods:,
10
- cache: false, verify: true)
10
+ http_client_instance: nil, cache: false, verify: true)
11
+ if http_client_instance.nil?
12
+ create_connection(timeout: timeout, max_retries: max_retries,
13
+ retry_interval: retry_interval, backoff_factor: backoff_factor,
14
+ retry_statuses: retry_statuses, retry_methods: retry_methods,
15
+ cache: cache, verify: verify)
16
+ else
17
+ if http_client_instance.instance_variable_get('@connection').nil?
18
+ raise ArgumentError,
19
+ "`connection` cannot be nil in `#{self.class}`. Please specify a valid value."
20
+ end
21
+ @connection = http_client_instance.instance_variable_get('@connection')
22
+ end
23
+ end
24
+
25
+ # Method to initialize connection.
26
+ def create_connection(timeout:, max_retries:, retry_interval:,
27
+ backoff_factor:, retry_statuses:, retry_methods:,
28
+ cache: false, verify: true)
11
29
  @connection = Faraday.new do |faraday|
12
30
  faraday.use Faraday::HttpCache, serializer: Marshal if cache
13
31
  faraday.use FaradayMiddleware::FollowRedirects
@@ -24,6 +42,7 @@ module Square
24
42
  faraday.options[:params_encoder] = Faraday::FlatParamsEncoder
25
43
  faraday.options[:timeout] = timeout if timeout.positive?
26
44
  end
45
+ @connection
27
46
  end
28
47
 
29
48
  # Method overridden from HttpClient.
@@ -1,8 +1,7 @@
1
1
  module Square
2
2
  # A utility to allow users to set the content-type for files
3
3
  class FileWrapper
4
- attr_reader :content_type
5
- attr_reader :file
4
+ attr_reader :content_type, :file
6
5
 
7
6
  def initialize(file, content_type: 'application/octet-stream')
8
7
  @file = file
data/lib/square.rb CHANGED
@@ -4,63 +4,62 @@ require 'faraday'
4
4
  require 'certifi'
5
5
  require 'logging'
6
6
 
7
- require_relative 'square/api_helper.rb'
8
- require_relative 'square/client.rb'
7
+ require_relative 'square/api_helper'
8
+ require_relative 'square/client'
9
9
 
10
10
  # Utilities
11
- require_relative 'square/utilities/file_wrapper.rb'
12
- require_relative 'square/utilities/date_time_helper.rb'
11
+ require_relative 'square/utilities/file_wrapper'
12
+ require_relative 'square/utilities/date_time_helper'
13
13
 
14
14
  # Http
15
- require_relative 'square/http/api_response.rb'
16
- require_relative 'square/http/http_call_back.rb'
17
- require_relative 'square/http/http_client.rb'
18
- require_relative 'square/http/faraday_client.rb'
19
- require_relative 'square/http/http_method_enum.rb'
20
- require_relative 'square/http/http_request.rb'
21
- require_relative 'square/http/http_response.rb'
22
- require_relative 'square/http/auth/o_auth2.rb'
15
+ require_relative 'square/http/api_response'
16
+ require_relative 'square/http/http_call_back'
17
+ require_relative 'square/http/http_client'
18
+ require_relative 'square/http/faraday_client'
19
+ require_relative 'square/http/http_method_enum'
20
+ require_relative 'square/http/http_request'
21
+ require_relative 'square/http/http_response'
22
+ require_relative 'square/http/auth/o_auth2'
23
23
 
24
24
  # Models
25
25
 
26
26
  # Exceptions
27
- require_relative 'square/exceptions/api_exception.rb'
27
+ require_relative 'square/exceptions/api_exception'
28
28
 
29
- require_relative 'square/configuration.rb'
29
+ require_relative 'square/configuration'
30
30
 
31
31
  # Controllers
32
- require_relative 'square/api/base_api.rb'
33
- require_relative 'square/api/mobile_authorization_api.rb'
34
- require_relative 'square/api/o_auth_api.rb'
35
- require_relative 'square/api/v1_employees_api.rb'
36
- require_relative 'square/api/v1_transactions_api.rb'
37
- require_relative 'square/api/apple_pay_api.rb'
38
- require_relative 'square/api/bank_accounts_api.rb'
39
- require_relative 'square/api/bookings_api.rb'
40
- require_relative 'square/api/cards_api.rb'
41
- require_relative 'square/api/cash_drawers_api.rb'
42
- require_relative 'square/api/catalog_api.rb'
43
- require_relative 'square/api/customers_api.rb'
44
- require_relative 'square/api/customer_groups_api.rb'
45
- require_relative 'square/api/customer_segments_api.rb'
46
- require_relative 'square/api/devices_api.rb'
47
- require_relative 'square/api/disputes_api.rb'
48
- require_relative 'square/api/employees_api.rb'
49
- require_relative 'square/api/gift_cards_api.rb'
50
- require_relative 'square/api/gift_card_activities_api.rb'
51
- require_relative 'square/api/inventory_api.rb'
52
- require_relative 'square/api/invoices_api.rb'
53
- require_relative 'square/api/labor_api.rb'
54
- require_relative 'square/api/locations_api.rb'
55
- require_relative 'square/api/checkout_api.rb'
56
- require_relative 'square/api/transactions_api.rb'
57
- require_relative 'square/api/loyalty_api.rb'
58
- require_relative 'square/api/merchants_api.rb'
59
- require_relative 'square/api/orders_api.rb'
60
- require_relative 'square/api/payments_api.rb'
61
- require_relative 'square/api/refunds_api.rb'
62
- require_relative 'square/api/sites_api.rb'
63
- require_relative 'square/api/snippets_api.rb'
64
- require_relative 'square/api/subscriptions_api.rb'
65
- require_relative 'square/api/team_api.rb'
66
- require_relative 'square/api/terminal_api.rb'
32
+ require_relative 'square/api/base_api'
33
+ require_relative 'square/api/mobile_authorization_api'
34
+ require_relative 'square/api/o_auth_api'
35
+ require_relative 'square/api/v1_transactions_api'
36
+ require_relative 'square/api/apple_pay_api'
37
+ require_relative 'square/api/bank_accounts_api'
38
+ require_relative 'square/api/bookings_api'
39
+ require_relative 'square/api/cards_api'
40
+ require_relative 'square/api/cash_drawers_api'
41
+ require_relative 'square/api/catalog_api'
42
+ require_relative 'square/api/customers_api'
43
+ require_relative 'square/api/customer_groups_api'
44
+ require_relative 'square/api/customer_segments_api'
45
+ require_relative 'square/api/devices_api'
46
+ require_relative 'square/api/disputes_api'
47
+ require_relative 'square/api/employees_api'
48
+ require_relative 'square/api/gift_cards_api'
49
+ require_relative 'square/api/gift_card_activities_api'
50
+ require_relative 'square/api/inventory_api'
51
+ require_relative 'square/api/invoices_api'
52
+ require_relative 'square/api/labor_api'
53
+ require_relative 'square/api/locations_api'
54
+ require_relative 'square/api/checkout_api'
55
+ require_relative 'square/api/transactions_api'
56
+ require_relative 'square/api/loyalty_api'
57
+ require_relative 'square/api/merchants_api'
58
+ require_relative 'square/api/orders_api'
59
+ require_relative 'square/api/payments_api'
60
+ require_relative 'square/api/refunds_api'
61
+ require_relative 'square/api/sites_api'
62
+ require_relative 'square/api/snippets_api'
63
+ require_relative 'square/api/subscriptions_api'
64
+ require_relative 'square/api/team_api'
65
+ require_relative 'square/api/terminal_api'
data/test/test_helper.rb CHANGED
@@ -82,7 +82,7 @@ class TestHelper
82
82
  unless @cache.keys.include? url
83
83
  @cache[url] = Tempfile.new('APIMatic')
84
84
  @cache[url].binmode
85
- @cache[url].write(open(url, {ssl_ca_cert: Certifi.where}).read)
85
+ @cache[url].write(URI.open(url, {ssl_ca_cert: Certifi.where}).read)
86
86
  end
87
87
  return @cache[url].path
88
88
  end
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: 13.1.0.20210818
4
+ version: 16.0.1.20211117
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: 2021-08-18 00:00:00.000000000 Z
11
+ date: 2021-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logging
@@ -31,9 +31,9 @@ dependencies:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.0'
34
- - - "<="
34
+ - - ">="
35
35
  - !ruby/object:Gem::Version
36
- version: 1.3.0
36
+ version: 1.0.1
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -41,9 +41,9 @@ dependencies:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
43
  version: '1.0'
44
- - - "<="
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 1.3.0
46
+ version: 1.0.1
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: faraday_middleware
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -169,7 +169,6 @@ files:
169
169
  - lib/square/api/team_api.rb
170
170
  - lib/square/api/terminal_api.rb
171
171
  - lib/square/api/transactions_api.rb
172
- - lib/square/api/v1_employees_api.rb
173
172
  - lib/square/api/v1_transactions_api.rb
174
173
  - lib/square/api_helper.rb
175
174
  - lib/square/client.rb
@@ -210,16 +209,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
210
209
  - - ">="
211
210
  - !ruby/object:Gem::Version
212
211
  version: '2.5'
213
- - - "<"
214
- - !ruby/object:Gem::Version
215
- version: '3.0'
216
212
  required_rubygems_version: !ruby/object:Gem::Requirement
217
213
  requirements:
218
214
  - - ">="
219
215
  - !ruby/object:Gem::Version
220
216
  version: '0'
221
217
  requirements: []
222
- rubygems_version: 3.1.4
218
+ rubygems_version: 3.1.6
223
219
  signing_key:
224
220
  specification_version: 4
225
221
  summary: square