mercadolibre 1.8.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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