square.rb 3.20190814.0 → 3.20190925.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -2
  3. data/lib/square.rb +53 -52
  4. data/lib/square/api/apple_pay_api.rb +55 -55
  5. data/lib/square/api/base_api.rb +48 -45
  6. data/lib/square/api/catalog_api.rb +461 -461
  7. data/lib/square/api/checkout_api.rb +54 -54
  8. data/lib/square/api/customers_api.rb +335 -335
  9. data/lib/square/api/employees_api.rb +91 -91
  10. data/lib/square/api/inventory_api.rb +300 -300
  11. data/lib/square/api/labor_api.rb +558 -558
  12. data/lib/square/api/locations_api.rb +117 -45
  13. data/lib/square/api/merchants_api.rb +46 -0
  14. data/lib/square/api/mobile_authorization_api.rb +56 -56
  15. data/lib/square/api/o_auth_api.rb +168 -168
  16. data/lib/square/api/orders_api.rb +271 -269
  17. data/lib/square/api/payments_api.rb +282 -282
  18. data/lib/square/api/refunds_api.rb +149 -149
  19. data/lib/square/api/reporting_api.rb +145 -143
  20. data/lib/square/api/transactions_api.rb +379 -379
  21. data/lib/square/api/v1_employees_api.rb +720 -720
  22. data/lib/square/api/v1_items_api.rb +1651 -1651
  23. data/lib/square/api/v1_locations_api.rb +67 -67
  24. data/lib/square/api/v1_transactions_api.rb +574 -574
  25. data/lib/square/api_helper.rb +281 -281
  26. data/lib/square/client.rb +155 -139
  27. data/lib/square/configuration.rb +98 -88
  28. data/lib/square/exceptions/api_exception.rb +20 -20
  29. data/lib/square/http/api_response.rb +50 -50
  30. data/lib/square/http/auth/o_auth2.rb +17 -17
  31. data/lib/square/http/faraday_client.rb +64 -64
  32. data/lib/square/http/http_call_back.rb +24 -24
  33. data/lib/square/http/http_client.rb +104 -104
  34. data/lib/square/http/http_method_enum.rb +13 -13
  35. data/lib/square/http/http_request.rb +50 -50
  36. data/lib/square/http/http_response.rb +29 -29
  37. data/test/api/test_labor_api.rb +74 -0
  38. metadata +4 -3
  39. data/lib/square/api/v1_locations_api.rbe +0 -67
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 33099a0e16c25ba35d216989810fb5e1dae8815826150e82416dc157b2a2b02c
4
- data.tar.gz: 01a39f1658f8034bec05ba6b47e86d2b1d70cf94cc148aab8e3d3624898322ea
3
+ metadata.gz: beb32cc7558c26d539366f22c17808aa9a146aef2cc4096fb4ad30580eb95a60
4
+ data.tar.gz: 527c69329e6126ca6c8cd96a874b3ebd024be76b97f0f75435dca9649d692c9d
5
5
  SHA512:
6
- metadata.gz: 19c553ca1efa1c9a740c6a751a4eacf53b60b70ea67f3b6ed33b87ed69fa7c360ae049e30b955a81c049eb72d6c34c17c0b589ebc2007cc096192b0a43e29ca7
7
- data.tar.gz: 988949820b6b8a5cb22f6158f83c66b875a4fbcbb01ff8b067a65e3169af418f4e20ecbbc5080b20b4adba0fa64cfdf50ef82282988cedb25c2a424e5ef03a91
6
+ metadata.gz: c4f5f6f3b975c1a2d12ee13681454f15ecfcc14846322b865b0604ef737a8574eb125decc816de80c6a51d9d44ea473fcddfaaed0cc4e77a1f7bac0462400cbd
7
+ data.tar.gz: 6e1140b5ba8204d3acda52e06762916bd4a490e66498972bc1cd7c1886055697f1a4ee798b341422143203fa6e47ae4ea457d818024431ee61b8d439b1093885
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  # Square Ruby SDK
4
4
 
5
5
  [![Travis status](https://travis-ci.org/square/square-ruby-sdk.svg?branch=master)](https://travis-ci.org/square/square-ruby-sdk)
6
- [![Gem version](https://badge.fury.io/rb/square.rb.svg)](https://badge.fury.io/rb/square.rb)
6
+ [![Gem version](https://badge.fury.io/rb/square.rb.svg?new)](https://badge.fury.io/rb/square.rb)
7
7
  [![Apache-2 license](https://img.shields.io/badge/license-Apache2-brightgreen.svg)](https://www.apache.org/licenses/LICENSE-2.0)
8
8
 
9
9
  Use this gem to integrate Square payments into your app and grow your business with Square APIs including Catalog, Customers, Employees, Inventory, Labor, Locations, and Orders.
@@ -40,8 +40,10 @@ gem 'square.rb'
40
40
  * [Inventory]
41
41
  * [Labor]
42
42
  * [Locations]
43
+ * [Merchants]
43
44
  * [Orders]
44
45
  * [Apple Pay]
46
+ * [Refunds]
45
47
  * [Reporting]
46
48
 
47
49
  ### Authorization APIs
@@ -212,7 +214,7 @@ If your call succeeds, you’ll see a response that looks like this:
212
214
  API calls return a response object that contains properties that describe both the request (headers and request) and the response (status_code, reason_phrase, text, errors, body, and cursor). The response also has #success? and #error? helper methods so you can easily determine the success or failure of a call:
213
215
 
214
216
  ```ruby
215
- if result.is_success?
217
+ if result.success?
216
218
  p result.data
217
219
  elsif result.error?
218
220
  warn result.errors.inspect
@@ -269,8 +271,10 @@ You can also use the Square API to create applications or services that work wit
269
271
  [Inventory]: doc/inventory.md
270
272
  [Labor]: doc/labor.md
271
273
  [Locations]: doc/locations.md
274
+ [Merchants]: doc/merchants.md
272
275
  [Orders]: doc/orders.md
273
276
  [Apple Pay]: doc/apple-pay.md
277
+ [Refunds]: doc/refunds.md
274
278
  [Reporting]: doc/reporting.md
275
279
  [Mobile Authorization]: doc/mobile-authorization.md
276
280
  [O Auth]: doc/o-auth.md
@@ -1,52 +1,53 @@
1
- # square
2
- #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
5
-
6
- require 'date'
7
- require 'json'
8
- require 'faraday'
9
- require 'certifi'
10
- require 'logging'
11
-
12
- require_relative 'square/api_helper.rb'
13
- require_relative 'square/client.rb'
14
-
15
- # Http
16
- require_relative 'square/http/api_response.rb'
17
- require_relative 'square/http/http_call_back.rb'
18
- require_relative 'square/http/http_client.rb'
19
- require_relative 'square/http/faraday_client.rb'
20
- require_relative 'square/http/http_method_enum.rb'
21
- require_relative 'square/http/http_request.rb'
22
- require_relative 'square/http/http_response.rb'
23
- require_relative 'square/http/auth/o_auth2.rb'
24
-
25
- # Models
26
-
27
- # Exceptions
28
- require_relative 'square/exceptions/api_exception.rb'
29
-
30
- require_relative 'square/configuration.rb'
31
-
32
- # Controllers
33
- require_relative 'square/api/base_api.rb'
34
- require_relative 'square/api/mobile_authorization_api.rb'
35
- require_relative 'square/api/o_auth_api.rb'
36
- require_relative 'square/api/v1_locations_api.rb'
37
- require_relative 'square/api/v1_employees_api.rb'
38
- require_relative 'square/api/v1_transactions_api.rb'
39
- require_relative 'square/api/v1_items_api.rb'
40
- require_relative 'square/api/apple_pay_api.rb'
41
- require_relative 'square/api/catalog_api.rb'
42
- require_relative 'square/api/customers_api.rb'
43
- require_relative 'square/api/employees_api.rb'
44
- require_relative 'square/api/inventory_api.rb'
45
- require_relative 'square/api/labor_api.rb'
46
- require_relative 'square/api/locations_api.rb'
47
- require_relative 'square/api/reporting_api.rb'
48
- require_relative 'square/api/checkout_api.rb'
49
- require_relative 'square/api/orders_api.rb'
50
- require_relative 'square/api/transactions_api.rb'
51
- require_relative 'square/api/payments_api.rb'
52
- require_relative 'square/api/refunds_api.rb'
1
+ # square
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ require 'date'
7
+ require 'json'
8
+ require 'faraday'
9
+ require 'certifi'
10
+ require 'logging'
11
+
12
+ require_relative 'square/api_helper.rb'
13
+ require_relative 'square/client.rb'
14
+
15
+ # Http
16
+ require_relative 'square/http/api_response.rb'
17
+ require_relative 'square/http/http_call_back.rb'
18
+ require_relative 'square/http/http_client.rb'
19
+ require_relative 'square/http/faraday_client.rb'
20
+ require_relative 'square/http/http_method_enum.rb'
21
+ require_relative 'square/http/http_request.rb'
22
+ require_relative 'square/http/http_response.rb'
23
+ require_relative 'square/http/auth/o_auth2.rb'
24
+
25
+ # Models
26
+
27
+ # Exceptions
28
+ require_relative 'square/exceptions/api_exception.rb'
29
+
30
+ require_relative 'square/configuration.rb'
31
+
32
+ # Controllers
33
+ require_relative 'square/api/base_api.rb'
34
+ require_relative 'square/api/mobile_authorization_api.rb'
35
+ require_relative 'square/api/o_auth_api.rb'
36
+ require_relative 'square/api/v1_locations_api.rb'
37
+ require_relative 'square/api/v1_employees_api.rb'
38
+ require_relative 'square/api/v1_transactions_api.rb'
39
+ require_relative 'square/api/v1_items_api.rb'
40
+ require_relative 'square/api/apple_pay_api.rb'
41
+ require_relative 'square/api/catalog_api.rb'
42
+ require_relative 'square/api/customers_api.rb'
43
+ require_relative 'square/api/employees_api.rb'
44
+ require_relative 'square/api/inventory_api.rb'
45
+ require_relative 'square/api/labor_api.rb'
46
+ require_relative 'square/api/locations_api.rb'
47
+ require_relative 'square/api/reporting_api.rb'
48
+ require_relative 'square/api/checkout_api.rb'
49
+ require_relative 'square/api/orders_api.rb'
50
+ require_relative 'square/api/transactions_api.rb'
51
+ require_relative 'square/api/merchants_api.rb'
52
+ require_relative 'square/api/payments_api.rb'
53
+ require_relative 'square/api/refunds_api.rb'
@@ -1,55 +1,55 @@
1
- # square
2
- #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
5
-
6
- module Square
7
- # ApplePayApi
8
- class ApplePayApi < BaseApi
9
- def initialize(config, http_call_back: nil)
10
- super(config, http_call_back: http_call_back)
11
- end
12
-
13
- # Activates a domain for use with Web Apple Pay and Square. A validation
14
- # will be performed on this domain by Apple to ensure is it properly set up
15
- # as
16
- # an Apple Pay enabled domain.
17
- # This endpoint provides an easy way for platform developers to bulk
18
- # activate
19
- # Web Apple Pay with Square for merchants using their platform.
20
- # To learn more about Apple Pay on Web see the Apple Pay section in the
21
- # [Embedding the Square Payment
22
- # Form](https://developer.squareup.com/docs/payment-form/add-digital-wallets
23
- # /apple-pay) guide.
24
- # @param [RegisterDomainRequest] body Required parameter: An object
25
- # containing the fields to POST for the request. See the corresponding
26
- # object definition for field details.
27
- # @return [RegisterDomainResponse Hash] response from the API call
28
- def register_domain(body:)
29
- # Prepare query url.
30
- _query_builder = config.get_base_uri
31
- _query_builder << '/v2/apple-pay/domains'
32
- _query_url = APIHelper.clean_url _query_builder
33
-
34
- # Prepare headers.
35
- _headers = {
36
- 'accept' => 'application/json',
37
- 'content-type' => 'application/json; charset=utf-8'
38
- }
39
-
40
- # Prepare and execute HttpRequest.
41
- _request = config.http_client.post(
42
- _query_url,
43
- headers: _headers,
44
- parameters: body.to_json
45
- )
46
- OAuth2.apply(config, _request)
47
- _response = execute_request(_request)
48
-
49
- # Return appropriate response type.
50
- decoded = APIHelper.json_deserialize(_response.raw_body)
51
- _errors = APIHelper.map_response(decoded, ['errors'])
52
- ApiResponse.new(_response, data: decoded, errors: _errors)
53
- end
54
- end
55
- end
1
+ # square
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module Square
7
+ # ApplePayApi
8
+ class ApplePayApi < BaseApi
9
+ def initialize(config, http_call_back: nil)
10
+ super(config, http_call_back: http_call_back)
11
+ end
12
+
13
+ # Activates a domain for use with Web Apple Pay and Square. A validation
14
+ # will be performed on this domain by Apple to ensure is it properly set up
15
+ # as
16
+ # an Apple Pay enabled domain.
17
+ # This endpoint provides an easy way for platform developers to bulk
18
+ # activate
19
+ # Web Apple Pay with Square for merchants using their platform.
20
+ # To learn more about Apple Pay on Web see the Apple Pay section in the
21
+ # [Embedding the Square Payment
22
+ # Form](https://developer.squareup.com/docs/payment-form/add-digital-wallets
23
+ # /apple-pay) guide.
24
+ # @param [RegisterDomainRequest] body Required parameter: An object
25
+ # containing the fields to POST for the request. See the corresponding
26
+ # object definition for field details.
27
+ # @return [RegisterDomainResponse Hash] response from the API call
28
+ def register_domain(body:)
29
+ # Prepare query url.
30
+ _query_builder = config.get_base_uri
31
+ _query_builder << '/v2/apple-pay/domains'
32
+ _query_url = APIHelper.clean_url _query_builder
33
+
34
+ # Prepare headers.
35
+ _headers = {
36
+ 'accept' => 'application/json',
37
+ 'content-type' => 'application/json; charset=utf-8'
38
+ }
39
+
40
+ # Prepare and execute HttpRequest.
41
+ _request = config.http_client.post(
42
+ _query_url,
43
+ headers: _headers,
44
+ parameters: body.to_json
45
+ )
46
+ OAuth2.apply(config, _request)
47
+ _response = execute_request(_request)
48
+
49
+ # Return appropriate response type.
50
+ decoded = APIHelper.json_deserialize(_response.raw_body)
51
+ _errors = APIHelper.map_response(decoded, ['errors'])
52
+ ApiResponse.new(_response, data: decoded, errors: _errors)
53
+ end
54
+ end
55
+ end
@@ -1,45 +1,48 @@
1
- # square
2
- #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
5
-
6
- module Square
7
- # BaseApi.
8
- class BaseApi
9
- attr_accessor :config, :http_call_back
10
-
11
- def initialize(config, http_call_back: nil)
12
- @config = config
13
- @http_call_back = http_call_back
14
-
15
- @global_headers = {
16
- 'user-agent' => 'Square-Connect-Ruby-3.20190814.0',
17
- 'Square-Version' => '2019-08-14'
18
- }
19
- end
20
-
21
- def validate_parameters(args)
22
- args.each do |_name, value|
23
- if value.nil?
24
- raise ArgumentError, "Required parameter #{_name} cannot be nil."
25
- end
26
- end
27
- end
28
-
29
- def execute_request(request, binary: false)
30
- @http_call_back.on_before_request(request) if @http_call_back
31
-
32
- APIHelper.clean_hash(request.headers)
33
- request.headers = @global_headers.clone.merge(request.headers)
34
-
35
- response = if binary
36
- config.http_client.execute_as_binary(request)
37
- else
38
- config.http_client.execute_as_string(request)
39
- end
40
- @http_call_back.on_after_response(response) if @http_call_back
41
-
42
- response
43
- end
44
- end
45
- end
1
+ # square
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module Square
7
+ # BaseApi.
8
+ class BaseApi
9
+ attr_accessor :config, :http_call_back
10
+
11
+ def initialize(config, http_call_back: nil)
12
+ @config = config
13
+ @http_call_back = http_call_back
14
+
15
+ @global_headers = {
16
+ 'user-agent' => 'Square-Ruby-SDK/3.20190925.0',
17
+ 'Square-Version' => '2019-09-25'
18
+ }
19
+ end
20
+
21
+ def validate_parameters(args)
22
+ args.each do |_name, value|
23
+ if value.nil?
24
+ raise ArgumentError, "Required parameter #{_name} cannot be nil."
25
+ end
26
+ end
27
+ end
28
+
29
+ def execute_request(request, binary: false)
30
+ @http_call_back.on_before_request(request) if @http_call_back
31
+
32
+ APIHelper.clean_hash(request.headers)
33
+ request.headers.merge!(@global_headers)
34
+ unless config.additional_headers.nil?
35
+ request.headers.merge!(config.additional_headers)
36
+ end
37
+
38
+ response = if binary
39
+ config.http_client.execute_as_binary(request)
40
+ else
41
+ config.http_client.execute_as_string(request)
42
+ end
43
+ @http_call_back.on_after_response(response) if @http_call_back
44
+
45
+ response
46
+ end
47
+ end
48
+ end
@@ -1,461 +1,461 @@
1
- # square
2
- #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
5
-
6
- module Square
7
- # CatalogApi
8
- class CatalogApi < BaseApi
9
- def initialize(config, http_call_back: nil)
10
- super(config, http_call_back: http_call_back)
11
- end
12
-
13
- # Deletes a set of [CatalogItem](#type-catalogitem)s based on the
14
- # provided list of target IDs and returns a set of successfully deleted IDs
15
- # in
16
- # the response. Deletion is a cascading event such that all children of the
17
- # targeted object are also deleted. For example, deleting a CatalogItem will
18
- # also delete all of its [CatalogItemVariation](#type-catalogitemvariation)
19
- # children.
20
- # `BatchDeleteCatalogObjects` succeeds even if only a portion of the
21
- # targeted
22
- # IDs can be deleted. The response will only include IDs that were
23
- # actually deleted.
24
- # @param [BatchDeleteCatalogObjectsRequest] body Required parameter: An
25
- # object containing the fields to POST for the request. See the
26
- # corresponding object definition for field details.
27
- # @return [BatchDeleteCatalogObjectsResponse Hash] response from the API call
28
- def batch_delete_catalog_objects(body:)
29
- # Prepare query url.
30
- _query_builder = config.get_base_uri
31
- _query_builder << '/v2/catalog/batch-delete'
32
- _query_url = APIHelper.clean_url _query_builder
33
-
34
- # Prepare headers.
35
- _headers = {
36
- 'accept' => 'application/json',
37
- 'content-type' => 'application/json; charset=utf-8'
38
- }
39
-
40
- # Prepare and execute HttpRequest.
41
- _request = config.http_client.post(
42
- _query_url,
43
- headers: _headers,
44
- parameters: body.to_json
45
- )
46
- OAuth2.apply(config, _request)
47
- _response = execute_request(_request)
48
-
49
- # Return appropriate response type.
50
- decoded = APIHelper.json_deserialize(_response.raw_body)
51
- _errors = APIHelper.map_response(decoded, ['errors'])
52
- ApiResponse.new(_response, data: decoded, errors: _errors)
53
- end
54
-
55
- # Returns a set of objects based on the provided ID.
56
- # Each [CatalogItem](#type-catalogitem) returned in the set includes all of
57
- # its
58
- # child information including: all of its
59
- # [CatalogItemVariation](#type-catalogitemvariation) objects, references to
60
- # its [CatalogModifierList](#type-catalogmodifierlist) objects, and the ids
61
- # of
62
- # any [CatalogTax](#type-catalogtax) objects that apply to it.
63
- # @param [BatchRetrieveCatalogObjectsRequest] body Required parameter: An
64
- # object containing the fields to POST for the request. See the
65
- # corresponding object definition for field details.
66
- # @return [BatchRetrieveCatalogObjectsResponse Hash] response from the API call
67
- def batch_retrieve_catalog_objects(body:)
68
- # Prepare query url.
69
- _query_builder = config.get_base_uri
70
- _query_builder << '/v2/catalog/batch-retrieve'
71
- _query_url = APIHelper.clean_url _query_builder
72
-
73
- # Prepare headers.
74
- _headers = {
75
- 'accept' => 'application/json',
76
- 'content-type' => 'application/json; charset=utf-8'
77
- }
78
-
79
- # Prepare and execute HttpRequest.
80
- _request = config.http_client.post(
81
- _query_url,
82
- headers: _headers,
83
- parameters: body.to_json
84
- )
85
- OAuth2.apply(config, _request)
86
- _response = execute_request(_request)
87
-
88
- # Return appropriate response type.
89
- decoded = APIHelper.json_deserialize(_response.raw_body)
90
- _errors = APIHelper.map_response(decoded, ['errors'])
91
- ApiResponse.new(_response, data: decoded, errors: _errors)
92
- end
93
-
94
- # Creates or updates up to 10,000 target objects based on the provided
95
- # list of objects. The target objects are grouped into batches and each
96
- # batch is
97
- # inserted/updated in an all-or-nothing manner. If an object within a batch
98
- # is
99
- # malformed in some way, or violates a database constraint, the entire batch
100
- # containing that item will be disregarded. However, other batches in the
101
- # same
102
- # request may still succeed. Each batch may contain up to 1,000 objects, and
103
- # batches will be processed in order as long as the total object count for
104
- # the
105
- # request (items, variations, modifier lists, discounts, and taxes) is no
106
- # more
107
- # than 10,000.
108
- # @param [BatchUpsertCatalogObjectsRequest] body Required parameter: An
109
- # object containing the fields to POST for the request. See the
110
- # corresponding object definition for field details.
111
- # @return [BatchUpsertCatalogObjectsResponse Hash] response from the API call
112
- def batch_upsert_catalog_objects(body:)
113
- # Prepare query url.
114
- _query_builder = config.get_base_uri
115
- _query_builder << '/v2/catalog/batch-upsert'
116
- _query_url = APIHelper.clean_url _query_builder
117
-
118
- # Prepare headers.
119
- _headers = {
120
- 'accept' => 'application/json',
121
- 'content-type' => 'application/json; charset=utf-8'
122
- }
123
-
124
- # Prepare and execute HttpRequest.
125
- _request = config.http_client.post(
126
- _query_url,
127
- headers: _headers,
128
- parameters: body.to_json
129
- )
130
- OAuth2.apply(config, _request)
131
- _response = execute_request(_request)
132
-
133
- # Return appropriate response type.
134
- decoded = APIHelper.json_deserialize(_response.raw_body)
135
- _errors = APIHelper.map_response(decoded, ['errors'])
136
- ApiResponse.new(_response, data: decoded, errors: _errors)
137
- end
138
-
139
- # Returns information about the Square Catalog API, such as batch size
140
- # limits for `BatchUpsertCatalogObjects`.
141
- # @return [CatalogInfoResponse Hash] response from the API call
142
- def catalog_info
143
- # Prepare query url.
144
- _query_builder = config.get_base_uri
145
- _query_builder << '/v2/catalog/info'
146
- _query_url = APIHelper.clean_url _query_builder
147
-
148
- # Prepare headers.
149
- _headers = {
150
- 'accept' => 'application/json'
151
- }
152
-
153
- # Prepare and execute HttpRequest.
154
- _request = config.http_client.get(
155
- _query_url,
156
- headers: _headers
157
- )
158
- OAuth2.apply(config, _request)
159
- _response = execute_request(_request)
160
-
161
- # Return appropriate response type.
162
- decoded = APIHelper.json_deserialize(_response.raw_body)
163
- _errors = APIHelper.map_response(decoded, ['errors'])
164
- ApiResponse.new(_response, data: decoded, errors: _errors)
165
- end
166
-
167
- # Returns a list of [CatalogObject](#type-catalogobject)s that includes
168
- # all objects of a set of desired types (for example, all
169
- # [CatalogItem](#type-catalogitem)
170
- # and [CatalogTax](#type-catalogtax) objects) in the catalog. The `types`
171
- # parameter
172
- # is specified as a comma-separated list of valid
173
- # [CatalogObject](#type-catalogobject) types:
174
- # `ITEM`, `ITEM_VARIATION`, `MODIFIER`, `MODIFIER_LIST`, `CATEGORY`,
175
- # `DISCOUNT`, `TAX`.
176
- # __Important:__ ListCatalog does not return deleted catalog items. To
177
- # retrieve
178
- # deleted catalog items, use SearchCatalogObjects and set
179
- # `include_deleted_objects`
180
- # to `true`.
181
- # @param [String] cursor Optional parameter: The pagination cursor returned
182
- # in the previous response. Leave unset for an initial request. See
183
- # [Pagination](https://developer.squareup.com/docs/basics/api101/pagination)
184
- # for more information.
185
- # @param [String] types Optional parameter: An optional case-insensitive,
186
- # comma-separated list of object types to retrieve, for example
187
- # `ITEM,ITEM_VARIATION,CATEGORY,IMAGE`. The legal values are taken from the
188
- # [CatalogObjectType](#type-catalogobjecttype) enumeration, namely `ITEM`,
189
- # `ITEM_VARIATION`, `CATEGORY`, `DISCOUNT`, `TAX`, `MODIFIER`,
190
- # `MODIFIER_LIST`, or `IMAGE`.
191
- # @return [ListCatalogResponse Hash] response from the API call
192
- def list_catalog(cursor: nil,
193
- types: nil)
194
- # Prepare query url.
195
- _query_builder = config.get_base_uri
196
- _query_builder << '/v2/catalog/list'
197
- _query_builder = APIHelper.append_url_with_query_parameters(
198
- _query_builder,
199
- 'cursor' => cursor,
200
- 'types' => types
201
- )
202
- _query_url = APIHelper.clean_url _query_builder
203
-
204
- # Prepare headers.
205
- _headers = {
206
- 'accept' => 'application/json'
207
- }
208
-
209
- # Prepare and execute HttpRequest.
210
- _request = config.http_client.get(
211
- _query_url,
212
- headers: _headers
213
- )
214
- OAuth2.apply(config, _request)
215
- _response = execute_request(_request)
216
-
217
- # Return appropriate response type.
218
- decoded = APIHelper.json_deserialize(_response.raw_body)
219
- _errors = APIHelper.map_response(decoded, ['errors'])
220
- ApiResponse.new(_response, data: decoded, errors: _errors)
221
- end
222
-
223
- # Creates or updates the target [CatalogObject](#type-catalogobject).
224
- # @param [UpsertCatalogObjectRequest] body Required parameter: An object
225
- # containing the fields to POST for the request. See the corresponding
226
- # object definition for field details.
227
- # @return [UpsertCatalogObjectResponse Hash] response from the API call
228
- def upsert_catalog_object(body:)
229
- # Prepare query url.
230
- _query_builder = config.get_base_uri
231
- _query_builder << '/v2/catalog/object'
232
- _query_url = APIHelper.clean_url _query_builder
233
-
234
- # Prepare headers.
235
- _headers = {
236
- 'accept' => 'application/json',
237
- 'content-type' => 'application/json; charset=utf-8'
238
- }
239
-
240
- # Prepare and execute HttpRequest.
241
- _request = config.http_client.post(
242
- _query_url,
243
- headers: _headers,
244
- parameters: body.to_json
245
- )
246
- OAuth2.apply(config, _request)
247
- _response = execute_request(_request)
248
-
249
- # Return appropriate response type.
250
- decoded = APIHelper.json_deserialize(_response.raw_body)
251
- _errors = APIHelper.map_response(decoded, ['errors'])
252
- ApiResponse.new(_response, data: decoded, errors: _errors)
253
- end
254
-
255
- # Deletes a single [CatalogObject](#type-catalogobject) based on the
256
- # provided ID and returns the set of successfully deleted IDs in the
257
- # response.
258
- # Deletion is a cascading event such that all children of the targeted
259
- # object
260
- # are also deleted. For example, deleting a [CatalogItem](#type-catalogitem)
261
- # will also delete all of its
262
- # [CatalogItemVariation](#type-catalogitemvariation) children.
263
- # @param [String] object_id Required parameter: The ID of the
264
- # [CatalogObject](#type-catalogobject) to be deleted. When an object is
265
- # deleted, other objects in the graph that depend on that object will be
266
- # deleted as well (for example, deleting a [CatalogItem](#type-catalogitem)
267
- # will delete its [CatalogItemVariation](#type-catalogitemvariation)s).
268
- # @return [DeleteCatalogObjectResponse Hash] response from the API call
269
- def delete_catalog_object(object_id:)
270
- # Prepare query url.
271
- _query_builder = config.get_base_uri
272
- _query_builder << '/v2/catalog/object/{object_id}'
273
- _query_builder = APIHelper.append_url_with_template_parameters(
274
- _query_builder,
275
- 'object_id' => object_id
276
- )
277
- _query_url = APIHelper.clean_url _query_builder
278
-
279
- # Prepare headers.
280
- _headers = {
281
- 'accept' => 'application/json'
282
- }
283
-
284
- # Prepare and execute HttpRequest.
285
- _request = config.http_client.delete(
286
- _query_url,
287
- headers: _headers
288
- )
289
- OAuth2.apply(config, _request)
290
- _response = execute_request(_request)
291
-
292
- # Return appropriate response type.
293
- decoded = APIHelper.json_deserialize(_response.raw_body)
294
- _errors = APIHelper.map_response(decoded, ['errors'])
295
- ApiResponse.new(_response, data: decoded, errors: _errors)
296
- end
297
-
298
- # Returns a single [CatalogItem](#type-catalogitem) as a
299
- # [CatalogObject](#type-catalogobject) based on the provided ID. The
300
- # returned
301
- # object includes all of the relevant [CatalogItem](#type-catalogitem)
302
- # information including: [CatalogItemVariation](#type-catalogitemvariation)
303
- # children, references to its
304
- # [CatalogModifierList](#type-catalogmodifierlist) objects, and the ids of
305
- # any [CatalogTax](#type-catalogtax) objects that apply to it.
306
- # @param [String] object_id Required parameter: The object ID of any type of
307
- # [CatalogObject](#type-catalogobject)s to be retrieved.
308
- # @param [Boolean] include_related_objects Optional parameter: If `true`,
309
- # the response will include additional objects that are related to the
310
- # requested object, as follows: If the `object` field of the response
311
- # contains a [CatalogItem](#type-catalogitem), its associated
312
- # [CatalogCategory](#type-catalogcategory),
313
- # [CatalogTax](#type-catalogtax)es, [CatalogImage](#type-catalogimage)s and
314
- # [CatalogModifierList](#type-catalogmodifierlist)s will be returned in the
315
- # `related_objects` field of the response. If the `object` field of the
316
- # response contains a [CatalogItemVariation](#type-catalogitemvariation),
317
- # its parent [CatalogItem](#type-catalogitem) will be returned in the
318
- # `related_objects` field of the response. Default value: `false`
319
- # @return [RetrieveCatalogObjectResponse Hash] response from the API call
320
- def retrieve_catalog_object(object_id:,
321
- include_related_objects: nil)
322
- # Prepare query url.
323
- _query_builder = config.get_base_uri
324
- _query_builder << '/v2/catalog/object/{object_id}'
325
- _query_builder = APIHelper.append_url_with_template_parameters(
326
- _query_builder,
327
- 'object_id' => object_id
328
- )
329
- _query_builder = APIHelper.append_url_with_query_parameters(
330
- _query_builder,
331
- 'include_related_objects' => include_related_objects
332
- )
333
- _query_url = APIHelper.clean_url _query_builder
334
-
335
- # Prepare headers.
336
- _headers = {
337
- 'accept' => 'application/json'
338
- }
339
-
340
- # Prepare and execute HttpRequest.
341
- _request = config.http_client.get(
342
- _query_url,
343
- headers: _headers
344
- )
345
- OAuth2.apply(config, _request)
346
- _response = execute_request(_request)
347
-
348
- # Return appropriate response type.
349
- decoded = APIHelper.json_deserialize(_response.raw_body)
350
- _errors = APIHelper.map_response(decoded, ['errors'])
351
- ApiResponse.new(_response, data: decoded, errors: _errors)
352
- end
353
-
354
- # Queries the targeted catalog using a variety of query types:
355
- # [CatalogQuerySortedAttribute](#type-catalogquerysortedattribute),
356
- # [CatalogQueryExact](#type-catalogqueryexact),
357
- # [CatalogQueryRange](#type-catalogqueryrange),
358
- # [CatalogQueryText](#type-catalogquerytext),
359
- # [CatalogQueryItemsForTax](#type-catalogqueryitemsfortax), and
360
- # [CatalogQueryItemsForModifierList](#type-catalogqueryitemsformodifierlist)
361
- # .
362
- # @param [SearchCatalogObjectsRequest] body Required parameter: An object
363
- # containing the fields to POST for the request. See the corresponding
364
- # object definition for field details.
365
- # @return [SearchCatalogObjectsResponse Hash] response from the API call
366
- def search_catalog_objects(body:)
367
- # Prepare query url.
368
- _query_builder = config.get_base_uri
369
- _query_builder << '/v2/catalog/search'
370
- _query_url = APIHelper.clean_url _query_builder
371
-
372
- # Prepare headers.
373
- _headers = {
374
- 'accept' => 'application/json',
375
- 'content-type' => 'application/json; charset=utf-8'
376
- }
377
-
378
- # Prepare and execute HttpRequest.
379
- _request = config.http_client.post(
380
- _query_url,
381
- headers: _headers,
382
- parameters: body.to_json
383
- )
384
- OAuth2.apply(config, _request)
385
- _response = execute_request(_request)
386
-
387
- # Return appropriate response type.
388
- decoded = APIHelper.json_deserialize(_response.raw_body)
389
- _errors = APIHelper.map_response(decoded, ['errors'])
390
- ApiResponse.new(_response, data: decoded, errors: _errors)
391
- end
392
-
393
- # Updates the [CatalogModifierList](#type-catalogmodifierlist) objects
394
- # that apply to the targeted [CatalogItem](#type-catalogitem) without having
395
- # to perform an upsert on the entire item.
396
- # @param [UpdateItemModifierListsRequest] body Required parameter: An object
397
- # containing the fields to POST for the request. See the corresponding
398
- # object definition for field details.
399
- # @return [UpdateItemModifierListsResponse Hash] response from the API call
400
- def update_item_modifier_lists(body:)
401
- # Prepare query url.
402
- _query_builder = config.get_base_uri
403
- _query_builder << '/v2/catalog/update-item-modifier-lists'
404
- _query_url = APIHelper.clean_url _query_builder
405
-
406
- # Prepare headers.
407
- _headers = {
408
- 'accept' => 'application/json',
409
- 'content-type' => 'application/json; charset=utf-8'
410
- }
411
-
412
- # Prepare and execute HttpRequest.
413
- _request = config.http_client.post(
414
- _query_url,
415
- headers: _headers,
416
- parameters: body.to_json
417
- )
418
- OAuth2.apply(config, _request)
419
- _response = execute_request(_request)
420
-
421
- # Return appropriate response type.
422
- decoded = APIHelper.json_deserialize(_response.raw_body)
423
- _errors = APIHelper.map_response(decoded, ['errors'])
424
- ApiResponse.new(_response, data: decoded, errors: _errors)
425
- end
426
-
427
- # Updates the [CatalogTax](#type-catalogtax) objects that apply to the
428
- # targeted [CatalogItem](#type-catalogitem) without having to perform an
429
- # upsert on the entire item.
430
- # @param [UpdateItemTaxesRequest] body Required parameter: An object
431
- # containing the fields to POST for the request. See the corresponding
432
- # object definition for field details.
433
- # @return [UpdateItemTaxesResponse Hash] response from the API call
434
- def update_item_taxes(body:)
435
- # Prepare query url.
436
- _query_builder = config.get_base_uri
437
- _query_builder << '/v2/catalog/update-item-taxes'
438
- _query_url = APIHelper.clean_url _query_builder
439
-
440
- # Prepare headers.
441
- _headers = {
442
- 'accept' => 'application/json',
443
- 'content-type' => 'application/json; charset=utf-8'
444
- }
445
-
446
- # Prepare and execute HttpRequest.
447
- _request = config.http_client.post(
448
- _query_url,
449
- headers: _headers,
450
- parameters: body.to_json
451
- )
452
- OAuth2.apply(config, _request)
453
- _response = execute_request(_request)
454
-
455
- # Return appropriate response type.
456
- decoded = APIHelper.json_deserialize(_response.raw_body)
457
- _errors = APIHelper.map_response(decoded, ['errors'])
458
- ApiResponse.new(_response, data: decoded, errors: _errors)
459
- end
460
- end
461
- end
1
+ # square
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module Square
7
+ # CatalogApi
8
+ class CatalogApi < BaseApi
9
+ def initialize(config, http_call_back: nil)
10
+ super(config, http_call_back: http_call_back)
11
+ end
12
+
13
+ # Deletes a set of [CatalogItem](#type-catalogitem)s based on the
14
+ # provided list of target IDs and returns a set of successfully deleted IDs
15
+ # in
16
+ # the response. Deletion is a cascading event such that all children of the
17
+ # targeted object are also deleted. For example, deleting a CatalogItem will
18
+ # also delete all of its [CatalogItemVariation](#type-catalogitemvariation)
19
+ # children.
20
+ # `BatchDeleteCatalogObjects` succeeds even if only a portion of the
21
+ # targeted
22
+ # IDs can be deleted. The response will only include IDs that were
23
+ # actually deleted.
24
+ # @param [BatchDeleteCatalogObjectsRequest] body Required parameter: An
25
+ # object containing the fields to POST for the request. See the
26
+ # corresponding object definition for field details.
27
+ # @return [BatchDeleteCatalogObjectsResponse Hash] response from the API call
28
+ def batch_delete_catalog_objects(body:)
29
+ # Prepare query url.
30
+ _query_builder = config.get_base_uri
31
+ _query_builder << '/v2/catalog/batch-delete'
32
+ _query_url = APIHelper.clean_url _query_builder
33
+
34
+ # Prepare headers.
35
+ _headers = {
36
+ 'accept' => 'application/json',
37
+ 'content-type' => 'application/json; charset=utf-8'
38
+ }
39
+
40
+ # Prepare and execute HttpRequest.
41
+ _request = config.http_client.post(
42
+ _query_url,
43
+ headers: _headers,
44
+ parameters: body.to_json
45
+ )
46
+ OAuth2.apply(config, _request)
47
+ _response = execute_request(_request)
48
+
49
+ # Return appropriate response type.
50
+ decoded = APIHelper.json_deserialize(_response.raw_body)
51
+ _errors = APIHelper.map_response(decoded, ['errors'])
52
+ ApiResponse.new(_response, data: decoded, errors: _errors)
53
+ end
54
+
55
+ # Returns a set of objects based on the provided ID.
56
+ # Each [CatalogItem](#type-catalogitem) returned in the set includes all of
57
+ # its
58
+ # child information including: all of its
59
+ # [CatalogItemVariation](#type-catalogitemvariation) objects, references to
60
+ # its [CatalogModifierList](#type-catalogmodifierlist) objects, and the ids
61
+ # of
62
+ # any [CatalogTax](#type-catalogtax) objects that apply to it.
63
+ # @param [BatchRetrieveCatalogObjectsRequest] body Required parameter: An
64
+ # object containing the fields to POST for the request. See the
65
+ # corresponding object definition for field details.
66
+ # @return [BatchRetrieveCatalogObjectsResponse Hash] response from the API call
67
+ def batch_retrieve_catalog_objects(body:)
68
+ # Prepare query url.
69
+ _query_builder = config.get_base_uri
70
+ _query_builder << '/v2/catalog/batch-retrieve'
71
+ _query_url = APIHelper.clean_url _query_builder
72
+
73
+ # Prepare headers.
74
+ _headers = {
75
+ 'accept' => 'application/json',
76
+ 'content-type' => 'application/json; charset=utf-8'
77
+ }
78
+
79
+ # Prepare and execute HttpRequest.
80
+ _request = config.http_client.post(
81
+ _query_url,
82
+ headers: _headers,
83
+ parameters: body.to_json
84
+ )
85
+ OAuth2.apply(config, _request)
86
+ _response = execute_request(_request)
87
+
88
+ # Return appropriate response type.
89
+ decoded = APIHelper.json_deserialize(_response.raw_body)
90
+ _errors = APIHelper.map_response(decoded, ['errors'])
91
+ ApiResponse.new(_response, data: decoded, errors: _errors)
92
+ end
93
+
94
+ # Creates or updates up to 10,000 target objects based on the provided
95
+ # list of objects. The target objects are grouped into batches and each
96
+ # batch is
97
+ # inserted/updated in an all-or-nothing manner. If an object within a batch
98
+ # is
99
+ # malformed in some way, or violates a database constraint, the entire batch
100
+ # containing that item will be disregarded. However, other batches in the
101
+ # same
102
+ # request may still succeed. Each batch may contain up to 1,000 objects, and
103
+ # batches will be processed in order as long as the total object count for
104
+ # the
105
+ # request (items, variations, modifier lists, discounts, and taxes) is no
106
+ # more
107
+ # than 10,000.
108
+ # @param [BatchUpsertCatalogObjectsRequest] body Required parameter: An
109
+ # object containing the fields to POST for the request. See the
110
+ # corresponding object definition for field details.
111
+ # @return [BatchUpsertCatalogObjectsResponse Hash] response from the API call
112
+ def batch_upsert_catalog_objects(body:)
113
+ # Prepare query url.
114
+ _query_builder = config.get_base_uri
115
+ _query_builder << '/v2/catalog/batch-upsert'
116
+ _query_url = APIHelper.clean_url _query_builder
117
+
118
+ # Prepare headers.
119
+ _headers = {
120
+ 'accept' => 'application/json',
121
+ 'content-type' => 'application/json; charset=utf-8'
122
+ }
123
+
124
+ # Prepare and execute HttpRequest.
125
+ _request = config.http_client.post(
126
+ _query_url,
127
+ headers: _headers,
128
+ parameters: body.to_json
129
+ )
130
+ OAuth2.apply(config, _request)
131
+ _response = execute_request(_request)
132
+
133
+ # Return appropriate response type.
134
+ decoded = APIHelper.json_deserialize(_response.raw_body)
135
+ _errors = APIHelper.map_response(decoded, ['errors'])
136
+ ApiResponse.new(_response, data: decoded, errors: _errors)
137
+ end
138
+
139
+ # Returns information about the Square Catalog API, such as batch size
140
+ # limits for `BatchUpsertCatalogObjects`.
141
+ # @return [CatalogInfoResponse Hash] response from the API call
142
+ def catalog_info
143
+ # Prepare query url.
144
+ _query_builder = config.get_base_uri
145
+ _query_builder << '/v2/catalog/info'
146
+ _query_url = APIHelper.clean_url _query_builder
147
+
148
+ # Prepare headers.
149
+ _headers = {
150
+ 'accept' => 'application/json'
151
+ }
152
+
153
+ # Prepare and execute HttpRequest.
154
+ _request = config.http_client.get(
155
+ _query_url,
156
+ headers: _headers
157
+ )
158
+ OAuth2.apply(config, _request)
159
+ _response = execute_request(_request)
160
+
161
+ # Return appropriate response type.
162
+ decoded = APIHelper.json_deserialize(_response.raw_body)
163
+ _errors = APIHelper.map_response(decoded, ['errors'])
164
+ ApiResponse.new(_response, data: decoded, errors: _errors)
165
+ end
166
+
167
+ # Returns a list of [CatalogObject](#type-catalogobject)s that includes
168
+ # all objects of a set of desired types (for example, all
169
+ # [CatalogItem](#type-catalogitem)
170
+ # and [CatalogTax](#type-catalogtax) objects) in the catalog. The `types`
171
+ # parameter
172
+ # is specified as a comma-separated list of valid
173
+ # [CatalogObject](#type-catalogobject) types:
174
+ # `ITEM`, `ITEM_VARIATION`, `MODIFIER`, `MODIFIER_LIST`, `CATEGORY`,
175
+ # `DISCOUNT`, `TAX`.
176
+ # __Important:__ ListCatalog does not return deleted catalog items. To
177
+ # retrieve
178
+ # deleted catalog items, use SearchCatalogObjects and set
179
+ # `include_deleted_objects`
180
+ # to `true`.
181
+ # @param [String] cursor Optional parameter: The pagination cursor returned
182
+ # in the previous response. Leave unset for an initial request. See
183
+ # [Pagination](https://developer.squareup.com/docs/basics/api101/pagination)
184
+ # for more information.
185
+ # @param [String] types Optional parameter: An optional case-insensitive,
186
+ # comma-separated list of object types to retrieve, for example
187
+ # `ITEM,ITEM_VARIATION,CATEGORY,IMAGE`. The legal values are taken from the
188
+ # [CatalogObjectType](#type-catalogobjecttype) enumeration, namely `ITEM`,
189
+ # `ITEM_VARIATION`, `CATEGORY`, `DISCOUNT`, `TAX`, `MODIFIER`,
190
+ # `MODIFIER_LIST`, or `IMAGE`.
191
+ # @return [ListCatalogResponse Hash] response from the API call
192
+ def list_catalog(cursor: nil,
193
+ types: nil)
194
+ # Prepare query url.
195
+ _query_builder = config.get_base_uri
196
+ _query_builder << '/v2/catalog/list'
197
+ _query_builder = APIHelper.append_url_with_query_parameters(
198
+ _query_builder,
199
+ 'cursor' => cursor,
200
+ 'types' => types
201
+ )
202
+ _query_url = APIHelper.clean_url _query_builder
203
+
204
+ # Prepare headers.
205
+ _headers = {
206
+ 'accept' => 'application/json'
207
+ }
208
+
209
+ # Prepare and execute HttpRequest.
210
+ _request = config.http_client.get(
211
+ _query_url,
212
+ headers: _headers
213
+ )
214
+ OAuth2.apply(config, _request)
215
+ _response = execute_request(_request)
216
+
217
+ # Return appropriate response type.
218
+ decoded = APIHelper.json_deserialize(_response.raw_body)
219
+ _errors = APIHelper.map_response(decoded, ['errors'])
220
+ ApiResponse.new(_response, data: decoded, errors: _errors)
221
+ end
222
+
223
+ # Creates or updates the target [CatalogObject](#type-catalogobject).
224
+ # @param [UpsertCatalogObjectRequest] body Required parameter: An object
225
+ # containing the fields to POST for the request. See the corresponding
226
+ # object definition for field details.
227
+ # @return [UpsertCatalogObjectResponse Hash] response from the API call
228
+ def upsert_catalog_object(body:)
229
+ # Prepare query url.
230
+ _query_builder = config.get_base_uri
231
+ _query_builder << '/v2/catalog/object'
232
+ _query_url = APIHelper.clean_url _query_builder
233
+
234
+ # Prepare headers.
235
+ _headers = {
236
+ 'accept' => 'application/json',
237
+ 'content-type' => 'application/json; charset=utf-8'
238
+ }
239
+
240
+ # Prepare and execute HttpRequest.
241
+ _request = config.http_client.post(
242
+ _query_url,
243
+ headers: _headers,
244
+ parameters: body.to_json
245
+ )
246
+ OAuth2.apply(config, _request)
247
+ _response = execute_request(_request)
248
+
249
+ # Return appropriate response type.
250
+ decoded = APIHelper.json_deserialize(_response.raw_body)
251
+ _errors = APIHelper.map_response(decoded, ['errors'])
252
+ ApiResponse.new(_response, data: decoded, errors: _errors)
253
+ end
254
+
255
+ # Deletes a single [CatalogObject](#type-catalogobject) based on the
256
+ # provided ID and returns the set of successfully deleted IDs in the
257
+ # response.
258
+ # Deletion is a cascading event such that all children of the targeted
259
+ # object
260
+ # are also deleted. For example, deleting a [CatalogItem](#type-catalogitem)
261
+ # will also delete all of its
262
+ # [CatalogItemVariation](#type-catalogitemvariation) children.
263
+ # @param [String] object_id Required parameter: The ID of the
264
+ # [CatalogObject](#type-catalogobject) to be deleted. When an object is
265
+ # deleted, other objects in the graph that depend on that object will be
266
+ # deleted as well (for example, deleting a [CatalogItem](#type-catalogitem)
267
+ # will delete its [CatalogItemVariation](#type-catalogitemvariation)s).
268
+ # @return [DeleteCatalogObjectResponse Hash] response from the API call
269
+ def delete_catalog_object(object_id:)
270
+ # Prepare query url.
271
+ _query_builder = config.get_base_uri
272
+ _query_builder << '/v2/catalog/object/{object_id}'
273
+ _query_builder = APIHelper.append_url_with_template_parameters(
274
+ _query_builder,
275
+ 'object_id' => object_id
276
+ )
277
+ _query_url = APIHelper.clean_url _query_builder
278
+
279
+ # Prepare headers.
280
+ _headers = {
281
+ 'accept' => 'application/json'
282
+ }
283
+
284
+ # Prepare and execute HttpRequest.
285
+ _request = config.http_client.delete(
286
+ _query_url,
287
+ headers: _headers
288
+ )
289
+ OAuth2.apply(config, _request)
290
+ _response = execute_request(_request)
291
+
292
+ # Return appropriate response type.
293
+ decoded = APIHelper.json_deserialize(_response.raw_body)
294
+ _errors = APIHelper.map_response(decoded, ['errors'])
295
+ ApiResponse.new(_response, data: decoded, errors: _errors)
296
+ end
297
+
298
+ # Returns a single [CatalogItem](#type-catalogitem) as a
299
+ # [CatalogObject](#type-catalogobject) based on the provided ID. The
300
+ # returned
301
+ # object includes all of the relevant [CatalogItem](#type-catalogitem)
302
+ # information including: [CatalogItemVariation](#type-catalogitemvariation)
303
+ # children, references to its
304
+ # [CatalogModifierList](#type-catalogmodifierlist) objects, and the ids of
305
+ # any [CatalogTax](#type-catalogtax) objects that apply to it.
306
+ # @param [String] object_id Required parameter: The object ID of any type of
307
+ # [CatalogObject](#type-catalogobject)s to be retrieved.
308
+ # @param [Boolean] include_related_objects Optional parameter: If `true`,
309
+ # the response will include additional objects that are related to the
310
+ # requested object, as follows: If the `object` field of the response
311
+ # contains a [CatalogItem](#type-catalogitem), its associated
312
+ # [CatalogCategory](#type-catalogcategory),
313
+ # [CatalogTax](#type-catalogtax)es, [CatalogImage](#type-catalogimage)s and
314
+ # [CatalogModifierList](#type-catalogmodifierlist)s will be returned in the
315
+ # `related_objects` field of the response. If the `object` field of the
316
+ # response contains a [CatalogItemVariation](#type-catalogitemvariation),
317
+ # its parent [CatalogItem](#type-catalogitem) will be returned in the
318
+ # `related_objects` field of the response. Default value: `false`
319
+ # @return [RetrieveCatalogObjectResponse Hash] response from the API call
320
+ def retrieve_catalog_object(object_id:,
321
+ include_related_objects: nil)
322
+ # Prepare query url.
323
+ _query_builder = config.get_base_uri
324
+ _query_builder << '/v2/catalog/object/{object_id}'
325
+ _query_builder = APIHelper.append_url_with_template_parameters(
326
+ _query_builder,
327
+ 'object_id' => object_id
328
+ )
329
+ _query_builder = APIHelper.append_url_with_query_parameters(
330
+ _query_builder,
331
+ 'include_related_objects' => include_related_objects
332
+ )
333
+ _query_url = APIHelper.clean_url _query_builder
334
+
335
+ # Prepare headers.
336
+ _headers = {
337
+ 'accept' => 'application/json'
338
+ }
339
+
340
+ # Prepare and execute HttpRequest.
341
+ _request = config.http_client.get(
342
+ _query_url,
343
+ headers: _headers
344
+ )
345
+ OAuth2.apply(config, _request)
346
+ _response = execute_request(_request)
347
+
348
+ # Return appropriate response type.
349
+ decoded = APIHelper.json_deserialize(_response.raw_body)
350
+ _errors = APIHelper.map_response(decoded, ['errors'])
351
+ ApiResponse.new(_response, data: decoded, errors: _errors)
352
+ end
353
+
354
+ # Queries the targeted catalog using a variety of query types:
355
+ # [CatalogQuerySortedAttribute](#type-catalogquerysortedattribute),
356
+ # [CatalogQueryExact](#type-catalogqueryexact),
357
+ # [CatalogQueryRange](#type-catalogqueryrange),
358
+ # [CatalogQueryText](#type-catalogquerytext),
359
+ # [CatalogQueryItemsForTax](#type-catalogqueryitemsfortax), and
360
+ # [CatalogQueryItemsForModifierList](#type-catalogqueryitemsformodifierlist)
361
+ # .
362
+ # @param [SearchCatalogObjectsRequest] body Required parameter: An object
363
+ # containing the fields to POST for the request. See the corresponding
364
+ # object definition for field details.
365
+ # @return [SearchCatalogObjectsResponse Hash] response from the API call
366
+ def search_catalog_objects(body:)
367
+ # Prepare query url.
368
+ _query_builder = config.get_base_uri
369
+ _query_builder << '/v2/catalog/search'
370
+ _query_url = APIHelper.clean_url _query_builder
371
+
372
+ # Prepare headers.
373
+ _headers = {
374
+ 'accept' => 'application/json',
375
+ 'content-type' => 'application/json; charset=utf-8'
376
+ }
377
+
378
+ # Prepare and execute HttpRequest.
379
+ _request = config.http_client.post(
380
+ _query_url,
381
+ headers: _headers,
382
+ parameters: body.to_json
383
+ )
384
+ OAuth2.apply(config, _request)
385
+ _response = execute_request(_request)
386
+
387
+ # Return appropriate response type.
388
+ decoded = APIHelper.json_deserialize(_response.raw_body)
389
+ _errors = APIHelper.map_response(decoded, ['errors'])
390
+ ApiResponse.new(_response, data: decoded, errors: _errors)
391
+ end
392
+
393
+ # Updates the [CatalogModifierList](#type-catalogmodifierlist) objects
394
+ # that apply to the targeted [CatalogItem](#type-catalogitem) without having
395
+ # to perform an upsert on the entire item.
396
+ # @param [UpdateItemModifierListsRequest] body Required parameter: An object
397
+ # containing the fields to POST for the request. See the corresponding
398
+ # object definition for field details.
399
+ # @return [UpdateItemModifierListsResponse Hash] response from the API call
400
+ def update_item_modifier_lists(body:)
401
+ # Prepare query url.
402
+ _query_builder = config.get_base_uri
403
+ _query_builder << '/v2/catalog/update-item-modifier-lists'
404
+ _query_url = APIHelper.clean_url _query_builder
405
+
406
+ # Prepare headers.
407
+ _headers = {
408
+ 'accept' => 'application/json',
409
+ 'content-type' => 'application/json; charset=utf-8'
410
+ }
411
+
412
+ # Prepare and execute HttpRequest.
413
+ _request = config.http_client.post(
414
+ _query_url,
415
+ headers: _headers,
416
+ parameters: body.to_json
417
+ )
418
+ OAuth2.apply(config, _request)
419
+ _response = execute_request(_request)
420
+
421
+ # Return appropriate response type.
422
+ decoded = APIHelper.json_deserialize(_response.raw_body)
423
+ _errors = APIHelper.map_response(decoded, ['errors'])
424
+ ApiResponse.new(_response, data: decoded, errors: _errors)
425
+ end
426
+
427
+ # Updates the [CatalogTax](#type-catalogtax) objects that apply to the
428
+ # targeted [CatalogItem](#type-catalogitem) without having to perform an
429
+ # upsert on the entire item.
430
+ # @param [UpdateItemTaxesRequest] body Required parameter: An object
431
+ # containing the fields to POST for the request. See the corresponding
432
+ # object definition for field details.
433
+ # @return [UpdateItemTaxesResponse Hash] response from the API call
434
+ def update_item_taxes(body:)
435
+ # Prepare query url.
436
+ _query_builder = config.get_base_uri
437
+ _query_builder << '/v2/catalog/update-item-taxes'
438
+ _query_url = APIHelper.clean_url _query_builder
439
+
440
+ # Prepare headers.
441
+ _headers = {
442
+ 'accept' => 'application/json',
443
+ 'content-type' => 'application/json; charset=utf-8'
444
+ }
445
+
446
+ # Prepare and execute HttpRequest.
447
+ _request = config.http_client.post(
448
+ _query_url,
449
+ headers: _headers,
450
+ parameters: body.to_json
451
+ )
452
+ OAuth2.apply(config, _request)
453
+ _response = execute_request(_request)
454
+
455
+ # Return appropriate response type.
456
+ decoded = APIHelper.json_deserialize(_response.raw_body)
457
+ _errors = APIHelper.map_response(decoded, ['errors'])
458
+ ApiResponse.new(_response, data: decoded, errors: _errors)
459
+ end
460
+ end
461
+ end