mercadolibre 0.0.4 → 0.0.5

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