beyond_api 0.13.0.pre → 0.16.1.pre

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be322cd30437303093e481de07cd8e3b8809c381d835b778ca03eccf66f7326f
4
- data.tar.gz: 432767a471613ab986f3ca19c5c8c002673711bea0c71ec0c8048fbf4f8cc50e
3
+ metadata.gz: e21d3e55d80fdab110e763b80945554aaa37db10d9cd1d6420e1048992990442
4
+ data.tar.gz: abfb64188b9e2b04a223b7cbc839eec16b2f6307ecccf0a8c6b484ab55259231
5
5
  SHA512:
6
- metadata.gz: f8a52e79a30aa30c85388b0d0d034fd49e35ce4896eef7ae0b51316aa7a3c1081ef3b9b564b1ec798be8af4af44d04b6bcefc226579b44138a98d1b463e23a65
7
- data.tar.gz: 98be15b4608be4c35f0e9511cde6f824a2dfd97a292c92e62a24f2980750464a62952e4d84852c367df3258a7bc8036434162252e40993b089fa8fa72ca11dec
6
+ metadata.gz: 9a51c07ca44a5f137e8c2cea3e3249e607323ec9a58a661895d4541ccd573d234c72fae261632341e8e44077a8eca1f34e0748cad693961e4195e0c6b881089a
7
+ data.tar.gz: 64b13f1fa84d4292c6f414071dd64beed61acddcefff7c8aa952cc089e53bf519d8823e7ad9ebf98cfb779fb60855411c603c435b07a5c74caa07a9a243a3ac3
data/CHANGELOG.md CHANGED
@@ -1,3 +1,32 @@
1
+ ### v0.16.1.pre
2
+
3
+ * bug-fixes
4
+ * Fix method to retrieve resources without pagination
5
+
6
+ ### v0.16.0.pre
7
+
8
+ * features
9
+ * Add pickup options methods
10
+ * `PickupOptions#delete`
11
+ * `PickupOptions#find`
12
+ * `PickupOptions#sort`
13
+ * `PickupOptions#update`
14
+
15
+ ### v0.15.0.pre
16
+
17
+ * features
18
+ * Add pickup options methods
19
+ * `PickupOptions#all`
20
+ * `PickupOptions#create`
21
+
22
+ ### v0.14.0.pre
23
+
24
+ * deprecations
25
+ * Remove `Products#assign_variation_images_differentiator`
26
+
27
+ * features
28
+ * Add `Products#assign_variation_attribute_as_differentiator`
29
+
1
30
  ### v0.13.0.pre
2
31
 
3
32
  * features
data/Gemfile.lock CHANGED
@@ -1,42 +1,42 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- beyond_api (0.13.0.pre)
4
+ beyond_api (0.16.1.pre)
5
5
  faraday (~> 0.15)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- coderay (1.1.2)
11
- concurrent-ruby (1.1.5)
12
- diff-lcs (1.3)
13
- dotenv (2.7.5)
14
- faker (2.4.0)
15
- i18n (~> 1.6.0)
16
- faraday (0.17.3)
10
+ coderay (1.1.3)
11
+ concurrent-ruby (1.1.9)
12
+ diff-lcs (1.4.4)
13
+ dotenv (2.7.6)
14
+ faker (2.18.0)
15
+ i18n (>= 1.6, < 2)
16
+ faraday (0.17.4)
17
17
  multipart-post (>= 1.2, < 3)
18
- i18n (1.6.0)
18
+ i18n (1.8.10)
19
19
  concurrent-ruby (~> 1.0)
20
- method_source (0.9.2)
20
+ method_source (1.0.0)
21
21
  multipart-post (2.1.1)
22
- pry (0.12.2)
23
- coderay (~> 1.1.0)
24
- method_source (~> 0.9.0)
22
+ pry (0.14.1)
23
+ coderay (~> 1.1)
24
+ method_source (~> 1.0)
25
25
  rake (10.5.0)
26
- rspec (3.8.0)
27
- rspec-core (~> 3.8.0)
28
- rspec-expectations (~> 3.8.0)
29
- rspec-mocks (~> 3.8.0)
30
- rspec-core (3.8.2)
31
- rspec-support (~> 3.8.0)
32
- rspec-expectations (3.8.4)
26
+ rspec (3.10.0)
27
+ rspec-core (~> 3.10.0)
28
+ rspec-expectations (~> 3.10.0)
29
+ rspec-mocks (~> 3.10.0)
30
+ rspec-core (3.10.1)
31
+ rspec-support (~> 3.10.0)
32
+ rspec-expectations (3.10.1)
33
33
  diff-lcs (>= 1.2.0, < 2.0)
34
- rspec-support (~> 3.8.0)
35
- rspec-mocks (3.8.1)
34
+ rspec-support (~> 3.10.0)
35
+ rspec-mocks (3.10.2)
36
36
  diff-lcs (>= 1.2.0, < 2.0)
37
- rspec-support (~> 3.8.0)
38
- rspec-support (3.8.2)
39
- yard (0.9.20)
37
+ rspec-support (~> 3.10.0)
38
+ rspec-support (3.10.2)
39
+ yard (0.9.26)
40
40
 
41
41
  PLATFORMS
42
42
  ruby
@@ -0,0 +1,216 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "beyond_api/utils"
4
+
5
+ module BeyondApi
6
+ class PickupOptions < Base
7
+ include BeyondApi::Utils
8
+
9
+ #
10
+ # A +GET+ request is used to list all pickup options of the shop in a paged way.
11
+ #
12
+ # $ curl 'https://api-shop.beyondshop.cloud/api/pickup-options' -i -X GET \
13
+ # -H 'Accept: application/hal+json' \
14
+ # -H 'Authorization: Bearer <Access token>'
15
+ #
16
+ # @option params [Boolean] :paginated
17
+ # @option params [Integer] :size the page size
18
+ # @option params [Integer] :page the page number
19
+ #
20
+ # @return [OpenStruct]
21
+ #
22
+ # @example
23
+ # @pickup_options = session.pickup_options.all(size: 100, page: 0)
24
+ #
25
+ def all(params = {})
26
+ handle_all_request("/pickup-options", :pickup_options, params)
27
+ end
28
+
29
+ #
30
+ # A +POST+ request is used to create a pickup option.
31
+ #
32
+ # $ curl 'https://api-shop.beyondshop.cloud/api/pickup-options' -i -X POST \
33
+ # -H 'Content-Type: application/json' \
34
+ # -H 'Authorization: Bearer <Access token>' \
35
+ # -d '{
36
+ # "name" : "My little Cornershop - St.Ives",
37
+ # "description" : "We will send you an email when your items are ready for pickup. Please bring a copy of your order confirmation.",
38
+ # "taxClass" : "REGULAR",
39
+ # "freePickupValue" : {
40
+ # "currency" : "EUR",
41
+ # "amount" : 50
42
+ # },
43
+ # "fixedPrice" : {
44
+ # "taxModel" : "GROSS",
45
+ # "currency" : "EUR",
46
+ # "amount" : 1
47
+ # },
48
+ # "phoneNumberRequired" : true,
49
+ # "locationId" : "cb554eb6-2768-4491-afd2-6bcd0aec0937"
50
+ # }'
51
+ #
52
+ # @beyond_api.scopes +shpz:c+
53
+ #
54
+ # @param body [Hash] the request body
55
+ #
56
+ # @return [OpenStruct]
57
+ #
58
+ # @example
59
+ # body = {
60
+ # name: "My little Cornershop - St.Ives",
61
+ # description: "We will send you an email when your items are ready for pickup. Please bring a copy of your order confirmation.",
62
+ # tax_class: "REGULAR",
63
+ # free_pickup_value: {
64
+ # currency: "EUR",
65
+ # amount: 50
66
+ # },
67
+ # fixed_price: {
68
+ # tax_model: "GROSS",
69
+ # currency: "EUR",
70
+ # amount: 1
71
+ # },
72
+ # phone_number_required: true,
73
+ # location_id: "cb554eb6-2768-4491-afd2-6bcd0aec0937"
74
+ # }
75
+ #
76
+ # @pickup_option = session.pickup_options.create(body)
77
+ #
78
+ def create(body)
79
+ response, status = BeyondApi::Request.post(@session, "/pickup-options", body)
80
+
81
+ handle_response(response, status)
82
+ end
83
+
84
+ #
85
+ # A +DELETE+ request is used to delete a pickup option.
86
+ #
87
+ # $ curl 'https://api-shop.beyondshop.cloud/api/pickup-options/d253a31b-3892-4196-ae16-c5d8d6b05791' -i -X DELETE
88
+ #
89
+ # @beyond_api.scopes +shpz:d+
90
+ #
91
+ # @param pickup_option_id [String] the pickup option UUID
92
+ #
93
+ # @return true
94
+ #
95
+ # @example
96
+ # session.pickup_options.delete("d253a31b-3892-4196-ae16-c5d8d6b05791")
97
+ #
98
+ def delete(pickup_option_id)
99
+ response, status = BeyondApi::Request.delete(@session, "/pickup-options/#{pickup_option_id}")
100
+
101
+ handle_response(response, status, respond_with_true: true)
102
+ end
103
+
104
+ #
105
+ # A +GET+ request is used to retrieve the details of a pickup option.
106
+ #
107
+ # $ curl 'https://api-shop.beyondshop.cloud/api/pickup-options/76302c10-761f-43c1-9d18-52ad16bd52e8' -i -X GET \
108
+ # -H 'Content-Type: application/json' \
109
+ # -H 'Accept: application/hal+json' \
110
+ # -H 'Authorization: Bearer <Access token>'
111
+ #
112
+ # @beyond_api.scopes +shpz:r+
113
+ #
114
+ # @param pickup_option_id [String] the pickup option UUID
115
+ #
116
+ # @return [OpenStruct]
117
+ #
118
+ # @example
119
+ # @pickup_option = session.pickup_options.find("76302c10-761f-43c1-9d18-52ad16bd52e8")
120
+ #
121
+ def find(pickup_option_id)
122
+ response, status = BeyondApi::Request.get(@session, "/pickup-options/#{pickup_option_id}")
123
+
124
+ handle_response(response, status)
125
+ end
126
+
127
+ #
128
+ # A +PUT+ request is used to sort the pickup options. This is done by passing the self-links of the pickup options in the desired order. The request must contain URIs for all pickup options of the given page.
129
+ #
130
+ # $ curl 'https://api-shop.beyondshop.cloud/api/pickup-options' -i -X PUT \
131
+ # -H 'Content-Type: text/uri-list' \
132
+ # -H 'Authorization: Bearer <Access token>' \
133
+ # -d 'https://api-shop.beyondshop.cloud/api/pickup-options/bff3673f-91c1-4e09-a8ab-562a3a553fac
134
+ # https://api-shop.beyondshop.cloud/api/pickup-options/7b4d36fc-ac0f-44a3-8655-f2bd05c2a42d
135
+ # https://api-shop.beyondshop.cloud/api/pickup-options/630b63ee-c7d8-4953-9b7c-c874fd795154'
136
+ #
137
+ # @beyond_api.scopes +shpz:u+
138
+ #
139
+ # @param pickup_option_ids [Array] the pickup option UUIDs
140
+ #
141
+ # @return [OpenStruct]
142
+ #
143
+ # @example
144
+ # pickup_option_ids = [
145
+ # "bff3673f-91c1-4e09-a8ab-562a3a553fac",
146
+ # "7b4d36fc-ac0f-44a3-8655-f2bd05c2a42d",
147
+ # "630b63ee-c7d8-4953-9b7c-c874fd795154"
148
+ # ]
149
+ #
150
+ # session.pickup_options.sort(pickup_option_ids)
151
+ #
152
+ def sort(pickup_option_ids)
153
+ body = pickup_option_ids.map { |id| "#{@session.api_url}/pickup-options/#{id}" }
154
+ response, status = BeyondApi::Request.put(@session, "/pickup-options", body)
155
+
156
+ handle_response(response, status, respond_with_true: true)
157
+ end
158
+
159
+ #
160
+ # A +PUT+ request is used to update a pickup option.
161
+ #
162
+ # $ curl 'https://api-shop.beyondshop.cloud/api/pickup-options/5765b837-db5b-49a9-a659-68d00376e42a' -i -X PUT \
163
+ # -H 'Content-Type: application/json' \
164
+ # -H 'Accept: application/hal+json' \
165
+ # -H 'Authorization: Bearer <Access token>' \
166
+ # -d '{
167
+ # "name" : "New name",
168
+ # "description" : "We will send you an email when your items are ready for pickup. Please bring a copy of your order confirmation.",
169
+ # "taxClass" : "REGULAR",
170
+ # "freePickupValue" : {
171
+ # "currency" : "EUR",
172
+ # "amount" : 50
173
+ # },
174
+ # "fixedPrice" : {
175
+ # "taxModel" : "GROSS",
176
+ # "currency" : "EUR",
177
+ # "amount" : 1
178
+ # },
179
+ # "phoneNumberRequired" : true,
180
+ # "locationId" : "c9179393-abcc-450a-8cf4-875b39647ab6"
181
+ # }'
182
+ #
183
+ # @beyond_api.scopes +shpz:u+
184
+ #
185
+ # @param pickup_option_id [String] the pickup option UUID
186
+ # @param body [Hash] the request body
187
+ #
188
+ # @return [OpenStruct]
189
+ #
190
+ # @example
191
+ # body = {
192
+ # name: "New name",
193
+ # description: "We will send you an email when your items are ready for pickup. Please bring a copy of your order confirmation.",
194
+ # tax_class: "REGULAR",
195
+ # free_pickup_value: {
196
+ # currency: "EUR",
197
+ # amount: 50
198
+ # },
199
+ # fixed_price: {
200
+ # tax_model: "GROSS",
201
+ # currency: "EUR",
202
+ # amount: 1
203
+ # },
204
+ # phone_number_required: true,
205
+ # location_id: "c9179393-abcc-450a-8cf4-875b39647ab6"
206
+ # }
207
+ #
208
+ # @pickup_option = session.pickup_options.update("5765b837-db5b-49a9-a659-68d00376e42a", body)
209
+ #
210
+ def update(pickup_option_id, body)
211
+ response, status = BeyondApi::Request.put(@session, "/pickup-options/#{pickup_option_id}", body)
212
+
213
+ handle_response(response, status)
214
+ end
215
+ end
216
+ end
@@ -253,28 +253,25 @@ module BeyondApi
253
253
  end
254
254
 
255
255
  #
256
- # A +PUT+ request is used to assign a variation images differentiator for a variation product. The differentiator can be one of the variation attributes defined by the merchant, e.g. name, size, or color.
256
+ # A +POST+ request is used to assign a variation attribute as the variation images differentiator for a variation product.
257
257
  #
258
258
  # @beyond_api.scopes +prod:u+
259
259
  #
260
- # $ curl 'https://api-shop.beyondshop.cloud/api/products/30839efc-47f7-4d55-aa13-aac7532982b6/variation-images-differentiator' -i -X PUT \
260
+ # $ curl 'https://api-shop.beyondshop.cloud/api/products/f205294b-17dc-4f75-8b5e-5df72abb96df/variation-attributes/491fedf4-37a9-4bcf-98b8-cff2f82879b7/make-differentiator' -i -X POST \
261
261
  # -H 'Content-Type: application/hal+json' \
262
262
  # -H 'Accept: application/hal+json' \
263
- # -H 'Authorization: Bearer <Access token>' \
264
- # -d '{
265
- # "differentiator" : "size"
266
- # }'
263
+ # -H 'Authorization: Bearer <Access token>'
267
264
  #
268
265
  # @param product_id [String] the product UUID
269
- # @param differentiator [String] the differentiator
266
+ # @param variation_attribute_id [String] the variation attribute UUID
270
267
  #
271
268
  # @return [true]
272
269
  #
273
270
  # @example
274
- # session.products.assign_variation_images_differentiator("30839efc-47f7-4d55-aa13-aac7532982b6", "size")
271
+ # session.products.assign_variation_images_differentiator("f205294b-17dc-4f75-8b5e-5df72abb96df", "491fedf4-37a9-4bcf-98b8-cff2f82879b7")
275
272
  #
276
- def assign_variation_images_differentiator(product_id, differentiator)
277
- response, status = BeyondApi::Request.put(@session, "/products/#{product_id}/variation-images-differentiator", differentiator: differentiator)
273
+ def assign_variation_attribute_as_differentiator(product_id, variation_attribute_id)
274
+ response, status = BeyondApi::Request.post(@session, "/products/#{product_id}/variation-attributes/#{variation_attribute_id}/make-differentiator")
278
275
 
279
276
  handle_response(response, status, respond_with_true: true)
280
277
  end
@@ -3,8 +3,8 @@
3
3
  require "beyond_api/utils"
4
4
 
5
5
  module BeyondApi
6
- autoload :Images, "beyond_api/resources/variations/images"
7
- autoload :Availability, "beyond_api/resources/variations/availability"
6
+ autoload :VariationImages, "beyond_api/resources/variations/images"
7
+ autoload :VariationAvailability, "beyond_api/resources/variations/availability"
8
8
 
9
9
  class Variations < Base
10
10
  include BeyondApi::VariationImages
@@ -11,6 +11,7 @@ module BeyondApi
11
11
  autoload :OrderSettings, "beyond_api/resources/order_settings"
12
12
  autoload :Orders, "beyond_api/resources/orders"
13
13
  autoload :PaymentMethodDefinitions, "beyond_api/resources/payment_method_definitions"
14
+ autoload :PickupOptions, "beyond_api/resources/pickup_options"
14
15
  autoload :PaymentMethods, "beyond_api/resources/payment_methods"
15
16
  autoload :ProductAttributeDefinitions, "beyond_api/resources/product_attribute_definitions"
16
17
  autoload :ProductsView, "beyond_api/resources/products_view"
@@ -74,6 +75,10 @@ module BeyondApi
74
75
  BeyondApi::PaymentMethods.new(self)
75
76
  end
76
77
 
78
+ def pickup_options
79
+ BeyondApi::PickupOptions.new(self)
80
+ end
81
+
77
82
  def product_attribute_definitions
78
83
  BeyondApi::ProductAttributeDefinitions.new(self)
79
84
  end
@@ -45,14 +45,17 @@ module BeyondApi
45
45
  end
46
46
 
47
47
  def handle_all_request(url, resource, params = {})
48
+
48
49
  if params[:paginated] == false
49
- result = all_paginated(url, { page: 0, size: 1000 })
50
+ result = all_paginated(url, params.merge(page: 0, size: 1000))
50
51
 
51
52
  (1..result[:page][:total_pages] - 1).each do |page|
52
- result[:embedded][resource].concat(all_paginated(url, { page: page, size: 1000 })[:embedded][resource])
53
+ result[:embedded][resource].concat(all_paginated(url, params.merge(page: page, size: 1000))[:embedded][resource])
53
54
  end
54
55
 
55
- result.is_a?(Hash) ? result.delete(:page) : result.delete_field(:page)
56
+ result[:page][:size] = result[:page][:total_elements]
57
+ result[:page][:total_pages] = 1
58
+ result[:page][:number] = 0
56
59
 
57
60
  result
58
61
  else
@@ -1,3 +1,3 @@
1
1
  module BeyondApi
2
- VERSION = "0.13.0.pre".freeze
2
+ VERSION = "0.16.1.pre".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beyond_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0.pre
4
+ version: 0.16.1.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Unai Abrisketa
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2020-10-19 00:00:00.000000000 Z
13
+ date: 2021-07-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -148,6 +148,7 @@ files:
148
148
  - lib/beyond_api/resources/orders.rb
149
149
  - lib/beyond_api/resources/payment_method_definitions.rb
150
150
  - lib/beyond_api/resources/payment_methods.rb
151
+ - lib/beyond_api/resources/pickup_options.rb
151
152
  - lib/beyond_api/resources/product_attribute_definitions.rb
152
153
  - lib/beyond_api/resources/products.rb
153
154
  - lib/beyond_api/resources/products/attachments.rb
@@ -197,7 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
197
198
  - !ruby/object:Gem::Version
198
199
  version: 1.3.1
199
200
  requirements: []
200
- rubygems_version: 3.1.2
201
+ rubygems_version: 3.0.3
201
202
  signing_key:
202
203
  specification_version: 4
203
204
  summary: Ruby client to access the Beyond API