beyond_api 0.7.1.pre → 0.8.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6e0129444a024277fbe0f4abee48a66429124bd1a2e6a58111c9de45009a3a33
4
- data.tar.gz: d2456258eb86285646a5cd0560f76156a54eaea591375c6b3a9a11e85811bbd5
3
+ metadata.gz: 687b39004d4ab172f3a2433b310fd09b95d3aa241be7e5f782941ae0edbeb491
4
+ data.tar.gz: 0524b2418f1185ae9902054381fc17ecd5e97fba16b9b2af5df80fd7bca47f65
5
5
  SHA512:
6
- metadata.gz: e068ce40c0df8c695b847d086bb214f4d6b77839743ed1c8284d5be7e765fbeb3d0d6db6757ee6c74aae201765b1e4c47997292100f461cb64cd1608e376395f
7
- data.tar.gz: 2196eed2089a57bd8eed949b2076d963e079324aaeccb08e5e3bb566e2a6f48c71177e6301d43fcef8aaf83e1a68f08fead959db0d74763da3a0b832899ec4b6
6
+ metadata.gz: 93a00f049eb3570f335a5ea6ad1eefc323ed1ea96b9e642dafa3277ad5854ccc6edc16d5b7aae156cd46cf7311809cdad4b4eb241d2935e24895e1bd581857ce
7
+ data.tar.gz: 85c9dfe12bbeb3dd6592a6371be3611f85b009a6eb050cf12bba2cf5a9f93025809a44f46364ec5e9c7c474f542108e8a0112ff16beac30e410f8d85bbe0b7a7
data/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ### v0.8.0.pre
2
+
3
+ * deprecations
4
+ * Remove `BeyondApi::Shop#open`
5
+ * Remove `BeyondApi::Shop#close`
6
+ * Remove `BeyondApi::Scopes`
7
+
8
+ * features
9
+ * Add `BeyondApi::Token#client_credentials`
10
+
11
+ * enhancements
12
+ * Create a custom `BeyondApi::Error` class
13
+ * Avoid duplicated code on token response handling
14
+
1
15
  ### v0.7.1.pre
2
16
 
3
17
  * bug-fixes
@@ -6,12 +20,12 @@
6
20
 
7
21
  ### v0.7.0.pre
8
22
 
9
- * features
10
- * Add `Products#assign_variation_images_differentiator` method
11
-
12
23
  * deprecations
13
24
  * `Variations#adjust_stock_level` receives parameter `relative_amount` instead of `body`
14
25
 
26
+ * features
27
+ * Add `Products#assign_variation_images_differentiator` method
28
+
15
29
  ### v0.6.0.pre
16
30
 
17
31
  * bug-fixes
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- beyond_api (0.7.1.pre)
4
+ beyond_api (0.8.0.pre)
5
5
  faraday (~> 0.15)
6
6
 
7
7
  GEM
@@ -52,4 +52,4 @@ DEPENDENCIES
52
52
  yard (~> 0.9)
53
53
 
54
54
  BUNDLED WITH
55
- 2.1.0.pre.3
55
+ 2.1.4
data/lib/beyond_api.rb CHANGED
@@ -3,6 +3,7 @@ require "beyond_api/version"
3
3
  require "beyond_api/connection"
4
4
  require "beyond_api/request"
5
5
  require "beyond_api/session"
6
+ require "beyond_api/error"
6
7
 
7
8
  require "beyond_api/ext"
8
9
  require "beyond_api/utils"
@@ -10,8 +11,6 @@ require "beyond_api/utils"
10
11
  require "logger"
11
12
 
12
13
  module BeyondApi
13
- class Error < StandardError; end
14
-
15
14
  def self.logger
16
15
  @@logger ||= defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
17
16
  end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BeyondApi
4
+ class Error
5
+ attr_reader :error_id, :details, :message, :trace_id
6
+
7
+ def initialize(data)
8
+ @error_id = data['errorId']
9
+ @details = data['details']
10
+ @message = data['message']
11
+ @trace_id = data['traceId']
12
+ end
13
+ end
14
+ end
@@ -65,26 +65,6 @@ module BeyondApi
65
65
  handle_response(response, status)
66
66
  end
67
67
 
68
- #
69
- # A +POST+ request is used to close a shop.
70
- #
71
- # $ curl 'https://api-shop.beyondshop.cloud/api/shop/close' -i -X POST \
72
- # -H 'Content-Type: application/json' \
73
- # -H 'Authorization: Bearer <Access token>'
74
- #
75
- # @beyond_api.scopes +shcl:c+
76
- #
77
- # @return true
78
- #
79
- # @example
80
- # session.shop.close
81
- #
82
- def close
83
- response, status = BeyondApi::Request.post(@session, "/shop/close")
84
-
85
- handle_response(response, status, respond_with_true: true)
86
- end
87
-
88
68
  #
89
69
  # A +POST+ request is used to create a shop attribute.
90
70
  #
@@ -310,26 +290,6 @@ module BeyondApi
310
290
  handle_response(response, status)
311
291
  end
312
292
 
313
- #
314
- # A +POST+ request is used to open a shop.
315
- #
316
- # $ curl 'https://api-shop.beyondshop.cloud/api/shop/open' -i -X POST \
317
- # -H 'Content-Type: application/json' \
318
- # -H 'Authorization: Bearer <Access token>'
319
- #
320
- # @beyond_api.scopes +shcl:c+
321
- #
322
- # @return true
323
- #
324
- # @example
325
- # session.shop.open
326
- #
327
- def open
328
- response, status = BeyondApi::Request.post(@session, "/shop/open")
329
-
330
- handle_response(response, status, respond_with_true: true)
331
- end
332
-
333
293
  #
334
294
  # A +GET+ request is issued to search for shop images by label.
335
295
  #
@@ -8,6 +8,7 @@ module BeyondApi
8
8
 
9
9
  def initialize(session)
10
10
  @session = session
11
+
11
12
  raise InvalidSessionError.new("Invalid session") unless session.is_a? BeyondApi::Session
12
13
  raise InvalidSessionError.new("Session api_url cannot be nil") if session.api_url.nil?
13
14
  end
@@ -17,12 +18,7 @@ module BeyondApi
17
18
  grant_type: "authorization_code",
18
19
  code: code)
19
20
 
20
- if status.between?(200, 299)
21
- @session.access_token = response["access_token"]
22
- @session.refresh_token = response["refresh_token"]
23
- else
24
- BeyondApi::Error.new(response)
25
- end
21
+ handle_response(response, status)
26
22
  end
27
23
 
28
24
  def refresh
@@ -30,9 +26,23 @@ module BeyondApi
30
26
  grant_type: "refresh_token",
31
27
  refresh_token: @session.refresh_token)
32
28
 
29
+ handle_response(response, status)
30
+ end
31
+
32
+ def client_credentials
33
+ response, status = BeyondApi::Request.token(@session.api_url + "/oauth/token",
34
+ grant_type: "client_credentials")
35
+
36
+ handle_response(response, status)
37
+ end
38
+
39
+ private
40
+
41
+ def handle_response(response, status)
33
42
  if status.between?(200, 299)
34
43
  @session.access_token = response["access_token"]
35
44
  @session.refresh_token = response["refresh_token"]
45
+ @session
36
46
  else
37
47
  BeyondApi::Error.new(response)
38
48
  end
@@ -13,7 +13,6 @@ require "beyond_api/resources/payment_methods"
13
13
  require "beyond_api/resources/product_attribute_definitions"
14
14
  require "beyond_api/resources/products_view"
15
15
  require "beyond_api/resources/products"
16
- require "beyond_api/resources/scopes"
17
16
  require "beyond_api/resources/script_tags"
18
17
  require "beyond_api/resources/shipping_zones"
19
18
  require "beyond_api/resources/shop"
@@ -82,10 +81,6 @@ module BeyondApi
82
81
  BeyondApi::Products.new(self)
83
82
  end
84
83
 
85
- def scopes
86
- BeyondApi::Scopes.new(self)
87
- end
88
-
89
84
  def script_tags
90
85
  BeyondApi::ScriptTags.new(self)
91
86
  end
@@ -1,3 +1,3 @@
1
1
  module BeyondApi
2
- VERSION = "0.7.1.pre".freeze
2
+ VERSION = "0.8.0.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.7.1.pre
4
+ version: 0.8.0.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-02-20 00:00:00.000000000 Z
13
+ date: 2020-02-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -133,6 +133,7 @@ files:
133
133
  - bin/setup
134
134
  - lib/beyond_api.rb
135
135
  - lib/beyond_api/connection.rb
136
+ - lib/beyond_api/error.rb
136
137
  - lib/beyond_api/ext.rb
137
138
  - lib/beyond_api/request.rb
138
139
  - lib/beyond_api/resources/base.rb
@@ -156,7 +157,6 @@ files:
156
157
  - lib/beyond_api/resources/products/variation_properties.rb
157
158
  - lib/beyond_api/resources/products/videos.rb
158
159
  - lib/beyond_api/resources/products_view.rb
159
- - lib/beyond_api/resources/scopes.rb
160
160
  - lib/beyond_api/resources/script_tags.rb
161
161
  - lib/beyond_api/resources/shipping_zones.rb
162
162
  - lib/beyond_api/resources/shop.rb
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "beyond_api/utils"
4
-
5
- module BeyondApi
6
- class Scopes < Base
7
- include BeyondApi::Utils
8
-
9
- #
10
- # A +GET+ request will list all scopes in the system.
11
- #
12
- # $ curl 'https://api-shop.beyondshop.cloud/api/scopes' -i -X GET \
13
- # -H 'Authorization: Bearer <Access token>'
14
- #
15
- # @beyond_api.scopes +scop:r+
16
- #
17
- # @option params [Integer] :size the page size
18
- # @option params [Integer] :page the page number
19
-
20
- # @return [OpenStruct]
21
- #
22
- # @example
23
- # @scopes = session.scopes.all(size: 20, page: 0)
24
- #
25
- def all(params = {})
26
- response, status = BeyondApi::Request.get(@session, "/scopes", params)
27
-
28
- handle_response(response, status)
29
- end
30
- end
31
- end