easy_meli 0.4.0 → 0.5.0
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/easy_meli.rb +3 -3
- data/lib/easy_meli/api_client.rb +10 -0
- data/lib/easy_meli/authorization_client.rb +6 -6
- data/lib/easy_meli/errors.rb +6 -0
- data/lib/easy_meli/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d5a3424202e135a649e069fb9381c26e7e6760d9e387821c3e7f2f0358ec4f58
|
4
|
+
data.tar.gz: f947be600fd5c1654b7c920c630f1e916edf58a0c8244c5d5a83def1a2fec288
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0fb2a5a757c53a87aa5fa77a24a203ae65ab58ca7c979bba04a358df8dd78459e01395f36314c399b33beb15fc03d37b4945ff937c5b19b4281190e098d7910e
|
7
|
+
data.tar.gz: 76a41f9314e945a4ce0846f922d7fb3e9f2d0937a0f74094fc03b52927b105dfa48fb4cc7898f9baff6d850988f8a1d156ef105ebfd54607b498dbc688fd8372
|
data/CHANGELOG.md
ADDED
data/lib/easy_meli.rb
CHANGED
@@ -25,12 +25,12 @@ module EasyMeli
|
|
25
25
|
EasyMeli::AuthorizationClient.create_token(code, redirect_uri, logger: logger)
|
26
26
|
end
|
27
27
|
|
28
|
-
def self.
|
29
|
-
EasyMeli::AuthorizationClient.
|
28
|
+
def self.access_token(refresh_token, logger: nil)
|
29
|
+
EasyMeli::AuthorizationClient.access_token(refresh_token, logger: logger)
|
30
30
|
end
|
31
31
|
|
32
32
|
def self.api_client(access_token: nil, refresh_token: nil, logger: nil)
|
33
|
-
access_token
|
33
|
+
access_token ||= self.access_token(refresh_token, logger: logger) if refresh_token
|
34
34
|
EasyMeli::ApiClient.new(access_token, logger: logger)
|
35
35
|
end
|
36
36
|
end
|
data/lib/easy_meli/api_client.rb
CHANGED
@@ -11,6 +11,10 @@ class EasyMeli::ApiClient
|
|
11
11
|
'Malformed access_token' => 'Malformed access token'
|
12
12
|
}
|
13
13
|
|
14
|
+
STATUS_ERRORS = {
|
15
|
+
429 => EasyMeli::TooManyRequestsError
|
16
|
+
}
|
17
|
+
|
14
18
|
base_uri API_ROOT_URL
|
15
19
|
headers EasyMeli::DEFAULT_HEADERS
|
16
20
|
format :json
|
@@ -47,6 +51,7 @@ class EasyMeli::ApiClient
|
|
47
51
|
self.class.send(verb, path, params.merge(query)).tap do |response|
|
48
52
|
logger&.log response
|
49
53
|
check_authentication(response)
|
54
|
+
check_status(response)
|
50
55
|
end
|
51
56
|
end
|
52
57
|
|
@@ -65,4 +70,9 @@ class EasyMeli::ApiClient
|
|
65
70
|
return if body.nil?
|
66
71
|
body['error'].to_s.empty? ? body['message'] : body['error']
|
67
72
|
end
|
73
|
+
|
74
|
+
def check_status(response)
|
75
|
+
status_error = STATUS_ERRORS[response.code]
|
76
|
+
raise status_error.new(response) if status_error
|
77
|
+
end
|
68
78
|
end
|
@@ -35,7 +35,7 @@ class EasyMeli::AuthorizationClient
|
|
35
35
|
params = {
|
36
36
|
client_id: EasyMeli.configuration.application_id,
|
37
37
|
response_type: 'code',
|
38
|
-
redirect_uri: redirect_uri
|
38
|
+
redirect_uri: redirect_uri
|
39
39
|
}
|
40
40
|
HTTParty::Request.new(:get, country_auth_url(country_code), query: params).uri.to_s
|
41
41
|
end
|
@@ -49,8 +49,8 @@ class EasyMeli::AuthorizationClient
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
-
def self.
|
53
|
-
response = self.new(logger: logger).
|
52
|
+
def self.access_token(refresh_token, logger: nil)
|
53
|
+
response = self.new(logger: logger).access_token_with_response(refresh_token)
|
54
54
|
if response.success?
|
55
55
|
response.to_h[EasyMeli::AuthorizationClient::ACCESS_TOKEN_KEY]
|
56
56
|
else
|
@@ -67,7 +67,7 @@ class EasyMeli::AuthorizationClient
|
|
67
67
|
post_auth(query_params)
|
68
68
|
end
|
69
69
|
|
70
|
-
def
|
70
|
+
def access_token_with_response(refresh_token)
|
71
71
|
query_params = merge_auth_params(
|
72
72
|
grant_type: 'refresh_token',
|
73
73
|
refresh_token: refresh_token
|
@@ -84,7 +84,7 @@ class EasyMeli::AuthorizationClient
|
|
84
84
|
end
|
85
85
|
|
86
86
|
def self.country_auth_url(country_code)
|
87
|
-
url = BASE_AUTH_URLS[country_code.to_s.upcase.to_sym] ||
|
87
|
+
url = BASE_AUTH_URLS[country_code.to_s.upcase.to_sym] ||
|
88
88
|
(raise ArgumentError.new('%s is an invalid country code' % country_code))
|
89
89
|
[url, AUTH_PATH].join
|
90
90
|
end
|
@@ -95,4 +95,4 @@ class EasyMeli::AuthorizationClient
|
|
95
95
|
client_secret: EasyMeli.configuration.secret_key
|
96
96
|
)
|
97
97
|
end
|
98
|
-
end
|
98
|
+
end
|
data/lib/easy_meli/errors.rb
CHANGED
data/lib/easy_meli/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easy_meli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Northam
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -116,6 +116,7 @@ extensions: []
|
|
116
116
|
extra_rdoc_files: []
|
117
117
|
files:
|
118
118
|
- ".gitignore"
|
119
|
+
- CHANGELOG.md
|
119
120
|
- Gemfile
|
120
121
|
- LICENSE.txt
|
121
122
|
- README.md
|