square.rb 12.0.0.20210616 → 14.1.0.20210915

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.
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
- '12.0.0.20210616'
7
+ '14.1.0.20210915'
8
8
  end
9
9
 
10
10
  def square_version
@@ -23,12 +23,6 @@ module Square
23
23
  @o_auth ||= OAuthApi.new config
24
24
  end
25
25
 
26
- # Access to v1_employees controller.
27
- # @return [V1EmployeesApi] Returns the controller instance.
28
- def v1_employees
29
- @v1_employees ||= V1EmployeesApi.new config
30
- end
31
-
32
26
  # Access to v1_transactions controller.
33
27
  # @return [V1TransactionsApi] Returns the controller instance.
34
28
  def v1_transactions
@@ -220,7 +214,7 @@ module Square
220
214
  retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
221
215
  retry_methods: %i[get put], environment: 'production',
222
216
  custom_url: 'https://connect.squareup.com',
223
- square_version: '2021-06-16', access_token: 'TODO: Replace',
217
+ square_version: '2021-09-15', access_token: 'TODO: Replace',
224
218
  additional_headers: {}, config: nil)
225
219
  @config = if config.nil?
226
220
  Configuration.new(timeout: timeout, max_retries: max_retries,
@@ -3,22 +3,15 @@ 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
17
-
6
+ attr_reader :http_client, :timeout, :max_retries, :retry_interval, :backoff_factor,
7
+ :retry_statuses, :retry_methods, :environment, :custom_url, :square_version,
8
+ :access_token,
9
+
18
10
  def additional_headers
19
11
  @additional_headers.clone
20
12
  end
21
13
 
14
+
22
15
  class << self
23
16
  attr_reader :environments
24
17
  end
@@ -28,7 +21,7 @@ module Square
28
21
  retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
29
22
  retry_methods: %i[get put], environment: 'production',
30
23
  custom_url: 'https://connect.squareup.com',
31
- square_version: '2021-06-16', access_token: 'TODO: Replace',
24
+ square_version: '2021-09-15', access_token: 'TODO: Replace',
32
25
  additional_headers: {})
33
26
  # The value to use for connection timeout
34
27
  @timeout = timeout
@@ -22,7 +22,7 @@ module Square
22
22
  methods: retry_methods
23
23
  faraday.adapter Faraday.default_adapter
24
24
  faraday.options[:params_encoder] = Faraday::FlatParamsEncoder
25
- faraday.options[:timeout] = timeout if timeout > 0
25
+ faraday.options[:timeout] = timeout if timeout.positive?
26
26
  end
27
27
  end
28
28
 
@@ -0,0 +1,151 @@
1
+ require 'date'
2
+ module Square
3
+ # A utility that supports dateTime conversion to different formats
4
+ class DateTimeHelper
5
+ # Safely converts a DateTime object into a rfc1123 format string
6
+ # @param [DateTime] The DateTime object
7
+ # @return [String] The rfc1123 formatted datetime string
8
+ def self.to_rfc1123(date_time)
9
+ date_time&.httpdate
10
+ end
11
+
12
+ # Safely converts a map of DateTime objects into a map of rfc1123 format string
13
+ # @param [hash] a map of DateTime objects
14
+ # @return [hash] a map of rfc1123 formatted datetime string
15
+ def self.to_rfc1123_map(date_time, hash, key)
16
+ return if date_time.nil?
17
+
18
+ hash[key] = {}
19
+ date_time.each do |k, v|
20
+ hash[key][k] =
21
+ if v.is_a?(BaseModel)
22
+ v.to_hash
23
+ else
24
+ v.is_a?(DateTime) ? DateTimeHelper.to_rfc1123(v) : v
25
+ end
26
+ end
27
+ hash[key]
28
+ end
29
+
30
+ # Safely converts an array of DateTime objects into an array of rfc1123 format string
31
+ # @param [Array] an array of DateTime objects
32
+ # @return [Array] an array of rfc1123 formatted datetime string
33
+ def self.to_rfc1123_array(date_time, hash, key)
34
+ return if date_time.nil?
35
+
36
+ hash[key] = date_time.map do |v|
37
+ if v.is_a?(BaseModel)
38
+ v.to_hash
39
+ else
40
+ v.is_a?(DateTime) ? DateTimeHelper.to_rfc1123(v) : v
41
+ end
42
+ end
43
+ end
44
+
45
+ # Safely converts a DateTime object into a unix format string
46
+ # @param [DateTime] The DateTime object
47
+ # @return [String] The unix formatted datetime string
48
+ def self.to_unix(date_time)
49
+ date_time.to_time.utc.to_i unless date_time.nil?
50
+ end
51
+
52
+ # Safely converts a map of DateTime objects into a map of unix format string
53
+ # @param [hash] a map of DateTime objects
54
+ # @return [hash] a map of unix formatted datetime string
55
+ def self.to_unix_map(date_time, hash, key)
56
+ return if date_time.nil?
57
+
58
+ hash[key] = {}
59
+ date_time.each do |k, v|
60
+ hash[key][k] =
61
+ if v.is_a?(BaseModel)
62
+ v.to_hash
63
+ else
64
+ v.is_a?(DateTime) ? DateTimeHelper.to_unix(v) : v
65
+ end
66
+ end
67
+ hash[key]
68
+ end
69
+
70
+ # Safely converts an array of DateTime objects into a map of unix format string
71
+ # @param [hash] an array of DateTime objects
72
+ # @return [hash] an array of unix formatted datetime string
73
+ def self.to_unix_array(date_time, hash, key)
74
+ return if date_time.nil?
75
+
76
+ hash[key] = date_time.map do |v|
77
+ if v.is_a?(BaseModel)
78
+ v.to_hash
79
+ else
80
+ v.is_a?(DateTime) ? DateTimeHelper.to_unix(v) : v
81
+ end
82
+ end
83
+ end
84
+
85
+ # Safely converts a DateTime object into a rfc3339 format string
86
+ # @param [DateTime] The DateTime object
87
+ # @return [String] The rfc3339 formatted datetime string
88
+ def self.to_rfc3339(date_time)
89
+ date_time&.rfc3339
90
+ end
91
+
92
+ # Safely converts a map of DateTime objects into a map of rfc1123 format string
93
+ # @param [hash] a map of DateTime objects
94
+ # @return [hash] a map of rfc1123 formatted datetime string
95
+ def self.to_rfc3339_map(date_time, hash, key)
96
+ return if date_time.nil?
97
+
98
+ hash[key] = {}
99
+ date_time.each do |k, v|
100
+ hash[key][k] =
101
+ if v.is_a?(BaseModel)
102
+ v.to_hash
103
+ else
104
+ v.is_a?(DateTime) ? DateTimeHelper.to_rfc3339(v) : v
105
+ end
106
+ end
107
+ hash[key]
108
+ end
109
+
110
+ # Safely converts an array of DateTime objects into an array of rfc1123 format string
111
+ # @param [Array] an array of DateTime objects
112
+ # @return [Array] an array of rfc1123 formatted datetime string
113
+ def self.to_rfc3339_array(date_time, hash, key)
114
+ return if date_time.nil?
115
+
116
+ hash[key] = date_time.map do |v|
117
+ if v.is_a?(BaseModel)
118
+ v.to_hash
119
+ else
120
+ v.is_a?(DateTime) ? DateTimeHelper.to_rfc3339(v) : v
121
+ end
122
+ end
123
+ end
124
+
125
+ # Safely converts a rfc1123 format string into a DateTime object
126
+ # @param [String] The rfc1123 formatted datetime string
127
+ # @return [DateTime] A DateTime object
128
+ def self.from_rfc1123(date_time)
129
+ DateTime.httpdate(date_time)
130
+ end
131
+
132
+ # Safely converts a unix format string into a DateTime object
133
+ # @param [String] The unix formatted datetime string
134
+ # @return [DateTime] A DateTime object
135
+ def self.from_unix(date_time)
136
+ Time.at(date_time.to_i).utc.to_datetime
137
+ end
138
+
139
+ # Safely converts a rfc3339 format string into a DateTime object
140
+ # @param [String] The rfc3339 formatted datetime string
141
+ # @return [DateTime] A DateTime object
142
+ def self.from_rfc3339(date_time)
143
+ # missing timezone information
144
+ if date_time.end_with?('Z') || date_time.index('+')
145
+ DateTime.rfc3339(date_time)
146
+ else
147
+ DateTime.rfc3339("#{date_time}Z")
148
+ end
149
+ end
150
+ end
151
+ end
@@ -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,62 +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'
11
+ require_relative 'square/utilities/file_wrapper'
12
+ require_relative 'square/utilities/date_time_helper'
12
13
 
13
14
  # Http
14
- require_relative 'square/http/api_response.rb'
15
- require_relative 'square/http/http_call_back.rb'
16
- require_relative 'square/http/http_client.rb'
17
- require_relative 'square/http/faraday_client.rb'
18
- require_relative 'square/http/http_method_enum.rb'
19
- require_relative 'square/http/http_request.rb'
20
- require_relative 'square/http/http_response.rb'
21
- 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'
22
23
 
23
24
  # Models
24
25
 
25
26
  # Exceptions
26
- require_relative 'square/exceptions/api_exception.rb'
27
+ require_relative 'square/exceptions/api_exception'
27
28
 
28
- require_relative 'square/configuration.rb'
29
+ require_relative 'square/configuration'
29
30
 
30
31
  # Controllers
31
- require_relative 'square/api/base_api.rb'
32
- require_relative 'square/api/mobile_authorization_api.rb'
33
- require_relative 'square/api/o_auth_api.rb'
34
- require_relative 'square/api/v1_employees_api.rb'
35
- require_relative 'square/api/v1_transactions_api.rb'
36
- require_relative 'square/api/apple_pay_api.rb'
37
- require_relative 'square/api/bank_accounts_api.rb'
38
- require_relative 'square/api/bookings_api.rb'
39
- require_relative 'square/api/cards_api.rb'
40
- require_relative 'square/api/cash_drawers_api.rb'
41
- require_relative 'square/api/catalog_api.rb'
42
- require_relative 'square/api/customers_api.rb'
43
- require_relative 'square/api/customer_groups_api.rb'
44
- require_relative 'square/api/customer_segments_api.rb'
45
- require_relative 'square/api/devices_api.rb'
46
- require_relative 'square/api/disputes_api.rb'
47
- require_relative 'square/api/employees_api.rb'
48
- require_relative 'square/api/gift_cards_api.rb'
49
- require_relative 'square/api/gift_card_activities_api.rb'
50
- require_relative 'square/api/inventory_api.rb'
51
- require_relative 'square/api/invoices_api.rb'
52
- require_relative 'square/api/labor_api.rb'
53
- require_relative 'square/api/locations_api.rb'
54
- require_relative 'square/api/checkout_api.rb'
55
- require_relative 'square/api/transactions_api.rb'
56
- require_relative 'square/api/loyalty_api.rb'
57
- require_relative 'square/api/merchants_api.rb'
58
- require_relative 'square/api/orders_api.rb'
59
- require_relative 'square/api/payments_api.rb'
60
- require_relative 'square/api/refunds_api.rb'
61
- require_relative 'square/api/sites_api.rb'
62
- require_relative 'square/api/snippets_api.rb'
63
- require_relative 'square/api/subscriptions_api.rb'
64
- require_relative 'square/api/team_api.rb'
65
- 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'
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: 12.0.0.20210616
4
+ version: 14.1.0.20210915
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-06-15 00:00:00.000000000 Z
11
+ date: 2021-09-16 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
@@ -183,6 +182,7 @@ files:
183
182
  - lib/square/http/http_method_enum.rb
184
183
  - lib/square/http/http_request.rb
185
184
  - lib/square/http/http_response.rb
185
+ - lib/square/utilities/date_time_helper.rb
186
186
  - lib/square/utilities/file_wrapper.rb
187
187
  - spec/user_journey_spec.rb
188
188
  - test/api/api_test_base.rb
@@ -208,14 +208,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
208
208
  requirements:
209
209
  - - ">="
210
210
  - !ruby/object:Gem::Version
211
- version: '2.0'
211
+ version: '2.5'
212
+ - - "<"
213
+ - !ruby/object:Gem::Version
214
+ version: '3.0'
212
215
  required_rubygems_version: !ruby/object:Gem::Requirement
213
216
  requirements:
214
217
  - - ">="
215
218
  - !ruby/object:Gem::Version
216
219
  version: '0'
217
220
  requirements: []
218
- rubygems_version: 3.1.4
221
+ rubygems_version: 3.1.6
219
222
  signing_key:
220
223
  specification_version: 4
221
224
  summary: square
@@ -1,362 +0,0 @@
1
- module Square
2
- # V1EmployeesApi
3
- class V1EmployeesApi < BaseApi
4
- def initialize(config, http_call_back: nil)
5
- super(config, http_call_back: http_call_back)
6
- end
7
-
8
- # Provides summary information for all of a business's employees.
9
- # @param [SortOrder] order Optional parameter: The order in which employees
10
- # are listed in the response, based on their created_at field. Default
11
- # value: ASC
12
- # @param [String] begin_updated_at Optional parameter: If filtering results
13
- # by their updated_at field, the beginning of the requested reporting
14
- # period, in ISO 8601 format
15
- # @param [String] end_updated_at Optional parameter: If filtering results by
16
- # there updated_at field, the end of the requested reporting period, in ISO
17
- # 8601 format.
18
- # @param [String] begin_created_at Optional parameter: If filtering results
19
- # by their created_at field, the beginning of the requested reporting
20
- # period, in ISO 8601 format.
21
- # @param [String] end_created_at Optional parameter: If filtering results by
22
- # their created_at field, the end of the requested reporting period, in ISO
23
- # 8601 format.
24
- # @param [V1ListEmployeesRequestStatus] status Optional parameter: If
25
- # provided, the endpoint returns only employee entities with the specified
26
- # status (ACTIVE or INACTIVE).
27
- # @param [String] external_id Optional parameter: If provided, the endpoint
28
- # returns only employee entities with the specified external_id.
29
- # @param [Integer] limit Optional parameter: The maximum integer number of
30
- # employee entities to return in a single response. Default 100, maximum
31
- # 200.
32
- # @param [String] batch_token Optional parameter: A pagination cursor to
33
- # retrieve the next set of results for your original query to the
34
- # endpoint.
35
- # @return [List of V1Employee Hash] response from the API call
36
- def list_employees(order: nil,
37
- begin_updated_at: nil,
38
- end_updated_at: nil,
39
- begin_created_at: nil,
40
- end_created_at: nil,
41
- status: nil,
42
- external_id: nil,
43
- limit: nil,
44
- batch_token: nil)
45
- # Prepare query url.
46
- _query_builder = config.get_base_uri
47
- _query_builder << '/v1/me/employees'
48
- _query_builder = APIHelper.append_url_with_query_parameters(
49
- _query_builder,
50
- 'order' => order,
51
- 'begin_updated_at' => begin_updated_at,
52
- 'end_updated_at' => end_updated_at,
53
- 'begin_created_at' => begin_created_at,
54
- 'end_created_at' => end_created_at,
55
- 'status' => status,
56
- 'external_id' => external_id,
57
- 'limit' => limit,
58
- 'batch_token' => batch_token
59
- )
60
- _query_url = APIHelper.clean_url _query_builder
61
-
62
- # Prepare headers.
63
- _headers = {
64
- 'accept' => 'application/json'
65
- }
66
-
67
- # Prepare and execute HttpRequest.
68
- _request = config.http_client.get(
69
- _query_url,
70
- headers: _headers
71
- )
72
- OAuth2.apply(config, _request)
73
- _response = execute_request(_request)
74
-
75
- # Return appropriate response type.
76
- decoded = APIHelper.json_deserialize(_response.raw_body)
77
- _errors = APIHelper.map_response(decoded, ['errors'])
78
- ApiResponse.new(
79
- _response, data: decoded, errors: _errors
80
- )
81
- end
82
-
83
- # Use the CreateEmployee endpoint to add an employee to a Square
84
- # account. Employees created with the Connect API have an initial status
85
- # of `INACTIVE`. Inactive employees cannot sign in to Square Point of Sale
86
- # until they are activated from the Square Dashboard. Employee status
87
- # cannot be changed with the Connect API.
88
- # Employee entities cannot be deleted. To disable employee profiles,
89
- # set the employee's status to <code>INACTIVE</code>
90
- # @param [V1Employee] body Required parameter: An object containing the
91
- # fields to POST for the request. See the corresponding object definition
92
- # for field details.
93
- # @return [V1Employee Hash] response from the API call
94
- def create_employee(body:)
95
- # Prepare query url.
96
- _query_builder = config.get_base_uri
97
- _query_builder << '/v1/me/employees'
98
- _query_url = APIHelper.clean_url _query_builder
99
-
100
- # Prepare headers.
101
- _headers = {
102
- 'accept' => 'application/json',
103
- 'content-type' => 'application/json; charset=utf-8'
104
- }
105
-
106
- # Prepare and execute HttpRequest.
107
- _request = config.http_client.post(
108
- _query_url,
109
- headers: _headers,
110
- parameters: body.to_json
111
- )
112
- OAuth2.apply(config, _request)
113
- _response = execute_request(_request)
114
-
115
- # Return appropriate response type.
116
- decoded = APIHelper.json_deserialize(_response.raw_body)
117
- _errors = APIHelper.map_response(decoded, ['errors'])
118
- ApiResponse.new(
119
- _response, data: decoded, errors: _errors
120
- )
121
- end
122
-
123
- # Provides the details for a single employee.
124
- # @param [String] employee_id Required parameter: The employee's ID.
125
- # @return [V1Employee Hash] response from the API call
126
- def retrieve_employee(employee_id:)
127
- # Prepare query url.
128
- _query_builder = config.get_base_uri
129
- _query_builder << '/v1/me/employees/{employee_id}'
130
- _query_builder = APIHelper.append_url_with_template_parameters(
131
- _query_builder,
132
- 'employee_id' => { 'value' => employee_id, 'encode' => true }
133
- )
134
- _query_url = APIHelper.clean_url _query_builder
135
-
136
- # Prepare headers.
137
- _headers = {
138
- 'accept' => 'application/json'
139
- }
140
-
141
- # Prepare and execute HttpRequest.
142
- _request = config.http_client.get(
143
- _query_url,
144
- headers: _headers
145
- )
146
- OAuth2.apply(config, _request)
147
- _response = execute_request(_request)
148
-
149
- # Return appropriate response type.
150
- decoded = APIHelper.json_deserialize(_response.raw_body)
151
- _errors = APIHelper.map_response(decoded, ['errors'])
152
- ApiResponse.new(
153
- _response, data: decoded, errors: _errors
154
- )
155
- end
156
-
157
- # UpdateEmployee
158
- # @param [String] employee_id Required parameter: The ID of the role to
159
- # modify.
160
- # @param [V1Employee] body Required parameter: An object containing the
161
- # fields to POST for the request. See the corresponding object definition
162
- # for field details.
163
- # @return [V1Employee Hash] response from the API call
164
- def update_employee(employee_id:,
165
- body:)
166
- # Prepare query url.
167
- _query_builder = config.get_base_uri
168
- _query_builder << '/v1/me/employees/{employee_id}'
169
- _query_builder = APIHelper.append_url_with_template_parameters(
170
- _query_builder,
171
- 'employee_id' => { 'value' => employee_id, 'encode' => true }
172
- )
173
- _query_url = APIHelper.clean_url _query_builder
174
-
175
- # Prepare headers.
176
- _headers = {
177
- 'accept' => 'application/json',
178
- 'content-type' => 'application/json; charset=utf-8'
179
- }
180
-
181
- # Prepare and execute HttpRequest.
182
- _request = config.http_client.put(
183
- _query_url,
184
- headers: _headers,
185
- parameters: body.to_json
186
- )
187
- OAuth2.apply(config, _request)
188
- _response = execute_request(_request)
189
-
190
- # Return appropriate response type.
191
- decoded = APIHelper.json_deserialize(_response.raw_body)
192
- _errors = APIHelper.map_response(decoded, ['errors'])
193
- ApiResponse.new(
194
- _response, data: decoded, errors: _errors
195
- )
196
- end
197
-
198
- # Provides summary information for all of a business's employee roles.
199
- # @param [SortOrder] order Optional parameter: The order in which employees
200
- # are listed in the response, based on their created_at field.Default value:
201
- # ASC
202
- # @param [Integer] limit Optional parameter: The maximum integer number of
203
- # employee entities to return in a single response. Default 100, maximum
204
- # 200.
205
- # @param [String] batch_token Optional parameter: A pagination cursor to
206
- # retrieve the next set of results for your original query to the
207
- # endpoint.
208
- # @return [List of V1EmployeeRole Hash] response from the API call
209
- def list_employee_roles(order: nil,
210
- limit: nil,
211
- batch_token: nil)
212
- # Prepare query url.
213
- _query_builder = config.get_base_uri
214
- _query_builder << '/v1/me/roles'
215
- _query_builder = APIHelper.append_url_with_query_parameters(
216
- _query_builder,
217
- 'order' => order,
218
- 'limit' => limit,
219
- 'batch_token' => batch_token
220
- )
221
- _query_url = APIHelper.clean_url _query_builder
222
-
223
- # Prepare headers.
224
- _headers = {
225
- 'accept' => 'application/json'
226
- }
227
-
228
- # Prepare and execute HttpRequest.
229
- _request = config.http_client.get(
230
- _query_url,
231
- headers: _headers
232
- )
233
- OAuth2.apply(config, _request)
234
- _response = execute_request(_request)
235
-
236
- # Return appropriate response type.
237
- decoded = APIHelper.json_deserialize(_response.raw_body)
238
- _errors = APIHelper.map_response(decoded, ['errors'])
239
- ApiResponse.new(
240
- _response, data: decoded, errors: _errors
241
- )
242
- end
243
-
244
- # Creates an employee role you can then assign to employees.
245
- # Square accounts can include any number of roles that can be assigned to
246
- # employees. These roles define the actions and permissions granted to an
247
- # employee with that role. For example, an employee with a "Shift Manager"
248
- # role might be able to issue refunds in Square Point of Sale, whereas an
249
- # employee with a "Clerk" role might not.
250
- # Roles are assigned with the
251
- # [V1UpdateEmployee]($e/V1Employees/UpdateEmployeeRole)
252
- # endpoint. An employee can have only one role at a time.
253
- # If an employee has no role, they have none of the permissions associated
254
- # with roles. All employees can accept payments with Square Point of Sale.
255
- # @param [V1EmployeeRole] body Required parameter: An EmployeeRole object
256
- # with a name and permissions, and an optional owner flag.
257
- # @return [V1EmployeeRole Hash] response from the API call
258
- def create_employee_role(body:)
259
- # Prepare query url.
260
- _query_builder = config.get_base_uri
261
- _query_builder << '/v1/me/roles'
262
- _query_url = APIHelper.clean_url _query_builder
263
-
264
- # Prepare headers.
265
- _headers = {
266
- 'accept' => 'application/json',
267
- 'content-type' => 'application/json; charset=utf-8'
268
- }
269
-
270
- # Prepare and execute HttpRequest.
271
- _request = config.http_client.post(
272
- _query_url,
273
- headers: _headers,
274
- parameters: body.to_json
275
- )
276
- OAuth2.apply(config, _request)
277
- _response = execute_request(_request)
278
-
279
- # Return appropriate response type.
280
- decoded = APIHelper.json_deserialize(_response.raw_body)
281
- _errors = APIHelper.map_response(decoded, ['errors'])
282
- ApiResponse.new(
283
- _response, data: decoded, errors: _errors
284
- )
285
- end
286
-
287
- # Provides the details for a single employee role.
288
- # @param [String] role_id Required parameter: The role's ID.
289
- # @return [V1EmployeeRole Hash] response from the API call
290
- def retrieve_employee_role(role_id:)
291
- # Prepare query url.
292
- _query_builder = config.get_base_uri
293
- _query_builder << '/v1/me/roles/{role_id}'
294
- _query_builder = APIHelper.append_url_with_template_parameters(
295
- _query_builder,
296
- 'role_id' => { 'value' => role_id, 'encode' => true }
297
- )
298
- _query_url = APIHelper.clean_url _query_builder
299
-
300
- # Prepare headers.
301
- _headers = {
302
- 'accept' => 'application/json'
303
- }
304
-
305
- # Prepare and execute HttpRequest.
306
- _request = config.http_client.get(
307
- _query_url,
308
- headers: _headers
309
- )
310
- OAuth2.apply(config, _request)
311
- _response = execute_request(_request)
312
-
313
- # Return appropriate response type.
314
- decoded = APIHelper.json_deserialize(_response.raw_body)
315
- _errors = APIHelper.map_response(decoded, ['errors'])
316
- ApiResponse.new(
317
- _response, data: decoded, errors: _errors
318
- )
319
- end
320
-
321
- # Modifies the details of an employee role.
322
- # @param [String] role_id Required parameter: The ID of the role to
323
- # modify.
324
- # @param [V1EmployeeRole] body Required parameter: An object containing the
325
- # fields to POST for the request. See the corresponding object definition
326
- # for field details.
327
- # @return [V1EmployeeRole Hash] response from the API call
328
- def update_employee_role(role_id:,
329
- body:)
330
- # Prepare query url.
331
- _query_builder = config.get_base_uri
332
- _query_builder << '/v1/me/roles/{role_id}'
333
- _query_builder = APIHelper.append_url_with_template_parameters(
334
- _query_builder,
335
- 'role_id' => { 'value' => role_id, 'encode' => true }
336
- )
337
- _query_url = APIHelper.clean_url _query_builder
338
-
339
- # Prepare headers.
340
- _headers = {
341
- 'accept' => 'application/json',
342
- 'content-type' => 'application/json; charset=utf-8'
343
- }
344
-
345
- # Prepare and execute HttpRequest.
346
- _request = config.http_client.put(
347
- _query_url,
348
- headers: _headers,
349
- parameters: body.to_json
350
- )
351
- OAuth2.apply(config, _request)
352
- _response = execute_request(_request)
353
-
354
- # Return appropriate response type.
355
- decoded = APIHelper.json_deserialize(_response.raw_body)
356
- _errors = APIHelper.map_response(decoded, ['errors'])
357
- ApiResponse.new(
358
- _response, data: decoded, errors: _errors
359
- )
360
- end
361
- end
362
- end