easy_meli 0.6.19 → 0.6.20

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: 5a61030f52976ce550540b283c28a2d1bc6488a0ecd8a348e733f92659ec2c0c
4
- data.tar.gz: f07b69ef620397713896b757ced9067731eccb675817b0efeb26851e99970c3d
3
+ metadata.gz: fb7843afd879cb4c1135bf405d1dea609070df4f2f85b91e6b39ea982779cff4
4
+ data.tar.gz: b4aecdd72175b04e4563ae1d92a056fb1a5b8738e4d533ad46741a5fb957cce9
5
5
  SHA512:
6
- metadata.gz: e7d47984eabbe48987c5e1292671d52f51b6211153e5a9736e67b5665197d60a8416671af72946c88fa62428afbb6f0df4a749932fcbb79d903b6aaaa7410d06
7
- data.tar.gz: b1bd76a72b1da3020f4148f6934204b97aa40b5856a344c1f04720d3f1bd9e8fb947b3bce3a191dfa67e1e08773671745733aeaa719aea5533f2427be0a706fa
6
+ metadata.gz: ec1655affa627fa376b9f7e6bb86efba207e0b1e9d78e227ea09bb935d85f353ed7b8a656d0267c6cfa02690b7e5b774bdd5b0336e613c0b43a340e6c97c7b15
7
+ data.tar.gz: eea9caf35705aa77ed6a88fa2438ed29d95cacf28deec1c20dae52c0ef8d43cb3a58a538c7a79d8ab3680729c137c78dd6b513a2b8f380af3cf2421444cab6b1
data/CHANGELOG.md CHANGED
@@ -1,4 +1,7 @@
1
1
  # Changelog
2
+ ## V 0.6.20
3
+ - Return the complete token payload when refreshing tokens so clients can persist Mercado Libre's rotated refresh token.
4
+
2
5
  ## V 0.6.19
3
6
  - Update addressable from 2.8.8 to 2.9.0 (security fix for ReDoS vulnerability in Addressable templates)
4
7
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- easy_meli (0.6.19)
4
+ easy_meli (0.6.20)
5
5
  httparty (~> 0.24)
6
6
  multi_xml (~> 0.6.0)
7
7
  rexml (~> 3.4.2)
data/README.md CHANGED
@@ -42,7 +42,17 @@ response = EasyMeli.create_token('the_code_in_the_redirect', 'the_same_redirect_
42
42
  ```
43
43
  This will return a response object with a json body that you can easily access via `response.to_h`.
44
44
 
45
- If you want to refresh the token call
45
+ To refresh an access token and preserve Mercado Libre's rotated refresh token, call
46
+
47
+ ```ruby
48
+ tokens = EasyMeli.refresh_tokens('a_refresh_token')
49
+ access_token = tokens['access_token']
50
+ refresh_token = tokens['refresh_token']
51
+ ```
52
+
53
+ Store the returned refresh token after every successful refresh. Mercado Libre refresh tokens are single-use, so the token passed to `refresh_tokens` is no longer valid after the exchange succeeds.
54
+
55
+ If you only need the new access token, call
46
56
 
47
57
  ```ruby
48
58
  access_token = EasyMeli.access_token('a_refresh_token')
@@ -50,9 +50,13 @@ class EasyMeli::AuthorizationClient
50
50
  end
51
51
 
52
52
  def self.access_token(refresh_token, logger: nil)
53
+ refresh_tokens(refresh_token, logger: logger)[EasyMeli::AuthorizationClient::ACCESS_TOKEN_KEY]
54
+ end
55
+
56
+ def self.refresh_tokens(refresh_token, logger: nil)
53
57
  response = self.new(logger: logger).access_token_with_response(refresh_token)
54
58
  if response.success?
55
- response.to_h[EasyMeli::AuthorizationClient::ACCESS_TOKEN_KEY]
59
+ response.to_h
56
60
  else
57
61
  exception = EasyMeli::ErrorParser.error_class(response) || EasyMeli::InvalidTokenError
58
62
 
@@ -1,3 +1,3 @@
1
1
  module EasyMeli
2
- VERSION = '0.6.19'
2
+ VERSION = '0.6.20'
3
3
  end
data/lib/easy_meli.rb CHANGED
@@ -30,6 +30,10 @@ module EasyMeli
30
30
  EasyMeli::AuthorizationClient.access_token(refresh_token, logger: logger)
31
31
  end
32
32
 
33
+ def self.refresh_tokens(refresh_token, logger: nil)
34
+ EasyMeli::AuthorizationClient.refresh_tokens(refresh_token, logger: logger)
35
+ end
36
+
33
37
  def self.api_client(access_token: nil, refresh_token: nil, logger: nil)
34
38
  access_token ||= self.access_token(refresh_token, logger: logger) if refresh_token
35
39
  EasyMeli::ApiClient.new(access_token, logger: logger)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy_meli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.19
4
+ version: 0.6.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Northam