mercadolibre 1.8.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mercadolibre.rb +20 -7
- data/lib/mercadolibre/api.rb +18 -7
- data/lib/mercadolibre/core/apps.rb +17 -0
- data/lib/mercadolibre/core/bookmarks.rb +21 -0
- data/lib/mercadolibre/core/categories.rb +47 -0
- data/lib/mercadolibre/core/currencies.rb +18 -0
- data/lib/mercadolibre/core/deals.rb +3 -4
- data/lib/mercadolibre/core/feedbacks.rb +63 -0
- data/lib/mercadolibre/core/item_variations.rb +35 -0
- data/lib/mercadolibre/core/items.rb +87 -0
- data/lib/mercadolibre/core/listings.rb +43 -0
- data/lib/mercadolibre/core/{locations_and_currencies.rb → locations.rb} +7 -13
- data/lib/mercadolibre/core/messaging.rb +55 -0
- data/lib/mercadolibre/core/metrics.rb +53 -0
- data/lib/mercadolibre/core/money.rb +21 -0
- data/lib/mercadolibre/core/order_blacklist.rb +25 -0
- data/lib/mercadolibre/core/order_notes.rb +33 -0
- data/lib/mercadolibre/core/orders.rb +39 -0
- data/lib/mercadolibre/core/pictures.rb +33 -0
- data/lib/mercadolibre/core/projects.rb +42 -0
- data/lib/mercadolibre/core/question_blacklist.rb +27 -0
- data/lib/mercadolibre/core/{questions_and_answers.rb → questions.rb} +10 -31
- data/lib/mercadolibre/core/searching.rb +33 -0
- data/lib/mercadolibre/core/shipping.rb +6 -6
- data/lib/mercadolibre/core/{users_and_apps.rb → users.rb} +21 -23
- data/lib/mercadolibre/version.rb +1 -1
- metadata +22 -9
- data/lib/mercadolibre/core/categories_and_listings.rb +0 -59
- data/lib/mercadolibre/core/collections.rb +0 -10
- data/lib/mercadolibre/core/items_and_searches.rb +0 -153
- data/lib/mercadolibre/core/orders_and_feedback.rb +0 -202
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6602b69dbd4ec3c9d277b564896682d2afa74a99
|
4
|
+
data.tar.gz: adb1df6cc0c95807267e61f0b95aad3940d89227
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c5451fb055faeff294fa71d5ba725a028b0b1643f7895a7da27516123939a426fb73b8b059df4ef47656f511ae7ea25a36dbac1450f6f09e4c491442d361dce
|
7
|
+
data.tar.gz: 90036235a292288c202bd82ea220bfc615ea2c87bbc466e5a27ae5f2c5e3c7683cb2ef14564f5fe65ed36fb9a0f9efb207d835f8e0c0897af5ef98c929e83c9b
|
data/lib/mercadolibre.rb
CHANGED
@@ -1,17 +1,30 @@
|
|
1
1
|
require "mercadolibre/version"
|
2
2
|
|
3
3
|
# mercadolibre -> core
|
4
|
-
require "mercadolibre/core/
|
5
|
-
require "mercadolibre/core/
|
4
|
+
require "mercadolibre/core/apps"
|
5
|
+
require "mercadolibre/core/bookmarks"
|
6
|
+
require "mercadolibre/core/categories"
|
7
|
+
require "mercadolibre/core/currencies"
|
6
8
|
require "mercadolibre/core/deals"
|
7
|
-
require "mercadolibre/core/
|
8
|
-
require "mercadolibre/core/
|
9
|
+
require "mercadolibre/core/feedbacks"
|
10
|
+
require "mercadolibre/core/item_variations"
|
11
|
+
require "mercadolibre/core/items"
|
12
|
+
require "mercadolibre/core/listings"
|
13
|
+
require "mercadolibre/core/locations"
|
14
|
+
require "mercadolibre/core/messaging"
|
9
15
|
require "mercadolibre/core/metrics"
|
16
|
+
require "mercadolibre/core/money"
|
10
17
|
require "mercadolibre/core/oauth"
|
11
|
-
require "mercadolibre/core/
|
12
|
-
require "mercadolibre/core/
|
18
|
+
require "mercadolibre/core/order_blacklist"
|
19
|
+
require "mercadolibre/core/order_notes"
|
20
|
+
require "mercadolibre/core/orders"
|
21
|
+
require "mercadolibre/core/pictures"
|
22
|
+
require "mercadolibre/core/projects"
|
23
|
+
require "mercadolibre/core/question_blacklist"
|
24
|
+
require "mercadolibre/core/questions"
|
25
|
+
require "mercadolibre/core/searching"
|
13
26
|
require "mercadolibre/core/shipping"
|
14
|
-
require "mercadolibre/core/
|
27
|
+
require "mercadolibre/core/users"
|
15
28
|
|
16
29
|
# mercadolibre -> api
|
17
30
|
require "mercadolibre/api"
|
data/lib/mercadolibre/api.rb
CHANGED
@@ -23,17 +23,28 @@ module Mercadolibre
|
|
23
23
|
@site = args[:site]
|
24
24
|
end
|
25
25
|
|
26
|
-
include Mercadolibre::Core::
|
27
|
-
include Mercadolibre::Core::
|
26
|
+
include Mercadolibre::Core::Apps
|
27
|
+
include Mercadolibre::Core::Bookmarks
|
28
|
+
include Mercadolibre::Core::Categories
|
29
|
+
include Mercadolibre::Core::Currencies
|
28
30
|
include Mercadolibre::Core::Deals
|
29
|
-
include Mercadolibre::Core::
|
30
|
-
include Mercadolibre::Core::
|
31
|
+
include Mercadolibre::Core::Feedbacks
|
32
|
+
include Mercadolibre::Core::ItemVariations
|
33
|
+
include Mercadolibre::Core::Items
|
34
|
+
include Mercadolibre::Core::Listings
|
35
|
+
include Mercadolibre::Core::Locations
|
36
|
+
include Mercadolibre::Core::Messaging
|
31
37
|
include Mercadolibre::Core::Metrics
|
38
|
+
include Mercadolibre::Core::Money
|
32
39
|
include Mercadolibre::Core::Oauth
|
33
|
-
include Mercadolibre::Core::
|
34
|
-
include Mercadolibre::Core::
|
40
|
+
include Mercadolibre::Core::OrderBlacklist
|
41
|
+
include Mercadolibre::Core::OrderNotes
|
42
|
+
include Mercadolibre::Core::Orders
|
43
|
+
include Mercadolibre::Core::Pictures
|
44
|
+
include Mercadolibre::Core::QuestionBlacklist
|
45
|
+
include Mercadolibre::Core::Searching
|
35
46
|
include Mercadolibre::Core::Shipping
|
36
|
-
include Mercadolibre::Core::
|
47
|
+
include Mercadolibre::Core::Users
|
37
48
|
|
38
49
|
def get_last_response
|
39
50
|
@last_response
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Core
|
3
|
+
module Apps
|
4
|
+
def get_application_info
|
5
|
+
get_request("/applications/#{@app_key}", { access_token: @access_token }).body
|
6
|
+
end
|
7
|
+
|
8
|
+
def revoke_application_permissions(user_id, application_id)
|
9
|
+
delete_request("/users/#{user_id}/applications/#{app_id}?access_token=#{@access_token}").body
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_application_feeds
|
13
|
+
get_request("/users/#{user_id}/applications/#{@app_key}", { access_token: @access_token }).body
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Core
|
3
|
+
module Bookmarks
|
4
|
+
def get_my_bookmarks
|
5
|
+
get_request("/users/me/bookmarks", { access_token: @access_token }).body
|
6
|
+
end
|
7
|
+
|
8
|
+
def create_item_bookmark(item_id)
|
9
|
+
payload = { item_id: item_id }.to_json
|
10
|
+
|
11
|
+
headers = { content_type: :json }
|
12
|
+
|
13
|
+
post_request("/users/me/bookmarks?access_token=#{@access_token}", payload, headers).body
|
14
|
+
end
|
15
|
+
|
16
|
+
def delete_item_bookmark(item_id)
|
17
|
+
delete_request("/users/me/bookmarks/#{item_id}?access_token=#{@access_token}").body
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Core
|
3
|
+
module Categories
|
4
|
+
def get_site_categories(site_id)
|
5
|
+
get_request("/sites/#{site_id}/categories").body
|
6
|
+
end
|
7
|
+
|
8
|
+
def get_category(category_id)
|
9
|
+
get_request("/categories/#{category_id}").body
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_category_attributes(category_id)
|
13
|
+
get_request("/categories/#{category_id}/attributes").body
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_category_prediction(site_id, args)
|
17
|
+
get_request("/sites/#{site_id}/category_predictor/predict", args).body
|
18
|
+
end
|
19
|
+
|
20
|
+
def get_multiple_category_prediction(site_id, categories_data)
|
21
|
+
payload = categories_data.to_json
|
22
|
+
|
23
|
+
headers = { content_type: :json }
|
24
|
+
|
25
|
+
post_request("/sites/#{site_id}/category_predictor/predict", payload, headers).body
|
26
|
+
end
|
27
|
+
|
28
|
+
def get_category_promotion_packs(category_id)
|
29
|
+
get_request("/categories/#{category_id}/classifieds_promotion_packs").body
|
30
|
+
end
|
31
|
+
|
32
|
+
def get_all_categories(site_id, args={})
|
33
|
+
get_request("/sites/#{site_id}/categories/all", args, { api_response_kind: 'raw' }).body
|
34
|
+
end
|
35
|
+
|
36
|
+
def get_site_trends(site_id, category_id=nil)
|
37
|
+
if category_id.present?
|
38
|
+
params = { category: category_id }
|
39
|
+
else
|
40
|
+
params = { }
|
41
|
+
end
|
42
|
+
|
43
|
+
get_request("/sites/#{site_id}/trends/search", params).body
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Core
|
3
|
+
module Currencies
|
4
|
+
def get_currencies
|
5
|
+
get_request('/currencies').body
|
6
|
+
end
|
7
|
+
|
8
|
+
def get_currency(currency_id)
|
9
|
+
get_request("/currencies/#{currency_id}").body
|
10
|
+
end
|
11
|
+
|
12
|
+
def currency_convertion_rate(currency_from, currency_to)
|
13
|
+
filters = { from: currency_from, to: currency_to }
|
14
|
+
get_request('/currency_conversions/search', filters).body
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
module Mercadolibre
|
2
2
|
module Core
|
3
|
-
# http://developers.mercadolibre.com/es/ofertas/
|
4
3
|
module Deals
|
5
4
|
def get_deals_invited(user_id)
|
6
5
|
filters = { access_token: @access_token }
|
@@ -22,16 +21,16 @@ module Mercadolibre
|
|
22
21
|
payload, headers).body
|
23
22
|
end
|
24
23
|
|
25
|
-
def update_deal_item(user_id, deal_id, item_data)
|
24
|
+
def update_deal_item(user_id, deal_id, item_id, item_data)
|
26
25
|
payload = item_data.to_json
|
27
26
|
headers = { content_type: :json, accept: :json }
|
28
27
|
|
29
|
-
put_request("/users/#{user_id}/deals/#{deal_id}/proposed_items?access_token=#{@access_token}",
|
28
|
+
put_request("/users/#{user_id}/deals/#{deal_id}/proposed_items/#{item_id}?access_token=#{@access_token}",
|
30
29
|
payload, headers).body
|
31
30
|
end
|
32
31
|
|
33
32
|
def remove_item_from_deal(user_id, deal_id, item_id)
|
34
|
-
delete_request("/users/#{user_id}/deals/#{deal_id}/proposed_items?access_token=#{@access_token}")
|
33
|
+
delete_request("/users/#{user_id}/deals/#{deal_id}/proposed_items/#{item_id}?access_token=#{@access_token}")
|
35
34
|
end
|
36
35
|
end
|
37
36
|
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Core
|
3
|
+
module Feedbacks
|
4
|
+
def get_order_feedbacks(order_id)
|
5
|
+
filters = { access_token: @access_token }
|
6
|
+
|
7
|
+
get_request("/orders/#{order_id}/feedback", filters).body
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_order_buyer_feedback(order_id)
|
11
|
+
filters = { access_token: @access_token }
|
12
|
+
|
13
|
+
get_request("/orders/#{order_id}/feedback/purchase", filters).body
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_order_seller_feedback(order_id)
|
17
|
+
filters = { access_token: @access_token }
|
18
|
+
|
19
|
+
get_request("/orders/#{order_id}/feedback/sale", filters).body
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_order_feedback(order_id, feedback_data)
|
23
|
+
payload = feedback_data.to_json
|
24
|
+
|
25
|
+
headers = { content_type: :json }
|
26
|
+
|
27
|
+
post_request("/orders/#{order_id}/feedback?access_token=#{@access_token}", payload, headers).body
|
28
|
+
end
|
29
|
+
|
30
|
+
def change_order_seller_feedback(order_id, kind, feedback_data)
|
31
|
+
payload = feedback_data.to_json
|
32
|
+
|
33
|
+
headers = { content_type: :json }
|
34
|
+
|
35
|
+
put_request("/orders/#{order_id}/feedback/sale?access_token=#{@access_token}", payload, headers).body
|
36
|
+
end
|
37
|
+
|
38
|
+
def change_order_buyer_feedback(order_id, kind, feedback_data)
|
39
|
+
payload = feedback_data.to_json
|
40
|
+
|
41
|
+
headers = { content_type: :json }
|
42
|
+
|
43
|
+
put_request("/orders/#{order_id}/feedback/purchase?access_token=#{@access_token}", payload, headers).body
|
44
|
+
end
|
45
|
+
|
46
|
+
def change_order_feedback(feedback_id, feedback_data)
|
47
|
+
payload = feedback_data.to_json
|
48
|
+
|
49
|
+
headers = { content_type: :json }
|
50
|
+
|
51
|
+
put_request("/feedback/#{feedback_id}?access_token=#{@access_token}", payload, headers).body
|
52
|
+
end
|
53
|
+
|
54
|
+
def reply_order_feedback(feedback_id, text)
|
55
|
+
payload = { reply: text }.to_json
|
56
|
+
|
57
|
+
headers = { content_type: :json }
|
58
|
+
|
59
|
+
post_request("/feedback/{feedback_id}/reply?access_token=#{@access_token}", payload, headers).body
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Core
|
3
|
+
module ItemVariations
|
4
|
+
def get_item_variations(item_id)
|
5
|
+
get_request("/items/#{item_id}/variations").body
|
6
|
+
end
|
7
|
+
|
8
|
+
def create_item_variation(item_id, attrs)
|
9
|
+
payload = attrs.to_json
|
10
|
+
|
11
|
+
headers = { content_type: :json, accept: :json }
|
12
|
+
|
13
|
+
post_request("/items/#{item_id}/variations?access_token=#{@access_token}",
|
14
|
+
payload, headers).body
|
15
|
+
end
|
16
|
+
|
17
|
+
def get_item_variation(item_id, variation_id)
|
18
|
+
get_request("/items/#{item_id}/variations/#{variation_id}").body
|
19
|
+
end
|
20
|
+
|
21
|
+
def update_item_variation(item_id, variation_id, attrs)
|
22
|
+
payload = attrs.to_json
|
23
|
+
|
24
|
+
headers = { content_type: :json, accept: :json }
|
25
|
+
|
26
|
+
put_request("/items/#{item_id}/variations/#{variation_id}?access_token=#{@access_token}",
|
27
|
+
payload, headers).body
|
28
|
+
end
|
29
|
+
|
30
|
+
def delete_item_variation(item_id, variation_id)
|
31
|
+
delete_request("/items/#{item_id}/variations/#{variation_id}?access_token=#{@access_token}").body
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Core
|
3
|
+
module Items
|
4
|
+
def create_item(attrs)
|
5
|
+
payload = attrs.to_json
|
6
|
+
|
7
|
+
headers = { content_type: :json }
|
8
|
+
|
9
|
+
post_request("/items?access_token=#{@access_token}", payload, headers).body
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_item(item_id, attrs={})
|
13
|
+
get_request("/items/#{item_id}", attrs).body
|
14
|
+
end
|
15
|
+
|
16
|
+
def update_item(item_id, attrs)
|
17
|
+
payload = attrs.to_json
|
18
|
+
|
19
|
+
headers = { content_type: :json, accept: :json }
|
20
|
+
|
21
|
+
put_request("/items/#{item_id}?access_token=#{@access_token}", payload, headers).body
|
22
|
+
end
|
23
|
+
|
24
|
+
def validate_item(attrs)
|
25
|
+
payload = attrs.to_json
|
26
|
+
|
27
|
+
headers = { content_type: :json }
|
28
|
+
|
29
|
+
result = post_request("/items/validate?access_token=#{@access_token}", payload, headers)
|
30
|
+
|
31
|
+
(result.status_code.to_s == '204')
|
32
|
+
end
|
33
|
+
|
34
|
+
def get_item_available_upgrades(item_id)
|
35
|
+
get_request("/items/#{item_id}/available_upgrades?access_token=@access_token").body
|
36
|
+
end
|
37
|
+
|
38
|
+
def relist_item(item_id, attrs)
|
39
|
+
payload = attrs.to_json
|
40
|
+
|
41
|
+
headers = { content_type: :json, accept: :json }
|
42
|
+
|
43
|
+
post_request("/items/#{item_id}/relist?access_token=#{@access_token}", payload, headers).body
|
44
|
+
end
|
45
|
+
|
46
|
+
def get_item_description(item_id)
|
47
|
+
get_request("/items/#{item_id}/description").body
|
48
|
+
end
|
49
|
+
|
50
|
+
def update_item_description(item_id, text)
|
51
|
+
payload = { text: text }.to_json
|
52
|
+
|
53
|
+
headers = { content_type: :json, accept: :json }
|
54
|
+
|
55
|
+
put_request("/items/#{item_id}/description?access_token=#{@access_token}", payload, headers).body
|
56
|
+
end
|
57
|
+
|
58
|
+
def update_item_attributes(item_id, attrs)
|
59
|
+
payload = attrs.to_json
|
60
|
+
|
61
|
+
headers = { content_type: :json, accept: :json }
|
62
|
+
|
63
|
+
put_request("/items/#{item_id}?access_token=#{@access_token}", payload, headers).status_code == 200
|
64
|
+
end
|
65
|
+
|
66
|
+
def delete_item_attributes(item_id, attr_list)
|
67
|
+
payload = attr_list.map { |x| { id: x } }.to_json
|
68
|
+
|
69
|
+
headers = { content_type: :json, accept: :json }
|
70
|
+
|
71
|
+
put_request("/items/#{item_id}?access_token=#{@access_token}", payload, headers).status_code == 200
|
72
|
+
end
|
73
|
+
|
74
|
+
def get_item_identifiers(item_id)
|
75
|
+
get_request("/items/#{item_id}/product_identifiers").body
|
76
|
+
end
|
77
|
+
|
78
|
+
def update_item_identifiers(item_id, attrs)
|
79
|
+
payload = attrs.to_json
|
80
|
+
|
81
|
+
headers = { content_type: :json }
|
82
|
+
|
83
|
+
put_request("/items/#{item_id}/product_identifiers?access_token=#{@access_token}", payload, headers).status_code == 200
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Mercadolibre
|
2
|
+
module Core
|
3
|
+
module Listings
|
4
|
+
def get_sites
|
5
|
+
get_request('/sites').body
|
6
|
+
end
|
7
|
+
|
8
|
+
def get_site(site_id)
|
9
|
+
get_request("/sites/#{site_id}").body
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_site_domain(domain)
|
13
|
+
get_request("/site_domains/#{domain}").body
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_site_payment_methods(site_id)
|
17
|
+
results = get_request("/sites/#{site_id}/payment_methods")
|
18
|
+
results.body
|
19
|
+
end
|
20
|
+
|
21
|
+
def get_site_payment_method_info(site_id, payment_method_id)
|
22
|
+
results = get_request("/sites/#{site_id}/payment_methods/#{payment_method_id}")
|
23
|
+
results.body
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_listing_types(site_id)
|
27
|
+
get_request("/sites/#{site_id}/listing_types").body
|
28
|
+
end
|
29
|
+
|
30
|
+
def get_listing_exposures(site_id)
|
31
|
+
get_request("/sites/#{site_id}/listing_exposures").body
|
32
|
+
end
|
33
|
+
|
34
|
+
def get_listing_prices(site_id, args)
|
35
|
+
get_request("/sites/#{site_id}/listing_prices", args).body
|
36
|
+
end
|
37
|
+
|
38
|
+
def get_listing_type(site_id, listing_type_id)
|
39
|
+
get_request("/sites/#{site_id}/listing_types/#{listing_type_id}").body
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|