mercadolibre 0.7.1 → 0.8.0
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/CHANGELOG.md +4 -0
- data/lib/mercadolibre/core/items_and_searches.rb +38 -9
- data/lib/mercadolibre/core/questions.rb +0 -0
- data/lib/mercadolibre/entity/mediation.rb +25 -0
- data/lib/mercadolibre/entity/mediation_interaction.rb +21 -0
- data/lib/mercadolibre/entity/order.rb +2 -0
- data/lib/mercadolibre/entity/user.rb +2 -1
- data/lib/mercadolibre/version.rb +1 -1
- data/lib/mercadolibre.rb +2 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 708793ddaed462f4cf427fcda6ee24be535d4fbf
|
4
|
+
data.tar.gz: a57c90e75cca9786ed727a058e9ebfed401f3347
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c107e184972090b735c937d6ba5865dd17f820665620c124d46c75a9380ccf358fe2dc34bcd9f9e4aca60b18b6038959c62727410ae1857f45cd596790fabdf9
|
7
|
+
data.tar.gz: 544c96a1aa372407eb69d032bb6c0078f4818c681e893595e956cf1feb057751c1741aff9099eeb100d60ad75bbb8acaa950075269e47af2cbfc6ab4018a4dd2
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,19 @@
|
|
1
1
|
module Mercadolibre
|
2
2
|
module Core
|
3
3
|
module ItemsAndSearches
|
4
|
+
def get_my_item_ids(filters={})
|
5
|
+
user_id = get_my_user.id
|
6
|
+
|
7
|
+
filters.merge!({ access_token: @access_token, limit: 50, offset: 0 })
|
8
|
+
|
9
|
+
response = get_request("/users/#{user_id}/items/search", filters)[:body]
|
10
|
+
|
11
|
+
{
|
12
|
+
results: response['results'],
|
13
|
+
paging: response['paging']
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
4
17
|
# This method is meant to be used when you need to save all data in your local database
|
5
18
|
def get_all_my_item_ids(filters={})
|
6
19
|
user_id = get_my_user.id
|
@@ -23,15 +36,11 @@ module Mercadolibre
|
|
23
36
|
results
|
24
37
|
end
|
25
38
|
|
26
|
-
def
|
27
|
-
|
28
|
-
|
29
|
-
filters.merge!({ access_token: @access_token, limit: 50, offset: 0 })
|
30
|
-
|
31
|
-
response = get_request("/users/#{user_id}/items/search", filters)[:body]
|
39
|
+
def get_item_ids(filters={})
|
40
|
+
response = get_request("/sites/#{@site}/search", filters)[:body]
|
32
41
|
|
33
42
|
{
|
34
|
-
results: response['results'],
|
43
|
+
results: response['results'].map { |r| r['id'] },
|
35
44
|
paging: response['paging']
|
36
45
|
}
|
37
46
|
end
|
@@ -56,15 +65,35 @@ module Mercadolibre
|
|
56
65
|
results
|
57
66
|
end
|
58
67
|
|
59
|
-
def
|
68
|
+
def search_items(filters={})
|
60
69
|
response = get_request("/sites/#{@site}/search", filters)[:body]
|
61
70
|
|
62
71
|
{
|
63
|
-
results: response['results'].map { |
|
72
|
+
results: response['results'].map { |x| Mercadolibre::Entity::Item.new(x) },
|
64
73
|
paging: response['paging']
|
65
74
|
}
|
66
75
|
end
|
67
76
|
|
77
|
+
# This method is meant to be used when you need to save all data in your local database
|
78
|
+
def search_all_items(filters={})
|
79
|
+
filters.merge!({ limit: 50, offset: 0 })
|
80
|
+
|
81
|
+
results = []
|
82
|
+
has_results = true
|
83
|
+
|
84
|
+
pages_remaining = filters[:pages_count] || -1
|
85
|
+
|
86
|
+
while (has_results && (pages_remaining != 0)) do
|
87
|
+
partial_results = get_request("/sites/#{@site}/search", filters)[:body]['results']
|
88
|
+
results += partial_results.map { |x| Mercadolibre::Entity::Item.new(x) }
|
89
|
+
has_results = partial_results.any?
|
90
|
+
filters[:offset] += 50
|
91
|
+
pages_remaining -= 1
|
92
|
+
end
|
93
|
+
|
94
|
+
results
|
95
|
+
end
|
96
|
+
|
68
97
|
def get_item(item_id)
|
69
98
|
result = get_request("/items/#{item_id}")
|
70
99
|
|
File without changes
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Entity
|
3
|
+
class Mediation
|
4
|
+
def self.attr_list
|
5
|
+
[:id, :status, :interactions]
|
6
|
+
end
|
7
|
+
|
8
|
+
attr_reader *attr_list
|
9
|
+
|
10
|
+
def initialize(attributes={})
|
11
|
+
attributes.each do |k, v|
|
12
|
+
if k.to_s == 'interactions'
|
13
|
+
self.interactions = MediationInteraction.new(v) unless v.nil?
|
14
|
+
else
|
15
|
+
self.send("#{k}=", v) if self.respond_to?(k)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
attr_writer *attr_list
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Entity
|
3
|
+
class MediationInteraction
|
4
|
+
def self.attr_list
|
5
|
+
[:current_responsible]
|
6
|
+
end
|
7
|
+
|
8
|
+
attr_reader *attr_list
|
9
|
+
|
10
|
+
def initialize(attributes={})
|
11
|
+
attributes.each do |k, v|
|
12
|
+
self.send("#{k}=", v) if self.respond_to?(k)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
attr_writer *attr_list
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -24,6 +24,8 @@ module Mercadolibre
|
|
24
24
|
self.coupon = OrderCoupon.new(v) unless v.nil?
|
25
25
|
elsif ['buyer', 'seller'].include?(k.to_s)
|
26
26
|
self.send("#{k}=", User.new(v)) unless v.nil?
|
27
|
+
elsif k.to_s == 'mediations'
|
28
|
+
self.mediations = v.map { |x| Mediation.new(x) } unless v.nil?
|
27
29
|
elsif ['date_created', 'date_closed', 'last_updated'].include?(k.to_s)
|
28
30
|
self.send("#{k}=", Time.parse(v)) unless v.nil?
|
29
31
|
else
|
@@ -4,7 +4,8 @@ module Mercadolibre
|
|
4
4
|
def self.attr_list
|
5
5
|
[:id, :nickname, :registration_date, :first_name, :last_name, :blocked,
|
6
6
|
:country_id, :email, :user_type, :points, :site_id, :permalink, :phone,
|
7
|
-
:alternative_phone, :billing_info, :status
|
7
|
+
:alternative_phone, :billing_info, :status, :power_seller_status,
|
8
|
+
:car_dealer, :real_estate_agency]
|
8
9
|
end
|
9
10
|
|
10
11
|
attr_reader *attr_list
|
data/lib/mercadolibre/version.rb
CHANGED
data/lib/mercadolibre.rb
CHANGED
@@ -29,6 +29,8 @@ require "mercadolibre/entity/item_shipping"
|
|
29
29
|
require "mercadolibre/entity/listing_exposure"
|
30
30
|
require "mercadolibre/entity/listing_price"
|
31
31
|
require "mercadolibre/entity/listing_type"
|
32
|
+
require "mercadolibre/entity/mediation"
|
33
|
+
require "mercadolibre/entity/mediation_interaction"
|
32
34
|
require "mercadolibre/entity/municipality"
|
33
35
|
require "mercadolibre/entity/neighborhood"
|
34
36
|
require "mercadolibre/entity/order"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mercadolibre
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matias Hick
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -100,6 +100,8 @@ files:
|
|
100
100
|
- lib/mercadolibre/entity/listing_exposure.rb
|
101
101
|
- lib/mercadolibre/entity/listing_price.rb
|
102
102
|
- lib/mercadolibre/entity/listing_type.rb
|
103
|
+
- lib/mercadolibre/entity/mediation.rb
|
104
|
+
- lib/mercadolibre/entity/mediation_interaction.rb
|
103
105
|
- lib/mercadolibre/entity/municipality.rb
|
104
106
|
- lib/mercadolibre/entity/neighborhood.rb
|
105
107
|
- lib/mercadolibre/entity/order.rb
|