easy_meli 0.6.6 → 0.6.8
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/.github/workflows/ci.yml +2 -2
- data/.gitignore +2 -2
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +50 -0
- data/README.md +3 -3
- data/easy_meli.gemspec +1 -1
- data/lib/easy_meli/api_client.rb +7 -2
- data/lib/easy_meli/error_parser.rb +11 -3
- data/lib/easy_meli/version.rb +1 -1
- metadata +10 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c37dbef23008586c37f7333f98a0f059518a910d02dd55a9c084f1f9774a74a1
|
4
|
+
data.tar.gz: 3419001c75cc491f926a566546abe0eebf4104783a0960f8c4275552747e76d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eedbbdcedbf0567c6facc8a6a6efd4fd265ab05a174f3410f2e8f31982ccd0e1a80d623046f0dc076644991aff6309480119e1e8b6fd7adb8db851ece1afc089
|
7
|
+
data.tar.gz: d82dac95de82fa8a3c4a160c25de33981a09d989462e6451f77f792ad5b7d2bad68caf6589308eb878edd73b668a79a2ca0093b8cd6cece91d73998eedae7f3e
|
data/.github/workflows/ci.yml
CHANGED
@@ -9,7 +9,7 @@ jobs:
|
|
9
9
|
runs-on: ubuntu-latest
|
10
10
|
strategy:
|
11
11
|
matrix:
|
12
|
-
ruby_version: [ '2.
|
12
|
+
ruby_version: [ '2.7' ]
|
13
13
|
steps:
|
14
14
|
- name: Checkout
|
15
15
|
uses: actions/checkout@v2
|
@@ -24,7 +24,7 @@ jobs:
|
|
24
24
|
key: ${{ runner.os }}-gem-use-ruby-${{ matrix.ruby_version }}-${{ hashFiles('**/Gemfile.lock') }}
|
25
25
|
- name: Bundle install
|
26
26
|
run: |
|
27
|
-
gem install bundler:
|
27
|
+
gem install bundler:2.2.24
|
28
28
|
bundle config path vendor/bundle
|
29
29
|
bundle install --jobs 4 --retry 3
|
30
30
|
- name: Run tests
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## V 0.6.8
|
4
|
+
- Fix error when the api response includes error_description instead of message key.
|
5
|
+
|
6
|
+
## V 0.6.7
|
7
|
+
- Send `access_token` in the Authorization Header instead of the query params [See Official Documentation](https://developers.mercadolibre.com.ar/es_ar/desarrollo-seguro#header)
|
8
|
+
|
3
9
|
## V 0.6.6
|
4
10
|
- Classify status code 401 as EasyMeli::InvalidTokenError.
|
5
11
|
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
easy_meli (0.6.8)
|
5
|
+
httparty (~> 0.18)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
addressable (2.8.0)
|
11
|
+
public_suffix (>= 2.0.2, < 5.0)
|
12
|
+
coderay (1.1.2)
|
13
|
+
crack (0.4.3)
|
14
|
+
safe_yaml (~> 1.0.0)
|
15
|
+
hashdiff (1.0.1)
|
16
|
+
httparty (0.18.1)
|
17
|
+
mime-types (~> 3.0)
|
18
|
+
multi_xml (>= 0.5.2)
|
19
|
+
method_source (1.0.0)
|
20
|
+
mime-types (3.3.1)
|
21
|
+
mime-types-data (~> 3.2015)
|
22
|
+
mime-types-data (3.2020.1104)
|
23
|
+
minitest (5.14.0)
|
24
|
+
mocha (1.11.2)
|
25
|
+
multi_xml (0.6.0)
|
26
|
+
pry (0.13.1)
|
27
|
+
coderay (~> 1.1)
|
28
|
+
method_source (~> 1.0)
|
29
|
+
public_suffix (4.0.6)
|
30
|
+
rake (13.0.1)
|
31
|
+
safe_yaml (1.0.5)
|
32
|
+
webmock (3.8.3)
|
33
|
+
addressable (>= 2.3.6)
|
34
|
+
crack (>= 0.3.2)
|
35
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
36
|
+
|
37
|
+
PLATFORMS
|
38
|
+
ruby
|
39
|
+
|
40
|
+
DEPENDENCIES
|
41
|
+
bundler (~> 2.2.24)
|
42
|
+
easy_meli!
|
43
|
+
minitest (~> 5.0)
|
44
|
+
mocha
|
45
|
+
pry
|
46
|
+
rake (~> 13.0)
|
47
|
+
webmock
|
48
|
+
|
49
|
+
BUNDLED WITH
|
50
|
+
2.2.24
|
data/README.md
CHANGED
@@ -63,7 +63,7 @@ You can also pass a logger to any methods that make remote calls. The logger cla
|
|
63
63
|
|
64
64
|
```ruby
|
65
65
|
EasyMeli.create_token('the_code_in_the_redirect', 'the_same_redirect_url_as_above', logger: my_logger)
|
66
|
-
EasyMeli.api_client(
|
66
|
+
EasyMeli.api_client(access_token: access_token, logger: my_logger)
|
67
67
|
```
|
68
68
|
|
69
69
|
### Example of how to retrieve a user profile
|
@@ -73,8 +73,8 @@ EasyMeli.configure do |config|
|
|
73
73
|
config.secret_key = "your_secret_key"
|
74
74
|
end
|
75
75
|
|
76
|
-
|
77
|
-
response =
|
76
|
+
client = EasyMeli.api_client(access_token: access_token)
|
77
|
+
response = client.get('/users/me')
|
78
78
|
|
79
79
|
```
|
80
80
|
|
data/easy_meli.gemspec
CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
|
|
31
31
|
|
32
32
|
spec.add_dependency "httparty", "~> 0.18"
|
33
33
|
|
34
|
-
spec.add_development_dependency "bundler", "~>
|
34
|
+
spec.add_development_dependency "bundler", "~> 2.2.24"
|
35
35
|
spec.add_development_dependency "rake", "~> 13.0"
|
36
36
|
spec.add_development_dependency "minitest", "~> 5.0"
|
37
37
|
spec.add_development_dependency "pry"
|
data/lib/easy_meli/api_client.rb
CHANGED
@@ -6,7 +6,6 @@ class EasyMeli::ApiClient
|
|
6
6
|
API_ROOT_URL = 'https://api.mercadolibre.com'
|
7
7
|
|
8
8
|
base_uri API_ROOT_URL
|
9
|
-
headers EasyMeli::DEFAULT_HEADERS
|
10
9
|
format :json
|
11
10
|
|
12
11
|
attr_reader :logger, :access_token
|
@@ -36,7 +35,7 @@ class EasyMeli::ApiClient
|
|
36
35
|
|
37
36
|
def send_request(verb, path = '', params = {})
|
38
37
|
query = params[:query] || params['query'] || {}
|
39
|
-
|
38
|
+
params[:headers] = EasyMeli::DEFAULT_HEADERS.merge(authorization_header)
|
40
39
|
|
41
40
|
self.class.send(verb, path, params.merge(query)).tap do |response|
|
42
41
|
logger&.log response
|
@@ -62,4 +61,10 @@ class EasyMeli::ApiClient
|
|
62
61
|
raise exception.new(response)
|
63
62
|
end
|
64
63
|
end
|
64
|
+
|
65
|
+
def authorization_header
|
66
|
+
return {} unless access_token
|
67
|
+
|
68
|
+
{ Authorization: "Bearer #{access_token}" }
|
69
|
+
end
|
65
70
|
end
|
@@ -1,4 +1,6 @@
|
|
1
1
|
class EasyMeli::ErrorParser
|
2
|
+
ERROR_FIELDS = %w[message error error_description]
|
3
|
+
|
2
4
|
ERROR_LIST = {
|
3
5
|
'Error validating grant' => EasyMeli::InvalidGrantError,
|
4
6
|
'The User ID must match the consultant\'s' => EasyMeli::ForbiddenError,
|
@@ -18,7 +20,11 @@ class EasyMeli::ErrorParser
|
|
18
20
|
}
|
19
21
|
|
20
22
|
def self.error_class(response)
|
21
|
-
|
23
|
+
ERROR_FIELDS.each do |field|
|
24
|
+
error = find_in_error_list(response[field])
|
25
|
+
return error if error
|
26
|
+
end
|
27
|
+
nil
|
22
28
|
end
|
23
29
|
|
24
30
|
def self.status_error_class(response)
|
@@ -29,8 +35,10 @@ class EasyMeli::ErrorParser
|
|
29
35
|
|
30
36
|
private
|
31
37
|
|
32
|
-
def self.
|
33
|
-
|
38
|
+
def self.find_in_error_list(response_field)
|
39
|
+
return if response_field.to_s.empty?
|
40
|
+
|
41
|
+
ERROR_LIST.find { |key, _| response_field&.include?(key) }&.last
|
34
42
|
end
|
35
43
|
|
36
44
|
def self.server_side_error?(response)
|
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.6.
|
4
|
+
version: 0.6.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Northam
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.2.24
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.2.24
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,7 +108,7 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
-
description:
|
111
|
+
description:
|
112
112
|
email:
|
113
113
|
- eric@northam.us
|
114
114
|
executables: []
|
@@ -119,6 +119,7 @@ files:
|
|
119
119
|
- ".gitignore"
|
120
120
|
- CHANGELOG.md
|
121
121
|
- Gemfile
|
122
|
+
- Gemfile.lock
|
122
123
|
- LICENSE.txt
|
123
124
|
- README.md
|
124
125
|
- Rakefile
|
@@ -138,7 +139,7 @@ licenses:
|
|
138
139
|
- MIT
|
139
140
|
metadata:
|
140
141
|
homepage_uri: https://github.com/easybroker/easy_meli
|
141
|
-
post_install_message:
|
142
|
+
post_install_message:
|
142
143
|
rdoc_options: []
|
143
144
|
require_paths:
|
144
145
|
- lib
|
@@ -153,8 +154,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
153
154
|
- !ruby/object:Gem::Version
|
154
155
|
version: '0'
|
155
156
|
requirements: []
|
156
|
-
rubygems_version: 3.1
|
157
|
-
signing_key:
|
157
|
+
rubygems_version: 3.0.3.1
|
158
|
+
signing_key:
|
158
159
|
specification_version: 4
|
159
160
|
summary: A simple gem to work with MercadoLibre's API
|
160
161
|
test_files: []
|