mercadolibre 1.8.0 → 2.0.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/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
|