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.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mercadolibre.rb +20 -7
  3. data/lib/mercadolibre/api.rb +18 -7
  4. data/lib/mercadolibre/core/apps.rb +17 -0
  5. data/lib/mercadolibre/core/bookmarks.rb +21 -0
  6. data/lib/mercadolibre/core/categories.rb +47 -0
  7. data/lib/mercadolibre/core/currencies.rb +18 -0
  8. data/lib/mercadolibre/core/deals.rb +3 -4
  9. data/lib/mercadolibre/core/feedbacks.rb +63 -0
  10. data/lib/mercadolibre/core/item_variations.rb +35 -0
  11. data/lib/mercadolibre/core/items.rb +87 -0
  12. data/lib/mercadolibre/core/listings.rb +43 -0
  13. data/lib/mercadolibre/core/{locations_and_currencies.rb → locations.rb} +7 -13
  14. data/lib/mercadolibre/core/messaging.rb +55 -0
  15. data/lib/mercadolibre/core/metrics.rb +53 -0
  16. data/lib/mercadolibre/core/money.rb +21 -0
  17. data/lib/mercadolibre/core/order_blacklist.rb +25 -0
  18. data/lib/mercadolibre/core/order_notes.rb +33 -0
  19. data/lib/mercadolibre/core/orders.rb +39 -0
  20. data/lib/mercadolibre/core/pictures.rb +33 -0
  21. data/lib/mercadolibre/core/projects.rb +42 -0
  22. data/lib/mercadolibre/core/question_blacklist.rb +27 -0
  23. data/lib/mercadolibre/core/{questions_and_answers.rb → questions.rb} +10 -31
  24. data/lib/mercadolibre/core/searching.rb +33 -0
  25. data/lib/mercadolibre/core/shipping.rb +6 -6
  26. data/lib/mercadolibre/core/{users_and_apps.rb → users.rb} +21 -23
  27. data/lib/mercadolibre/version.rb +1 -1
  28. metadata +22 -9
  29. data/lib/mercadolibre/core/categories_and_listings.rb +0 -59
  30. data/lib/mercadolibre/core/collections.rb +0 -10
  31. data/lib/mercadolibre/core/items_and_searches.rb +0 -153
  32. 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: '099e192b1ff0dfec8dc347daba5573de8ed6aaf3'
4
- data.tar.gz: 3c6fd4cbe16ccc12c5b1fa2836b8b5ec63927af0
3
+ metadata.gz: 6602b69dbd4ec3c9d277b564896682d2afa74a99
4
+ data.tar.gz: adb1df6cc0c95807267e61f0b95aad3940d89227
5
5
  SHA512:
6
- metadata.gz: a436fea370ed264a012ee7049819eb6d32ebc69b0cdf6f8cb109eeaede7c4d6ebb094eae5215be75a809b9021d04efcc70f3855e783aa7d4fdfe7e257d313cb6
7
- data.tar.gz: 987b8fc3bbfd5585d571a04ea331b049e84ced425dffc1ad7db398a209f437944e6f4628e29e0efe1e9fbc6444669775c13d6bc249a6578e3f27dfb1a0ec079d
6
+ metadata.gz: 5c5451fb055faeff294fa71d5ba725a028b0b1643f7895a7da27516123939a426fb73b8b059df4ef47656f511ae7ea25a36dbac1450f6f09e4c491442d361dce
7
+ data.tar.gz: 90036235a292288c202bd82ea220bfc615ea2c87bbc466e5a27ae5f2c5e3c7683cb2ef14564f5fe65ed36fb9a0f9efb207d835f8e0c0897af5ef98c929e83c9b
@@ -1,17 +1,30 @@
1
1
  require "mercadolibre/version"
2
2
 
3
3
  # mercadolibre -> core
4
- require "mercadolibre/core/categories_and_listings"
5
- require "mercadolibre/core/collections"
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/items_and_searches"
8
- require "mercadolibre/core/locations_and_currencies"
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/orders_and_feedback"
12
- require "mercadolibre/core/questions_and_answers"
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/users_and_apps"
27
+ require "mercadolibre/core/users"
15
28
 
16
29
  # mercadolibre -> api
17
30
  require "mercadolibre/api"
@@ -23,17 +23,28 @@ module Mercadolibre
23
23
  @site = args[:site]
24
24
  end
25
25
 
26
- include Mercadolibre::Core::CategoriesAndListings
27
- include Mercadolibre::Core::Collections
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::ItemsAndSearches
30
- include Mercadolibre::Core::LocationsAndCurrencies
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::OrdersAndFeedback
34
- include Mercadolibre::Core::QuestionsAndAnswers
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::UsersAndApps
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