beyond_api 0.5.1.pre → 0.6.0.pre

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.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +57 -3
  3. data/Gemfile.lock +3 -3
  4. data/lib/beyond_api/resources/carts.rb +18 -9
  5. data/lib/beyond_api/resources/categories.rb +2 -2
  6. data/lib/beyond_api/resources/categories_view.rb +13 -2
  7. data/lib/beyond_api/resources/checkout_settings.rb +16 -1
  8. data/lib/beyond_api/resources/customers.rb +333 -0
  9. data/lib/beyond_api/resources/newsletter_target.rb +1 -1
  10. data/lib/beyond_api/resources/order_settings.rb +45 -28
  11. data/lib/beyond_api/resources/orders.rb +175 -87
  12. data/lib/beyond_api/resources/payment_methods.rb +28 -25
  13. data/lib/beyond_api/resources/product_attribute_definitions.rb +3 -5
  14. data/lib/beyond_api/resources/products/attachments.rb +13 -14
  15. data/lib/beyond_api/resources/products/availability.rb +12 -10
  16. data/lib/beyond_api/resources/products/cross_sells.rb +159 -0
  17. data/lib/beyond_api/resources/products/custom_attributes.rb +7 -7
  18. data/lib/beyond_api/resources/products/images.rb +47 -8
  19. data/lib/beyond_api/resources/products/videos.rb +146 -0
  20. data/lib/beyond_api/resources/products.rb +11 -9
  21. data/lib/beyond_api/resources/products_view.rb +6 -51
  22. data/lib/beyond_api/resources/shipping_zones.rb +5 -5
  23. data/lib/beyond_api/resources/shop.rb +16 -21
  24. data/lib/beyond_api/resources/signers.rb +1 -1
  25. data/lib/beyond_api/resources/users.rb +13 -10
  26. data/lib/beyond_api/resources/variations/images.rb +160 -0
  27. data/lib/beyond_api/resources/variations.rb +40 -37
  28. data/lib/beyond_api/resources/webhook_subscriptions.rb +1 -1
  29. data/lib/beyond_api/session.rb +5 -5
  30. data/lib/beyond_api/version.rb +1 -1
  31. metadata +7 -4
  32. data/lib/beyond_api/resources/product_settings.rb +0 -28
@@ -0,0 +1,146 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "beyond_api/utils"
4
+
5
+ module BeyondApi
6
+ module ProductVideos
7
+
8
+ #
9
+ # A +POST+ request is used to create a video and add it to a product.
10
+ #
11
+ # $ curl 'https://api-shop.beyondshop.cloud/api/products/f7716244-568c-4536-bc25-317030f83395/videos' -i -X POST \
12
+ # -H 'Content-Type: application/hal+json' \
13
+ # -H 'Accept: application/hal+json' \
14
+ # -H 'Authorization: Bearer <Access token>' \
15
+ # -d '{
16
+ # "type" : "VIMEO",
17
+ # "source" : "https://vimeo.com/7265982"
18
+ # }'
19
+ #
20
+ # @beyond_api.scopes +prod:u+
21
+ #
22
+ # @param product_id [String] the product UUID
23
+ # @param body [Hash] the request body
24
+ #
25
+ # @return [OpenStruct]
26
+ #
27
+ # @example
28
+ # body = {
29
+ # "type" => "VIMEO",
30
+ # "source" => "https://vimeo.com/7265982"
31
+ # }
32
+ # @video = session.products.add_video("f7716244-568c-4536-bc25-317030f83395", body)
33
+ #
34
+ def add_video(product_id, body)
35
+ response, status = BeyondApi::Request.post(@session, "/products/#{product_id}/videos", body)
36
+
37
+ handle_response(response, status)
38
+ end
39
+
40
+ #
41
+ # A +DELETE+ request is used to delete a product video
42
+ #
43
+ # $ curl 'https://api-shop.beyondshop.cloud/api/products/1cc9ef5e-62b1-43c7-8745-f4aa8be79934/videos/60869f60-1a4b-4013-b86c-00a2ab9ddc2c' -i -X DELETE \
44
+ # -H 'Content-Type: application/hal+json' \
45
+ # -H 'Accept: application/hal+json' \
46
+ # -H 'Authorization: Bearer <Access token>'
47
+ #
48
+ # @beyond_api.scopes +prod:u+
49
+ #
50
+ # @param product_id [String] the product UUID
51
+ # @param video_id [String] the video UUID
52
+ #
53
+ # @return [true]
54
+ #
55
+ # @example
56
+ # session.products.delete_video("1cc9ef5e-62b1-43c7-8745-f4aa8be79934", "60869f60-1a4b-4013-b86c-00a2ab9ddc2c")
57
+ #
58
+ def delete_video(product_id, video_id)
59
+ response, status = BeyondApi::Request.delete(@session, "/products/#{product_id}/videos/#{video_id}")
60
+
61
+ handle_response(response, status, respond_with_true: true)
62
+ end
63
+
64
+ #
65
+ # A +PUT+ request is used to update a video.
66
+ #
67
+ # $ curl 'https://api-shop.beyondshop.cloud/api/products/9d33da61-1f60-4ad3-9de0-2f1dc0910ebb/videos/ef51af21-5381-4ccb-a107-8bfa574d3556' -i -X PUT \
68
+ # -H 'Content-Type: application/hal+json' \
69
+ # -H 'Accept: application/hal+json' \
70
+ # -H 'Authorization: Bearer <Access token>' \
71
+ # -d '{
72
+ # "type" : "VIMEO",
73
+ # "source" : "https://vimeo.com/7265982"
74
+ # }'
75
+ #
76
+ # @beyond_api.scopes +prod:u+
77
+ #
78
+ # @param product_id [String] the product UUID
79
+ # @param video_id [String] the video UUID
80
+ # @param body [Hash] the request body
81
+ #
82
+ # @return [OpenStruct]
83
+ #
84
+ # @example
85
+ # body = {
86
+ # "type" => "VIMEO",
87
+ # "source" => "https://vimeo.com/7265982"
88
+ # }
89
+ # @video = session.products.update_video("9d33da61-1f60-4ad3-9de0-2f1dc0910ebb", "ef51af21-5381-4ccb-a107-8bfa574d3556", body)
90
+ #
91
+ def update_video(product_id, video_id, body)
92
+ response, status = BeyondApi::Request.put(@session, "/products/#{product_id}/videos/#{video_id}", body)
93
+
94
+ handle_response(response, status)
95
+ end
96
+
97
+ #
98
+ # A +GET+ request is used to retrieve a single video of a product.
99
+ #
100
+ # $ curl 'https://api-shop.beyondshop.cloud/api/products/94c3baf9-1390-4bf8-a6c1-fb234533fa14/videos/ada27b8c-ddf0-489a-9143-5bec938c1e17' -i -X GET \
101
+ # -H 'Content-Type: application/hal+json' \
102
+ # -H 'Accept: application/hal+json' \
103
+ # -H 'Authorization: Bearer <Access token>'
104
+ #
105
+ # @beyond_api.scopes +prod:r+
106
+ #
107
+ # @param product_id [String] the product UUID
108
+ # @param video_id [String] the video UUID
109
+ #
110
+ # @return [OpenStruct]
111
+ #
112
+ # @example
113
+ # @video = session.products.video("94c3baf9-1390-4bf8-a6c1-fb234533fa14", "ada27b8c-ddf0-489a-9143-5bec938c1e17")
114
+ #
115
+ def video(product_id, video_id)
116
+ response, status = BeyondApi::Request.get(@session, "/products/#{product_id}/videos/#{video_id}")
117
+
118
+ handle_response(response, status)
119
+ end
120
+
121
+ #
122
+ # A +GET+ request is used to retrieve the videos of a product.
123
+ #
124
+ # $ curl 'https://api-shop.beyondshop.cloud/api/products/04c6ad65-465d-405e-a428-f73349104b65/videos' -i -X GET \
125
+ # -H 'Content-Type: application/hal+json' \
126
+ # -H 'Accept: application/hal+json' \
127
+ # -H 'Authorization: Bearer <Access token>'
128
+ #
129
+ # @beyond_api.scopes +prod:r+
130
+ #
131
+ # @param product_id [String] the product UUID
132
+ # @option params [Integer] :size the page size
133
+ # @option params [Integer] :page the page number
134
+ #
135
+ # @return [OpenStruct]
136
+ #
137
+ # @example
138
+ # @videos = session.products.videos("04c6ad65-465d-405e-a428-f73349104b65", size: 100, page: 0)
139
+ #
140
+ def videos(product_id, params = {})
141
+ response, status = BeyondApi::Request.get(@session, "/products/#{product_id}/videos", params)
142
+
143
+ handle_response(response, status)
144
+ end
145
+ end
146
+ end
@@ -3,19 +3,23 @@
3
3
  require "beyond_api/utils"
4
4
  require "beyond_api/resources/products/attachments"
5
5
  require "beyond_api/resources/products/availability"
6
+ require "beyond_api/resources/products/cross_sells"
6
7
  require "beyond_api/resources/products/custom_attributes"
7
8
  require "beyond_api/resources/products/images"
8
9
  require "beyond_api/resources/products/searches"
9
10
  require "beyond_api/resources/products/variation_properties"
11
+ require "beyond_api/resources/products/videos"
10
12
 
11
13
  module BeyondApi
12
14
  class Products < Base
13
15
  include BeyondApi::ProductAttachments
14
16
  include BeyondApi::ProductAvailability
17
+ include BeyondApi::ProductCrossSells
15
18
  include BeyondApi::ProductCustomAttributes
16
19
  include BeyondApi::ProductImages
17
20
  include BeyondApi::ProductSearches
18
21
  include BeyondApi::ProductVariationProperties
22
+ include BeyondApi::ProductVideos
19
23
  include BeyondApi::Utils
20
24
 
21
25
  #
@@ -74,7 +78,6 @@ module BeyondApi
74
78
  # "amount" : 99.95,
75
79
  # "currency" : "EUR"
76
80
  # },
77
- # "onSale" : true,
78
81
  # "visible" : true,
79
82
  # "taxClass" : "REGULAR",
80
83
  # "shippingWeight" : 100,
@@ -134,7 +137,6 @@ module BeyondApi
134
137
  # "amount": 99.95,
135
138
  # "currency": "EUR"
136
139
  # },
137
- # "onSale": true,
138
140
  # "visible": true,
139
141
  # "taxClass": "REGULAR",
140
142
  # "shippingWeight": 100,
@@ -183,7 +185,7 @@ module BeyondApi
183
185
  # @return true
184
186
  #
185
187
  # @example
186
- # session.products.delete("f461fb56-1984-4ade-bd4e-007c273cc923")
188
+ # session.products.delete("c06c61af-f99a-4698-90fa-8c3199ca732f")
187
189
  #
188
190
  def delete(product_id)
189
191
  response, status = BeyondApi::Request.delete(@session, "/products/#{product_id}")
@@ -206,7 +208,7 @@ module BeyondApi
206
208
  # @return [OpenStruct]
207
209
  #
208
210
  # @example
209
- # @product = session.products.find("f461fb56-1984-4ade-bd4e-007c273cc923")
211
+ # @product = session.products.find("75ebcb57-aefb-4963-8225-060c528e070d")
210
212
  #
211
213
  def find(product_id)
212
214
  response, status = BeyondApi::Request.get(@session, "/products/#{product_id}")
@@ -224,10 +226,10 @@ module BeyondApi
224
226
  # -H 'Accept: application/hal+json' \
225
227
  # -H 'Authorization: Bearer <Access token>' \
226
228
  # -d '{
227
- # "name" : "patched name",
228
- # "description" : "patched description. <p><br></p><blockquote> <ol><li><strong>\n<h1></h1><h6></h6><em><a href=\"http://example.com\" target=\"_blank\"><u>this is my test html</u></a>\n</em></strong> </li></ol> </blockquote>",
229
- # "productIdentifiers" : null,
230
- # "manufacturer" : "patched manufacturer"
229
+ # "name" : "patched name",
230
+ # "description" : "patched description. <p><br></p><blockquote> <ol><li><strong>\n<h1></h1><h6></h6><em><a href=\"http://example.com\" target=\"_blank\"><u>this is my test html</u></a>\n</em></strong> </li></ol> </blockquote>",
231
+ # "productIdentifiers" : null,
232
+ # "manufacturer" : "patched manufacturer"
231
233
  # }'
232
234
  #
233
235
  # @param product_id [String] the product UUID
@@ -242,7 +244,7 @@ module BeyondApi
242
244
  # "productIdentifiers": null,
243
245
  # "manufacturer": "patched manufacturer"
244
246
  # }
245
- # @product = session.products.update("75ebcb57-aefb-4963-8225-060c528e070d", body)
247
+ # @product = session.products.update("b69e3f47-03b8-40d2-843c-ae89a3d9bcdd", body)
246
248
  #
247
249
  def update(product_id, body)
248
250
  response, status = BeyondApi::Request.patch(@session, "/products/#{product_id}", body)
@@ -19,10 +19,10 @@ module BeyondApi
19
19
  # @return [OpenStruct]
20
20
  #
21
21
  # @example
22
- # @products = session.product_view_products.all(page: 0, size: 100)
22
+ # @products = session.products_view.all(page: 0, size: 100)
23
23
  #
24
24
  def all(params = {})
25
- response, status = BeyondApi::Request.get(@session, "/product-view/products")
25
+ response, status = BeyondApi::Request.get(@session, "/product-view/products", params)
26
26
 
27
27
  handle_response(response, status)
28
28
  end
@@ -37,7 +37,7 @@ module BeyondApi
37
37
  # @return [OpenStruct]
38
38
  #
39
39
  # @example
40
- # @tags = session.product_view_products.available_tags
40
+ # @tags = session.products_view.available_tags
41
41
  #
42
42
  def available_tags
43
43
  response, status = BeyondApi::Request.get(@session, "/product-view/products/search/find-available-tags")
@@ -58,7 +58,7 @@ module BeyondApi
58
58
  # @return [OpenStruct]
59
59
  #
60
60
  # @example
61
- # @product = session.product_view_products.find("e3e86c45-de19-4179-87a4-f5f7756a0294")
61
+ # @product = session.products_view.find("f75f8fb2-5a48-4d94-aad6-3d3692c06472")
62
62
  #
63
63
  def find(product_id)
64
64
  response, status = BeyondApi::Request.get(@session, "/product-view/products/#{product_id}")
@@ -66,51 +66,6 @@ module BeyondApi
66
66
  handle_response(response, status)
67
67
  end
68
68
 
69
- #
70
- # A +POST+ request is used to search for products using a query provided as request body.
71
- #
72
- # $ curl 'https://api-shop.beyondshop.cloud/api/product-view/products/search/find-by-query' -i -X POST \
73
- # -H 'Content-Type: application/json' \
74
- # -H 'Accept: application/hal+json' \
75
- # -d '{ "query": {"bool":{"filter":[{"term":{"tags":"number0"}},{"range":{"salesPrice.amount":{"lte":8.7}}},{"range":{"createdAt":{"gte":"now-1h"}}}]}}, "sort": "name.keyword"}'
76
- #
77
- # @param query [String] the hash to search
78
- #
79
- # @return [OpenStruct]
80
- #
81
- # @example
82
- # body = {
83
- # "query"=> {
84
- # "bool"=> {
85
- # "filter"=> [{
86
- # "term"=> {
87
- # "tags"=> "number0"
88
- # }
89
- # }, {
90
- # "range"=> {
91
- # "salesPrice.amount"=> {
92
- # "lte"=> 8.7
93
- # }
94
- # }
95
- # }, {
96
- # "range"=> {
97
- # "createdAt"=> {
98
- # "gte"=> "now-1h"
99
- # }
100
- # }
101
- # }]
102
- # }
103
- # },
104
- # "sort"=> "name.keyword"
105
- # }
106
- # @products = session.product_view_products.search_by_query(body)
107
- #
108
- def search_by_query(query)
109
- response, status = BeyondApi::Request.post(@session, "/product-view/products/search/find-by-query", body)
110
-
111
- handle_response(response, status)
112
- end
113
-
114
69
  #
115
70
  # A +GET+ request is used to search for products matching any tag of the list given by a client. The intention is to offer product search capabilities for a shop’s storefront.
116
71
  #
@@ -125,7 +80,7 @@ module BeyondApi
125
80
  # @return [OpenStruct]
126
81
  #
127
82
  # @example
128
- # @products = session.product_view_products.search_by_tag("number0", page: 0, size: 100)
83
+ # @products = session.products_view.search_by_tag("number0", {page: 0, size: 100})
129
84
  #
130
85
  def search_by_tag(tag, params = {})
131
86
  response, status = BeyondApi::Request.get(@session, "/product-view/products/search/find-by-tags", params.merge(tag: tag))
@@ -147,7 +102,7 @@ module BeyondApi
147
102
  # @return [OpenStruct]
148
103
  #
149
104
  # @example
150
- # @products = session.product_view_products.search_by_term("search snippet", page: 0, size: 100)
105
+ # @products = session.products_view.search_by_term("search snippet", {page: 0, size: 100})
151
106
  #
152
107
  def search_by_term(term, params = {})
153
108
  response, status = BeyondApi::Request.get(@session, "/product-view/products/search/find-by-term", params.merge(query: term))
@@ -103,7 +103,7 @@ module BeyondApi
103
103
  # "amount" => "19.99"
104
104
  # }
105
105
  # }
106
- # @shipping_zone = session.shipping_zones.create("905e981c-1489-45af-9138-0a7dc1f0b085", body)
106
+ # @shipping_zone = session.shipping_zones.create_shipping_method("905e981c-1489-45af-9138-0a7dc1f0b085", body)
107
107
  #
108
108
  def create_shipping_method(shipping_zone_id, body)
109
109
  response, status = BeyondApi::Request.post(@session, "/shipping-zones/#{shipping_zone_id}/shipping-methods", body)
@@ -240,15 +240,15 @@ module BeyondApi
240
240
  end
241
241
 
242
242
  #
243
- # A `PUT` request is used to sort the shipping zones. This is done by passing the self-links of the shipping zones in the desired order.all
243
+ # A +PUT+ request is used to sort the shipping zones. This is done by passing the self-links of the shipping zones in the desired order.all
244
244
  # The request must contain URIs for all shipping zones of the given page.
245
245
  #
246
246
  # $ curl 'https://api-shop.beyondshop.cloud/api/shipping-zones' -i -X PUT \
247
247
  # -H 'Content-Type: text/uri-list' \
248
248
  # -H 'Authorization: Bearer <Access token>' \
249
249
  # -d 'https://api-shop.beyondshop.cloud/api/shipping-zones/9fa80513-be11-494f-ac01-61832e0d7808
250
- # https://api-shop.beyondshop.cloud/api/shipping-zones/f0911d4c-1ab0-4bbd-88e3-cb675cbb7da7
251
- # https://api-shop.beyondshop.cloud/api/shipping-zones/ef2e7cb7-820e-4d62-b361-12240f635164'
250
+ # https://api-shop.beyondshop.cloud/api/shipping-zones/f0911d4c-1ab0-4bbd-88e3-cb675cbb7da7
251
+ # https://api-shop.beyondshop.cloud/api/shipping-zones/ef2e7cb7-820e-4d62-b361-12240f635164'
252
252
  #
253
253
  # @beyond_api.scopes +shpz:u+
254
254
  #
@@ -261,7 +261,7 @@ module BeyondApi
261
261
  # session.shipping_zones.sort(shipping_zone_ids)
262
262
  #
263
263
  def sort(shipping_zone_ids)
264
- body = shipping_zone_ids.map { |shipping_zone_id| "#{session.api_url}/shipping-zones/#{id}" }
264
+ body = shipping_zone_ids.map { |id| "#{session.api_url}/shipping-zones/#{id}" }
265
265
  response, status = BeyondApi::Request.put(@session, "/shipping-zones", body)
266
266
 
267
267
  handle_response(response, status, respond_with_true: true)
@@ -9,10 +9,7 @@ module BeyondApi
9
9
  #
10
10
  # A +GET+ request is used to retrieve the details of a shop’s address.
11
11
  #
12
- # $ curl 'https://api-shop.beyondshop.cloud/api/shop/address' -i -X GET \
13
- # -H 'Authorization: Bearer <Access token>'
14
- #
15
- # @beyond_api.scopes +shad:r+
12
+ # $ curl 'https://api-shop.beyondshop.cloud/api/shop/address' -i -X GET
16
13
  #
17
14
  # @return [OpenStruct]
18
15
  #
@@ -141,7 +138,7 @@ module BeyondApi
141
138
  #
142
139
  # @example
143
140
  # body = {
144
- # "dataUri" => "file.png?hash=212-2323-4343",
141
+ # "data_uri" => "file.png?hash=212-2323-4343",
145
142
  # "label" => "logo"
146
143
  # }
147
144
  #
@@ -225,7 +222,7 @@ module BeyondApi
225
222
  # @return [OpenStruct]
226
223
  #
227
224
  # @example
228
- # session.shop.image("2feee7ac-f1cb-4faf-9488-f3ce07394141")
225
+ # @image = session.shop.image("2feee7ac-f1cb-4faf-9488-f3ce07394141")
229
226
  #
230
227
  def image(image_id)
231
228
  response, status = BeyondApi::Request.get(@session, "/shop/images/#{image_id}")
@@ -245,7 +242,7 @@ module BeyondApi
245
242
  # @return [OpenStruct]
246
243
  #
247
244
  # @example
248
- # session.shop.images(size: 5, page: 1)
245
+ # @images = session.shop.images(size: 5, page: 1)
249
246
  #
250
247
  def images(params = {})
251
248
  response, status = BeyondApi::Request.get(@session, "/shop/images", params)
@@ -265,10 +262,10 @@ module BeyondApi
265
262
  # @return [OpenStruct]
266
263
  #
267
264
  # @example
268
- # session.shop.legal_content("right-of-withdrawal")
265
+ # @legal_content = session.shop.legal_content("right-of-withdrawal")
269
266
  #
270
267
  def legal_content(legal_content_type)
271
- response, status = BeyondApi::Request.get(@session, "/legal-content/right-of-withdrawal")
268
+ response, status = BeyondApi::Request.get(@session, "/legal-content/#{legal_content_type}")
272
269
 
273
270
  handle_response(response, status)
274
271
  end
@@ -286,10 +283,10 @@ module BeyondApi
286
283
  # @return [OpenStruct]
287
284
  #
288
285
  # @example
289
- # session.shop.legal_contents(size: 5, page: 1)
286
+ # @legal_content = session.shop.legal_contents(size: 5, page: 1)
290
287
  #
291
288
  def legal_contents(params = {})
292
- response, status = BeyondApi::Request.get(@session, "/legal-content")
289
+ response, status = BeyondApi::Request.get(@session, "/legal-content", params)
293
290
 
294
291
  handle_response(response, status)
295
292
  end
@@ -305,7 +302,7 @@ module BeyondApi
305
302
  # @return [OpenStruct]
306
303
  #
307
304
  # @example
308
- # session.shop.legal_details
305
+ # @legal_details = session.shop.legal_details
309
306
  #
310
307
  def legal_details
311
308
  response, status = BeyondApi::Request.get(@session, "/shop/legal")
@@ -361,7 +358,6 @@ module BeyondApi
361
358
  # -H 'Authorization: Bearer <Access token>' \
362
359
  # -d '{
363
360
  # "name" : "anotherName",
364
- # "closedShopMessage" : "This shop is opening soon.",
365
361
  # "primaryHostname" : "cornershop.amazingdiscounts.xyz",
366
362
  # "fallbackHostname" : "cornershop.beyondshop.cloud",
367
363
  # "tax" : {
@@ -384,24 +380,23 @@ module BeyondApi
384
380
  # @example
385
381
  # body = {
386
382
  # "name" => "anotherName",
387
- # "closedShopMessage" => "This shop is opening soon.",
388
- # "primaryHostname" => "cornershop.amazingdiscounts.xyz",
389
- # "fallbackHostname" => "cornershop.beyondshop.cloud",
383
+ # "primary_hostname" => "cornershop.amazingdiscounts.xyz",
384
+ # "fallback_hostname" => "cornershop.beyondshop.cloud",
390
385
  # "tax" => {
391
386
  # "taxModel" => "GROSS",
392
387
  # "vatExempted" => false
393
388
  # },
394
389
  # "currencies" => [ "EUR", "USD", "GBP" ],
395
- # "defaultCurrency" => "USD",
390
+ # "default_currency" => "USD",
396
391
  # "locales" => [ "en-GB", "de-DE" ],
397
- # "defaultLocale" => "en-GB",
398
- # "closedByMerchant" => false
392
+ # "default_locale" => "en-GB",
393
+ # "closed_by_merchant" => false
399
394
  # }
400
395
  #
401
396
  # session.shop.update(body)
402
397
  #
403
398
  def update(body)
404
- response, status = BeyondApi::Request.patch(@session, "/shop")
399
+ response, status = BeyondApi::Request.patch(@session, "/shop", body)
405
400
 
406
401
  handle_response(response, status)
407
402
  end
@@ -513,7 +508,7 @@ module BeyondApi
513
508
  #
514
509
  # @example
515
510
  # body = {
516
- # "vatId" => "GB 111111111"
511
+ # "vat_id" => "GB 111111111"
517
512
  # }
518
513
  #
519
514
  # session.shop.update_legal_details(body)
@@ -34,7 +34,7 @@ module BeyondApi
34
34
  # @return [OpenStruct]
35
35
  #
36
36
  # @example
37
- # @signers = session.signers.create
37
+ # @signer = session.signers.create
38
38
  #
39
39
  def create
40
40
  response, status = BeyondApi::Request.post(@session, "/signers")
@@ -46,7 +46,7 @@ module BeyondApi
46
46
  # @return [OpenStruct]
47
47
  #
48
48
  # @example
49
- # session.users.all(params = {})
49
+ # @users = session.users.all(size: 100, page: 0)
50
50
  #
51
51
  def all(params = {})
52
52
  response, status = BeyondApi::Request.get(@session, "/users")
@@ -95,8 +95,6 @@ module BeyondApi
95
95
  # "newUsername" : "new username"
96
96
  # }'
97
97
  #
98
- # @beyond_api.scopes ++
99
- #
100
98
  # @param user_id [String] the user UUID
101
99
  # @param new_username [String] the new username
102
100
  # @param current_password [String] the current password
@@ -132,7 +130,12 @@ module BeyondApi
132
130
  # @return [OpenStruct]
133
131
  #
134
132
  # @example
135
- # session.users.create(body)
133
+ # body = {
134
+ # "username" => "user",
135
+ # "password" => "GoodPassword01!;)",
136
+ # "email" => "baxter@example.org"
137
+ # }
138
+ # @user = session.users.create(body)
136
139
  #
137
140
  def create(body)
138
141
  response, status = BeyondApi::Request.post(@session, "/users", body)
@@ -197,7 +200,7 @@ module BeyondApi
197
200
  # @return [OpenStruct]
198
201
  #
199
202
  # @example
200
- # session.users.find(user_id)
203
+ # @user = session.users.find("e4b528ce-bb9e-4cc5-95e1-7dadfa4cf0f3")
201
204
  #
202
205
  def find(user_id)
203
206
  response, status = BeyondApi::Request.get(@session, "/users/#{user_id}")
@@ -218,7 +221,7 @@ module BeyondApi
218
221
  # @return [OpenStruct]
219
222
  #
220
223
  # @example
221
- # session.users.roles(user_id)
224
+ # @roles = session.users.roles("0d4bd0a5-94dc-498e-b6a6-305c619bb20d")
222
225
  #
223
226
  def roles(user_id)
224
227
  response, status = BeyondApi::Request.get(@session, "/users/#{user_id}/roles")
@@ -240,7 +243,7 @@ module BeyondApi
240
243
  # @return [OpenStruct]
241
244
  #
242
245
  # @example
243
- # session.users.search_by_username(username)
246
+ # @user = session.users.search_by_username(username)
244
247
  #
245
248
  def search_by_username(username)
246
249
  response, status = BeyondApi::Request.get(@session, "/users/search/find-by-username", username: username)
@@ -351,7 +354,7 @@ module BeyondApi
351
354
  #
352
355
  # A +POST+ request is used to verify a password against the password guidelines.
353
356
  #
354
- # $ curl 'https://api-shop.beyondshop.cloud/api/users/verify-password' -i -X POST \
357
+ # $ curl 'https://api-shop.beyondshop.cloud/api/users/verify-password?userRole=merchant' -i -X POST \
355
358
  # -H 'Content-Type: application/json' \
356
359
  # -H 'Accept: application/json' \
357
360
  # -d '{
@@ -367,8 +370,8 @@ module BeyondApi
367
370
  # @example
368
371
  # session.users.verify_password(password)
369
372
  #
370
- def verify_password(password)
371
- response, status = BeyondApi::Request.post(@session, "/users/verify-password", password: password)
373
+ def verify_password(password, user_role)
374
+ response, status = BeyondApi::Request.post(@session, "/users/verify-password", password: password, user_role: user_role)
372
375
 
373
376
  handle_response(response, status, respond_with_true: true)
374
377
  end