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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 72cae8d1140d97a14259d4a5dfc9ca8590cb0b53
4
- data.tar.gz: bc3ba65b9398c085cf60d51ff52cc01dce1c8b52
3
+ metadata.gz: 0ae7b377aa44efd0110a7b576d0beadbe19f610e
4
+ data.tar.gz: 893c83d6feb9c676d8366c6e3fe49cb620bacafe
5
5
  SHA512:
6
- metadata.gz: de3886dfd9f93199e4f43aa43e6b278aefb73641fd266df6f7221da67612056257c97464f75134a828a3e2c320c4e53d1d2f8b70504b0f5dbb0f072dbe55f2e2
7
- data.tar.gz: 139d5e936a5a0eaa65c0da4d8dce6b16a947d9d1a9966a75a03642af54b793f7564230eb7b251d663ee5fe97067de7f44371b3e64254a64bc51e6dfdb7bb230c
6
+ metadata.gz: 071602cfacac1e949dcd9cda8acee48af6d1f5177e2d7cb169339386c9bd5b81ef08c3d51d6520662d72ae5e599621d0a2d433376ef9225fa9982ee385c6b3f7
7
+ data.tar.gz: 58f5ecb52070c072d91a4e7240373dee44f29686c8f552e2dc9fc5d1767b5b85c25fadd7b1ce5a8e42ec21095d120edbef8aae6b43a37a9676948e0e6010a084
data/CHANGELOG.md CHANGED
@@ -13,3 +13,7 @@
13
13
  ## v0.0.4
14
14
 
15
15
  * Added status to feedback
16
+
17
+ ## v0.0.5
18
+
19
+ * Added more API methods
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/items"
23
- require "mercadolibre/core/locations"
24
- require "mercadolibre/core/orders"
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/users"
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 Items
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 Locations
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 Orders
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 Users
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
@@ -1,3 +1,3 @@
1
1
  module Mercadolibre
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
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
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-16 00:00:00.000000000 Z
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/items.rb
69
- - lib/mercadolibre/core/locations.rb
70
- - lib/mercadolibre/core/orders.rb
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/users.rb
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: