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 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: []