mercadolibre 0.0.4 → 0.0.5
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.rb +12 -4
- data/lib/mercadolibre/core/categories_and_listings.rb +36 -0
- data/lib/mercadolibre/core/{items.rb → items_and_searches.rb} +33 -15
- data/lib/mercadolibre/core/{locations.rb → locations_and_currencies.rb} +7 -1
- data/lib/mercadolibre/core/{orders.rb → order_management.rb} +7 -1
- data/lib/mercadolibre/core/{users.rb → users_and_apps.rb} +7 -1
- data/lib/mercadolibre/entity/category.rb +25 -0
- data/lib/mercadolibre/entity/item_description.rb +25 -0
- data/lib/mercadolibre/entity/listing_type.rb +21 -0
- data/lib/mercadolibre/entity/payment_method.rb +21 -0
- data/lib/mercadolibre/entity/site.rb +28 -0
- data/lib/mercadolibre/entity/site_domain.rb +21 -0
- data/lib/mercadolibre/entity/zip_code.rb +29 -0
- data/lib/mercadolibre/version.rb +1 -1
- metadata +14 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0ae7b377aa44efd0110a7b576d0beadbe19f610e
|
4
|
+
data.tar.gz: 893c83d6feb9c676d8366c6e3fe49cb620bacafe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 071602cfacac1e949dcd9cda8acee48af6d1f5177e2d7cb169339386c9bd5b81ef08c3d51d6520662d72ae5e599621d0a2d433376ef9225fa9982ee385c6b3f7
|
7
|
+
data.tar.gz: 58f5ecb52070c072d91a4e7240373dee44f29686c8f552e2dc9fc5d1767b5b85c25fadd7b1ce5a8e42ec21095d120edbef8aae6b43a37a9676948e0e6010a084
|
data/CHANGELOG.md
CHANGED
data/lib/mercadolibre.rb
CHANGED
@@ -3,27 +3,35 @@ require "mercadolibre/version"
|
|
3
3
|
# entities
|
4
4
|
require "mercadolibre/entity/answer"
|
5
5
|
require "mercadolibre/entity/auth"
|
6
|
+
require "mercadolibre/entity/category"
|
6
7
|
require "mercadolibre/entity/city"
|
7
8
|
require "mercadolibre/entity/country"
|
8
9
|
require "mercadolibre/entity/currency"
|
9
10
|
require "mercadolibre/entity/currency_conversion_ratio"
|
10
11
|
require "mercadolibre/entity/feedback"
|
11
12
|
require "mercadolibre/entity/item"
|
13
|
+
require "mercadolibre/entity/item_description"
|
12
14
|
require "mercadolibre/entity/item_picture"
|
15
|
+
require "mercadolibre/entity/listing_type"
|
13
16
|
require "mercadolibre/entity/order"
|
14
17
|
require "mercadolibre/entity/order_item"
|
15
18
|
require "mercadolibre/entity/payment"
|
19
|
+
require "mercadolibre/entity/payment_method"
|
16
20
|
require "mercadolibre/entity/phone"
|
17
21
|
require "mercadolibre/entity/question"
|
22
|
+
require "mercadolibre/entity/site"
|
23
|
+
require "mercadolibre/entity/site_domain"
|
18
24
|
require "mercadolibre/entity/state"
|
19
25
|
require "mercadolibre/entity/user"
|
26
|
+
require "mercadolibre/entity/zip_code"
|
20
27
|
# core
|
21
28
|
require "mercadolibre/core/auth"
|
22
|
-
require "mercadolibre/core/
|
23
|
-
require "mercadolibre/core/
|
24
|
-
require "mercadolibre/core/
|
29
|
+
require "mercadolibre/core/categories_and_listings"
|
30
|
+
require "mercadolibre/core/items_and_searches"
|
31
|
+
require "mercadolibre/core/locations_and_currencies"
|
32
|
+
require "mercadolibre/core/order_management"
|
25
33
|
require "mercadolibre/core/questions"
|
26
|
-
require "mercadolibre/core/
|
34
|
+
require "mercadolibre/core/users_and_apps"
|
27
35
|
require "mercadolibre/api"
|
28
36
|
|
29
37
|
# dependencies
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Core
|
3
|
+
module CategoriesAndListings
|
4
|
+
def get_sites
|
5
|
+
results = get_request('/sites')
|
6
|
+
|
7
|
+
results[:body].map { |r| Mercadolibre::Entity::Site.new(r) }
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_site(site_id)
|
11
|
+
result = get_request("/sites/#{site_id}")
|
12
|
+
|
13
|
+
Mercadolibre::Entity::Site.new(result[:body])
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_site_domain_info(domain)
|
17
|
+
result = get_request("/site_domains/#{domain}")
|
18
|
+
|
19
|
+
Mercadolibre::Entity::SiteDomain.new(result[:body])
|
20
|
+
end
|
21
|
+
|
22
|
+
def get_site_categories(site_id)
|
23
|
+
results = get_request("/sites/#{site_id}/categories")
|
24
|
+
|
25
|
+
results[:body].map { |r| Mercadolibre::Entity::Category.new(r) }
|
26
|
+
end
|
27
|
+
|
28
|
+
def get_site_categories(site_id)
|
29
|
+
results = get_request("/sites/#{site_id}/categories")
|
30
|
+
|
31
|
+
results[:body].map { |r| Mercadolibre::Entity::Category.new(r) }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module Mercadolibre
|
2
2
|
module Core
|
3
|
-
module
|
3
|
+
module ItemsAndSearches
|
4
|
+
# This method is meant to be used when you need to save all data in your local database
|
4
5
|
def get_all_my_item_ids(filters={})
|
5
6
|
user_id = get_my_user.id
|
6
7
|
|
@@ -35,6 +36,7 @@ module Mercadolibre
|
|
35
36
|
}
|
36
37
|
end
|
37
38
|
|
39
|
+
# This method is meant to be used when you need to save all data in your local database
|
38
40
|
def get_all_item_ids(filters={})
|
39
41
|
filters.merge!({ limit: 50, offset: 0 })
|
40
42
|
|
@@ -63,13 +65,35 @@ module Mercadolibre
|
|
63
65
|
}
|
64
66
|
end
|
65
67
|
|
68
|
+
def get_item(item_id)
|
69
|
+
result = get_request("/items/#{item_id}")
|
70
|
+
|
71
|
+
Mercadolibre::Entity::Item.new(result[:body])
|
72
|
+
end
|
73
|
+
|
66
74
|
def get_item_visits(item_ids)
|
67
75
|
if item_ids.is_a? Array
|
68
76
|
get_request("/visits/items?ids=#{item_ids.join(',')}")[:body]
|
69
77
|
else
|
70
78
|
get_request("/visits/items?ids=#{item_ids}")[:body][item_ids]
|
71
79
|
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def get_item_descriptions(item_id)
|
83
|
+
results = get_request("/items/#{item_id}/descriptions")
|
84
|
+
|
85
|
+
results[:body].map { |r| Mercadolibre::Entity::ItemDescription.new(r) }
|
86
|
+
end
|
87
|
+
|
88
|
+
def get_item_available_upgrades(item_id)
|
89
|
+
results = get_request("/items/#{item_id}/available_upgrades?access_token=@access_token")
|
72
90
|
|
91
|
+
results[:body].map { |r| Mercadolibre::Entity::ListingType.new(r) }
|
92
|
+
end
|
93
|
+
|
94
|
+
def get_search_url(site_id, q)
|
95
|
+
result = get_request("/sites/#{site_id}/searchUrl?q=#{q}")
|
96
|
+
result[:body]['url']
|
73
97
|
end
|
74
98
|
|
75
99
|
def create_item(attribs)
|
@@ -92,20 +116,6 @@ module Mercadolibre
|
|
92
116
|
Mercadolibre::Entity::Item.new(result[:body])
|
93
117
|
end
|
94
118
|
|
95
|
-
def get_item(item_id)
|
96
|
-
result = get_request("/items/#{item_id}")
|
97
|
-
|
98
|
-
Mercadolibre::Entity::Item.new(result[:body])
|
99
|
-
end
|
100
|
-
|
101
|
-
def add_item_description(item_id, text)
|
102
|
-
payload = { text: text }.to_json
|
103
|
-
|
104
|
-
headers = { content_type: :json, accept: :json }
|
105
|
-
|
106
|
-
post_request("/items/#{item_id}/descriptions?access_token=#{@access_token}", payload, headers)[:body]
|
107
|
-
end
|
108
|
-
|
109
119
|
def update_item_fields(item_id, attribs)
|
110
120
|
payload = attribs.to_json
|
111
121
|
|
@@ -121,6 +131,14 @@ module Mercadolibre
|
|
121
131
|
|
122
132
|
post_request("/items/#{item_id}/listing_type?access_token=#{@access_token}", payload, headers)[:body]
|
123
133
|
end
|
134
|
+
|
135
|
+
def add_item_description(item_id, text)
|
136
|
+
payload = { text: text }.to_json
|
137
|
+
|
138
|
+
headers = { content_type: :json, accept: :json }
|
139
|
+
|
140
|
+
post_request("/items/#{item_id}/descriptions?access_token=#{@access_token}", payload, headers)[:body]
|
141
|
+
end
|
124
142
|
end
|
125
143
|
end
|
126
144
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Mercadolibre
|
2
2
|
module Core
|
3
|
-
module
|
3
|
+
module LocationsAndCurrencies
|
4
4
|
def get_countries
|
5
5
|
results = get_request('/countries')
|
6
6
|
|
@@ -48,6 +48,12 @@ module Mercadolibre
|
|
48
48
|
mercado_pago_ratio: result[:body]['mercado_pago_ratio']
|
49
49
|
})
|
50
50
|
end
|
51
|
+
|
52
|
+
def get_zip_code_info(country_id, zip_code)
|
53
|
+
result = get_request("/countries/#{country_id}/zip_codes/#{zip_code}")
|
54
|
+
|
55
|
+
Mercadolibre::Entity::ZipCode.new(result[:body])
|
56
|
+
end
|
51
57
|
end
|
52
58
|
end
|
53
59
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Mercadolibre
|
2
2
|
module Core
|
3
|
-
module
|
3
|
+
module OrderManagement
|
4
4
|
def get_all_orders(filters={})
|
5
5
|
filters.merge!({
|
6
6
|
seller: get_my_user.id,
|
@@ -121,6 +121,12 @@ module Mercadolibre
|
|
121
121
|
raise 'invalid kind'
|
122
122
|
end
|
123
123
|
end
|
124
|
+
|
125
|
+
def get_site_payment_methods(site_id)
|
126
|
+
results = get_request("/sites/#{site_id}/payment_methods")
|
127
|
+
|
128
|
+
results[:body].map { |r| Mercadolibre::Entity::PaymentMethod.new(r) }
|
129
|
+
end
|
124
130
|
end
|
125
131
|
end
|
126
132
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Mercadolibre
|
2
2
|
module Core
|
3
|
-
module
|
3
|
+
module UsersAndApps
|
4
4
|
def get_my_user
|
5
5
|
result = get_request('/users/me', { access_token: @access_token })
|
6
6
|
|
@@ -18,6 +18,12 @@ module Mercadolibre
|
|
18
18
|
|
19
19
|
results[:body].map { |r| Mercadolibre::Entity::User.new(r) }
|
20
20
|
end
|
21
|
+
|
22
|
+
def get_user_accepted_payment_methods(user_id)
|
23
|
+
results = get_request("/users/#{user_id}/accepted_payment_methods")
|
24
|
+
|
25
|
+
results[:body].map { |r| Mercadolibre::Entity::PaymentMethod.new(r) }
|
26
|
+
end
|
21
27
|
end
|
22
28
|
end
|
23
29
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Entity
|
3
|
+
class Category
|
4
|
+
def self.attr_list
|
5
|
+
[:id, :name, :path_from_root, :children_categories]
|
6
|
+
end
|
7
|
+
|
8
|
+
attr_reader *attr_list
|
9
|
+
|
10
|
+
def initialize(attributes={})
|
11
|
+
attributes.each do |k, v|
|
12
|
+
if ['path_from_root', 'children_categories'].include?(k.to_s)
|
13
|
+
self.state = v.map { |x| Category.new(x) }
|
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,25 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Entity
|
3
|
+
class ItemDescription
|
4
|
+
def self.attr_list
|
5
|
+
[:id, :created, :text, :plain_text]
|
6
|
+
end
|
7
|
+
|
8
|
+
attr_reader *attr_list
|
9
|
+
|
10
|
+
def initialize(attributes={})
|
11
|
+
attributes.each do |k, v|
|
12
|
+
if k.to_s == 'created'
|
13
|
+
self.created = Time.parse(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 ListingType
|
4
|
+
def self.attr_list
|
5
|
+
[:site_id, :id, :name]
|
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
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Entity
|
3
|
+
class PaymentMethod
|
4
|
+
def self.attr_list
|
5
|
+
[:id, :name, :payment_type_id, :thumbnail, :secure_thumbnail]
|
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
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Entity
|
3
|
+
class Country
|
4
|
+
def self.attr_list
|
5
|
+
[:id, :name, :country_id, :sale_fees_mode, :mercadopago_version, :default_currency_id,
|
6
|
+
:currencies, :immediate_payment, :payment_method_ids, :categories]
|
7
|
+
end
|
8
|
+
|
9
|
+
attr_reader *attr_list
|
10
|
+
|
11
|
+
def initialize(attributes={})
|
12
|
+
attributes.each do |k, v|
|
13
|
+
if k.to_s == 'currencies'
|
14
|
+
self.states = v.map { |x| Currency.new(x) }
|
15
|
+
elsif k.to_s == 'categories'
|
16
|
+
self.categories = v.map { |x| Category.new(x) }
|
17
|
+
else
|
18
|
+
self.send("#{k}=", v) if self.respond_to?(k)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
attr_writer *attr_list
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Entity
|
3
|
+
class SiteDomain
|
4
|
+
def self.attr_list
|
5
|
+
[:id, :site_id, :country_id, :locale, :tag]
|
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
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Entity
|
3
|
+
class ZipCode
|
4
|
+
def self.attr_list
|
5
|
+
[:zip_code, :city, :state, :country]
|
6
|
+
end
|
7
|
+
|
8
|
+
attr_reader *attr_list
|
9
|
+
|
10
|
+
def initialize(attributes={})
|
11
|
+
attributes.each do |k, v|
|
12
|
+
if k.to_s == 'state'
|
13
|
+
self.state = State.new(v)
|
14
|
+
elsif k.to_s == 'country'
|
15
|
+
self.country = Country.new(v)
|
16
|
+
elsif k.to_s == 'city'
|
17
|
+
self.country = City.new(v)
|
18
|
+
else
|
19
|
+
self.send("#{k}=", v) if self.respond_to?(k)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
attr_writer *attr_list
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/mercadolibre/version.rb
CHANGED
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.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matias Hick
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -65,27 +65,35 @@ files:
|
|
65
65
|
- lib/mercadolibre.rb
|
66
66
|
- lib/mercadolibre/api.rb
|
67
67
|
- lib/mercadolibre/core/auth.rb
|
68
|
-
- lib/mercadolibre/core/
|
69
|
-
- lib/mercadolibre/core/
|
70
|
-
- lib/mercadolibre/core/
|
68
|
+
- lib/mercadolibre/core/categories_and_listings.rb
|
69
|
+
- lib/mercadolibre/core/items_and_searches.rb
|
70
|
+
- lib/mercadolibre/core/locations_and_currencies.rb
|
71
|
+
- lib/mercadolibre/core/order_management.rb
|
71
72
|
- lib/mercadolibre/core/questions.rb
|
72
|
-
- lib/mercadolibre/core/
|
73
|
+
- lib/mercadolibre/core/users_and_apps.rb
|
73
74
|
- lib/mercadolibre/entity/answer.rb
|
74
75
|
- lib/mercadolibre/entity/auth.rb
|
76
|
+
- lib/mercadolibre/entity/category.rb
|
75
77
|
- lib/mercadolibre/entity/city.rb
|
76
78
|
- lib/mercadolibre/entity/country.rb
|
77
79
|
- lib/mercadolibre/entity/currency.rb
|
78
80
|
- lib/mercadolibre/entity/currency_conversion_ratio.rb
|
79
81
|
- lib/mercadolibre/entity/feedback.rb
|
80
82
|
- lib/mercadolibre/entity/item.rb
|
83
|
+
- lib/mercadolibre/entity/item_description.rb
|
81
84
|
- lib/mercadolibre/entity/item_picture.rb
|
85
|
+
- lib/mercadolibre/entity/listing_type.rb
|
82
86
|
- lib/mercadolibre/entity/order.rb
|
83
87
|
- lib/mercadolibre/entity/order_item.rb
|
84
88
|
- lib/mercadolibre/entity/payment.rb
|
89
|
+
- lib/mercadolibre/entity/payment_method.rb
|
85
90
|
- lib/mercadolibre/entity/phone.rb
|
86
91
|
- lib/mercadolibre/entity/question.rb
|
92
|
+
- lib/mercadolibre/entity/site.rb
|
93
|
+
- lib/mercadolibre/entity/site_domain.rb
|
87
94
|
- lib/mercadolibre/entity/state.rb
|
88
95
|
- lib/mercadolibre/entity/user.rb
|
96
|
+
- lib/mercadolibre/entity/zip_code.rb
|
89
97
|
- lib/mercadolibre/version.rb
|
90
98
|
homepage: https://github.com/unformattmh/mercadolibre
|
91
99
|
licenses:
|