mercado-libre 0.0.2 → 0.0.3

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
  SHA1:
3
- metadata.gz: 363f6161a791d57042f5398e81818cd213f77f1b
4
- data.tar.gz: 61ba177f45aac40b736396aaedd46da57460b748
3
+ metadata.gz: 69db05d164d979c88e784611061f29c8ecff876a
4
+ data.tar.gz: 937c92abc8f58edb233c55d18d3b603621203589
5
5
  SHA512:
6
- metadata.gz: 92f080efeed17ad6e8e6f0aa0a21d1885bb43a77e635e38f3c08195cdbb8c3ac2dbf0d30d68db35e108a047260cc72bbfc9a826fd8d5139ce7c45d9d71f04579
7
- data.tar.gz: 734b70b76553754d2cb56bc78d4cd37b9570b042c293715b7143950453d33aa439f9f47c0b14d73069fc781856e38ad4899361f2f57b92df03e971ee55712e84
6
+ metadata.gz: ccdd99d5979ad1e7327f378505d69a56a5f347425db9581f0993e5c424c32729f91cd2ffa79f6bd0c9bf19faff9fec1f05d83fe266ea3dd3fbac5cbba75ff0aa
7
+ data.tar.gz: f8bd3fdca044c8c3f75c113b3413bb97fc26af16fe36ce4bd306a199466b7207f99b1a5dd99917ef2c16e1f90b68a8e2489df6dad0e11d418b4ece8b77bf851c
@@ -49,9 +49,9 @@ module MercadoLibre
49
49
  end
50
50
 
51
51
  def authenticated_request(verb, url, data = {})
52
- url_with_token = "#{url}?access_token=#{access_token}"
52
+ new_url = url_with_token(url)
53
53
  begin
54
- request(verb, url_with_token, data)
54
+ request(verb, new_url, data)
55
55
  rescue Requests::Error
56
56
  @retries ||=0
57
57
  @retries +=1
@@ -90,5 +90,15 @@ module MercadoLibre
90
90
 
91
91
  request(:post, url, data).fetch('access_token')
92
92
  end
93
+
94
+ def url_with_token(url)
95
+ require 'uri'
96
+ uri = URI(url)
97
+ params = URI.decode_www_form(uri.query || '')
98
+ params << ['access_token', access_token]
99
+ uri.query = URI.encode_www_form(params).to_s
100
+
101
+ uri.to_s
102
+ end
93
103
  end
94
104
  end
@@ -1,3 +1,3 @@
1
1
  module MercadoLibre
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "mercado-libre"
3
- s.version = "0.0.2"
3
+ s.version = "0.0.3"
4
4
  s.summary = "MercadoLibre API"
5
5
  s.description = "mercado-libre"
6
6
  s.authors = ["CarlosIPe"]
@@ -102,4 +102,18 @@ test "authenticated_request gets new access token when forbidden" do
102
102
  ml.access_token = 'Invalid one'
103
103
  published_item = ml.publish_item(item)
104
104
  assert(ml.access_token =~ /^APP/)
105
+ end
106
+
107
+ test ".url_with_token(url) returns right url when doesnt have other query params" do
108
+ ml = api
109
+ ml.access_token = 'APP123456'
110
+ url = '/users/189517696/items/search'
111
+ assert_equal ml.url_with_token(url), '/users/189517696/items/search?access_token=APP123456'
112
+ end
113
+
114
+ test ".url_with_token(url) returns right url when has query params" do
115
+ ml = api
116
+ ml.access_token = 'APP123456'
117
+ url = '/users/189517696/items/search?limit=200&offset=100'
118
+ assert_equal ml.url_with_token(url), '/users/189517696/items/search?limit=200&offset=100&access_token=APP123456'
105
119
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mercado-libre
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - CarlosIPe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-21 00:00:00.000000000 Z
11
+ date: 2016-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: requests