easy_meli 0.6.6 → 0.6.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67691d59c76a0324aa03dfc6e9f67c86954be2d93a49836ce33cb52bed270bed
4
- data.tar.gz: 6f4740a8bbce9b8cc55aaccdd55b53e46bb19cd89b44f8fdaa2dfd0204d29274
3
+ metadata.gz: c37dbef23008586c37f7333f98a0f059518a910d02dd55a9c084f1f9774a74a1
4
+ data.tar.gz: 3419001c75cc491f926a566546abe0eebf4104783a0960f8c4275552747e76d0
5
5
  SHA512:
6
- metadata.gz: e37596a5954f789afc52ab92fe58c9b0bb0cfd32cdb6662b96305362081c56dba4a7f346a48989fa6da1487c5e84332c4382dcb9ab78278fa30f82b9c50541f0
7
- data.tar.gz: 4d61945cbb1389ba00ae6c47829769c45244c3ffffb23147e75f34c245d2eee95aff60b150ef1e7e8929315fdea9b2c8b7ce97278b10d024c1ddef1d4f29cc8a
6
+ metadata.gz: eedbbdcedbf0567c6facc8a6a6efd4fd265ab05a174f3410f2e8f31982ccd0e1a80d623046f0dc076644991aff6309480119e1e8b6fd7adb8db851ece1afc089
7
+ data.tar.gz: d82dac95de82fa8a3c4a160c25de33981a09d989462e6451f77f792ad5b7d2bad68caf6589308eb878edd73b668a79a2ca0093b8cd6cece91d73998eedae7f3e
@@ -9,7 +9,7 @@ jobs:
9
9
  runs-on: ubuntu-latest
10
10
  strategy:
11
11
  matrix:
12
- ruby_version: [ '2.6' ]
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:1.17.0
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
@@ -1,3 +1,4 @@
1
+ /.idea/
1
2
  /.bundle/
2
3
  /.yardoc
3
4
  /_yardoc/
@@ -6,6 +7,5 @@
6
7
  /pkg/
7
8
  /spec/reports/
8
9
  /tmp/
9
- Gemfile.lock
10
10
  /vender
11
- .DS_Store
11
+ .DS_Store
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(refresh_token: refresh_token, logger: my_logger)
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
- api_client = EasyMeli.api_client(refresh_token: refresh_token)
77
- response = api_client.get('/users/me')
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", "~> 1.17"
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"
@@ -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
- query[:access_token] = access_token if access_token
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
- ERROR_LIST.find { |key, _| self.error_message_from_body(response)&.include?(key) }&.last
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.error_message_from_body(response)
33
- response['message'].to_s.empty? ? response['error'] : response['message']
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)
@@ -1,3 +1,3 @@
1
1
  module EasyMeli
2
- VERSION = "0.6.6"
2
+ VERSION = "0.6.8"
3
3
  end
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.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: 2021-02-26 00:00:00.000000000 Z
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: '1.17'
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: '1.17'
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.4
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: []