Skip to content

Commit 7ea2027

Browse files
author
unabris
committed
Merge remote-tracking branch 'upstream/master'
2 parents 48678d4 + 3c356da commit 7ea2027

File tree

11 files changed

+64
-96
lines changed

11 files changed

+64
-96
lines changed

CHANGELOG.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,31 @@
1-
### v0.7.0.pre
1+
### v0.8.0.pre
2+
3+
* deprecations
4+
* Remove `BeyondApi::Shop#open`
5+
* Remove `BeyondApi::Shop#close`
6+
* Remove `BeyondApi::Scopes`
27

38
* features
4-
* Add `Products#assign_variation_images_differentiator` method
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+
15+
### v0.7.1.pre
16+
17+
* bug-fixes
18+
* Allow to create a `BeyondApi::Session` without `access_token` and `refresh_token`
19+
* Fix no-Rails logger
20+
21+
### v0.7.0.pre
522

623
* deprecations
724
* `Variations#adjust_stock_level` receives parameter `relative_amount` instead of `body`
825

26+
* features
27+
* Add `Products#assign_variation_images_differentiator` method
28+
929
### v0.6.0.pre
1030

1131
* bug-fixes

Gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
beyond_api (0.7.0.pre)
4+
beyond_api (0.8.0.pre)
55
faraday (~> 0.15)
66

77
GEM
@@ -52,4 +52,4 @@ DEPENDENCIES
5252
yard (~> 0.9)
5353

5454
BUNDLED WITH
55-
2.1.0.pre.3
55+
2.1.4

lib/beyond_api.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33
require "beyond_api/connection"
44
require "beyond_api/request"
55
require "beyond_api/session"
6+
require "beyond_api/error"
67

78
require "beyond_api/ext"
89
require "beyond_api/utils"
910

10-
module BeyondApi
11-
class Error < StandardError; end
11+
require "logger"
1212

13+
module BeyondApi
1314
def self.logger
1415
@@logger ||= defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
1516
end

lib/beyond_api/error.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

lib/beyond_api/request.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class << self
99
define_method(method) do |session, path, params = {}|
1010
response = BeyondApi::Connection.default.send(method) do |request|
1111
request.url(session.api_url + path)
12-
request.headers['Authorization'] = "Bearer #{ session.access_token }"
12+
request.headers['Authorization'] = "Bearer #{ session.access_token }" unless session.access_token.nil?
1313
request.params = params.to_h.camelize_keys
1414
end
1515

@@ -21,7 +21,7 @@ class << self
2121
define_method(method) do |session, path, body = {}, params = {}|
2222
response = BeyondApi::Connection.default.send(method) do |request|
2323
request.url(session.api_url + path)
24-
request.headers['Authorization'] = "Bearer #{ session.access_token }"
24+
request.headers['Authorization'] = "Bearer #{ session.access_token }" unless session.access_token.nil?
2525
request.params = params.to_h.camelize_keys
2626
request.body = body.camelize_keys.to_json
2727
end
@@ -34,7 +34,7 @@ class << self
3434
def self.upload(session, path, file_binary, content_type, params)
3535
response = BeyondApi::Connection.default.post do |request|
3636
request.url(session.api_url + path)
37-
request.headers['Authorization'] = "Bearer #{ session.access_token }"
37+
request.headers['Authorization'] = "Bearer #{ session.access_token }" unless session.access_token.nil?
3838
request.headers['Content-Type'] = content_type
3939
request.params = params.to_h.camelize_keys
4040
request.body = file_binary

lib/beyond_api/resources/base.rb

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@ class InvalidSessionError < StandardError; end
88

99
def initialize(session)
1010
@session = session
11-
raise InvalidSessionError.new("Invalid session") unless session.is_a? BeyondApi::Session
12-
if session.api_url.nil? || session.access_token.nil? || session.refresh_token.nil?
13-
raise InvalidSessionError.new("Session api_url, access_token and refresh_token cannot be nil")
14-
end
11+
12+
raise InvalidSessionError, "Invalid session" unless session.is_a? BeyondApi::Session
13+
raise InvalidSessionError, "Session api_url cannot be nil" if session.api_url.nil?
1514
end
1615
end
1716
end

lib/beyond_api/resources/scopes.rb

Lines changed: 0 additions & 31 deletions
This file was deleted.

lib/beyond_api/resources/shop.rb

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -65,26 +65,6 @@ def attributes(params = {})
6565
handle_response(response, status)
6666
end
6767

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-
8868
#
8969
# A +POST+ request is used to create a shop attribute.
9070
#
@@ -310,26 +290,6 @@ def legal_details
310290
handle_response(response, status)
311291
end
312292

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-
333293
#
334294
# A +GET+ request is issued to search for shop images by label.
335295
#

lib/beyond_api/resources/token.rb

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ class InvalidSessionError < StandardError; end
88

99
def initialize(session)
1010
@session = session
11+
1112
raise InvalidSessionError.new("Invalid session") unless session.is_a? BeyondApi::Session
1213
raise InvalidSessionError.new("Session api_url cannot be nil") if session.api_url.nil?
1314
end
@@ -17,22 +18,31 @@ def create(code)
1718
grant_type: "authorization_code",
1819
code: code)
1920

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)
2622
end
2723

2824
def refresh
2925
response, status = BeyondApi::Request.token(@session.api_url + "/oauth/token",
3026
grant_type: "refresh_token",
3127
refresh_token: @session.refresh_token)
3228

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)
3342
if status.between?(200, 299)
3443
@session.access_token = response["access_token"]
3544
@session.refresh_token = response["refresh_token"]
45+
@session
3646
else
3747
BeyondApi::Error.new(response)
3848
end

lib/beyond_api/session.rb

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
require "beyond_api/resources/product_attribute_definitions"
1414
require "beyond_api/resources/products_view"
1515
require "beyond_api/resources/products"
16-
require "beyond_api/resources/scopes"
1716
require "beyond_api/resources/script_tags"
1817
require "beyond_api/resources/shipping_zones"
1918
require "beyond_api/resources/shop"
@@ -82,10 +81,6 @@ def products
8281
BeyondApi::Products.new(self)
8382
end
8483

85-
def scopes
86-
BeyondApi::Scopes.new(self)
87-
end
88-
8984
def script_tags
9085
BeyondApi::ScriptTags.new(self)
9186
end

0 commit comments

Comments
 (0)