mercadolibre 0.0.5 → 0.0.6

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: 0ae7b377aa44efd0110a7b576d0beadbe19f610e
4
- data.tar.gz: 893c83d6feb9c676d8366c6e3fe49cb620bacafe
3
+ metadata.gz: b60ec4c7008916fec74f5ad3075b5b498d7ac5a8
4
+ data.tar.gz: e353fdc23d5390b9b075b1a5fc9a0ed27182e359
5
5
  SHA512:
6
- metadata.gz: 071602cfacac1e949dcd9cda8acee48af6d1f5177e2d7cb169339386c9bd5b81ef08c3d51d6520662d72ae5e599621d0a2d433376ef9225fa9982ee385c6b3f7
7
- data.tar.gz: 58f5ecb52070c072d91a4e7240373dee44f29686c8f552e2dc9fc5d1767b5b85c25fadd7b1ce5a8e42ec21095d120edbef8aae6b43a37a9676948e0e6010a084
6
+ metadata.gz: 64223dc129fa6fd0e56099a8a2320c8e28182b49827a9a96eab9d55b33c8aea12c87606fc479434566db351b2e2e6a96ce306e735ef2c5a3a4bd578301c14ba7
7
+ data.tar.gz: e52819ae03da6b4460a72220136d62168e73f076da5ccddd67d22cd43b598b871d07fc0d7e00a2518a3990395c8e0fb60cf0530ab76b2499369a20fbfdf58917
data/CHANGELOG.md CHANGED
@@ -17,3 +17,7 @@
17
17
  ## v0.0.5
18
18
 
19
19
  * Added more API methods
20
+
21
+ ## v0.0.6
22
+
23
+ * Added listing kind methods
data/lib/mercadolibre.rb CHANGED
@@ -4,6 +4,7 @@ require "mercadolibre/version"
4
4
  require "mercadolibre/entity/answer"
5
5
  require "mercadolibre/entity/auth"
6
6
  require "mercadolibre/entity/category"
7
+ require "mercadolibre/entity/category_settings"
7
8
  require "mercadolibre/entity/city"
8
9
  require "mercadolibre/entity/country"
9
10
  require "mercadolibre/entity/currency"
@@ -12,6 +13,8 @@ require "mercadolibre/entity/feedback"
12
13
  require "mercadolibre/entity/item"
13
14
  require "mercadolibre/entity/item_description"
14
15
  require "mercadolibre/entity/item_picture"
16
+ require "mercadolibre/entity/listing_exposure"
17
+ require "mercadolibre/entity/listing_price"
15
18
  require "mercadolibre/entity/listing_type"
16
19
  require "mercadolibre/entity/order"
17
20
  require "mercadolibre/entity/order_item"
@@ -19,10 +19,25 @@ module Mercadolibre
19
19
  Mercadolibre::Entity::SiteDomain.new(result[:body])
20
20
  end
21
21
 
22
- def get_site_categories(site_id)
23
- results = get_request("/sites/#{site_id}/categories")
22
+ def get_listing_types(site_id)
23
+ results = get_request("/sites/#{site_id}/listing_types")
24
24
 
25
- results[:body].map { |r| Mercadolibre::Entity::Category.new(r) }
25
+ results[:body].map { |r| Mercadolibre::Entity::ListingType.new(r) }
26
+ end
27
+
28
+ def get_listing_exposures(site_id)
29
+ results = get_request("/sites/#{site_id}/listing_exposures")
30
+
31
+ results[:body].map { |r| Mercadolibre::Entity::ListingExposure.new(r) }
32
+ end
33
+
34
+ def get_listing_prices(filters)
35
+ valid_filters = ['price', 'listing_type_id', 'quantity', 'category_id', 'currency_id']
36
+ filters.keep_if { |k,v| valid_filters.include?(k.to_s) }
37
+
38
+ results = get_request("/sites/#{site_id}/listing_prices", filters)
39
+
40
+ results[:body].map { |r| Mercadolibre::Entity::ListingPrice.new(r) }
26
41
  end
27
42
 
28
43
  def get_site_categories(site_id)
@@ -30,6 +45,12 @@ module Mercadolibre
30
45
 
31
46
  results[:body].map { |r| Mercadolibre::Entity::Category.new(r) }
32
47
  end
48
+
49
+ def get_category(category_id)
50
+ result = get_request("/categories/#{category_id}")
51
+
52
+ Mercadolibre::Entity::Category.new(result[:body])
53
+ end
33
54
  end
34
55
  end
35
56
  end
@@ -2,7 +2,8 @@ module Mercadolibre
2
2
  module Entity
3
3
  class Category
4
4
  def self.attr_list
5
- [:id, :name, :path_from_root, :children_categories]
5
+ [:id, :name, :picture, :permalink, :total_items_in_this_category,
6
+ :path_from_root, :children_categories, :attribute_types, :settings]
6
7
  end
7
8
 
8
9
  attr_reader *attr_list
@@ -11,6 +12,8 @@ module Mercadolibre
11
12
  attributes.each do |k, v|
12
13
  if ['path_from_root', 'children_categories'].include?(k.to_s)
13
14
  self.state = v.map { |x| Category.new(x) }
15
+ elsif k.to_s == 'settings'
16
+ self.settings = CategorySettings.new(v)
14
17
  else
15
18
  self.send("#{k}=", v) if self.respond_to?(k)
16
19
  end
@@ -0,0 +1,26 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class CategorySettings
4
+ def self.attr_list
5
+ [:adult_content, :buying_allowed, :buying_modes, :coverage_areas, :currencies,
6
+ :fragile, :immediate_payment, :item_conditions, :items_reviews_allowed, :listing_allowed,
7
+ :max_description_length, :max_pictures_per_item, :max_sub_title_length, :max_title_length,
8
+ :maximum_price, :minimum_price, :mirror_category, :price, :restrictions, :rounded_address,
9
+ :seller_contact, :shipping_modes, :shipping_options, :shipping_profile,
10
+ :show_contact_information, :simple_shipping, :stock, :tags, :vip_subdomain]
11
+ end
12
+
13
+ attr_reader *attr_list
14
+
15
+ def initialize(attributes={})
16
+ attributes.each do |k, v|
17
+ self.send("#{k}=", v) if self.respond_to?(k)
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ attr_writer *attr_list
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,21 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class ListingExposure
4
+ def self.attr_list
5
+ [:id, :name, :home_page, :category_home_page, :advertising_on_listing_page, :priority_in_search]
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,26 @@
1
+ module Mercadolibre
2
+ module Entity
3
+ class ListingPrice
4
+ def self.attr_list
5
+ [:listing_type_id, :listing_type_name, :listing_exposure, :requires_picture,
6
+ :currency_id, :listing_fee_amount, :sale_fee_amount, :free_relist, :stop_time]
7
+ end
8
+
9
+ attr_reader *attr_list
10
+
11
+ def initialize(attributes={})
12
+ attributes.each do |k, v|
13
+ if k.to_s == 'stop_time'
14
+ self.stop_time = Time.parse(v)
15
+ else
16
+ self.send("#{k}=", v) if self.respond_to?(k)
17
+ end
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ attr_writer *attr_list
24
+ end
25
+ end
26
+ end
@@ -1,3 +1,3 @@
1
1
  module Mercadolibre
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mercadolibre
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matias Hick
@@ -74,6 +74,7 @@ files:
74
74
  - lib/mercadolibre/entity/answer.rb
75
75
  - lib/mercadolibre/entity/auth.rb
76
76
  - lib/mercadolibre/entity/category.rb
77
+ - lib/mercadolibre/entity/category_settings.rb
77
78
  - lib/mercadolibre/entity/city.rb
78
79
  - lib/mercadolibre/entity/country.rb
79
80
  - lib/mercadolibre/entity/currency.rb
@@ -82,6 +83,8 @@ files:
82
83
  - lib/mercadolibre/entity/item.rb
83
84
  - lib/mercadolibre/entity/item_description.rb
84
85
  - lib/mercadolibre/entity/item_picture.rb
86
+ - lib/mercadolibre/entity/listing_exposure.rb
87
+ - lib/mercadolibre/entity/listing_price.rb
85
88
  - lib/mercadolibre/entity/listing_type.rb
86
89
  - lib/mercadolibre/entity/order.rb
87
90
  - lib/mercadolibre/entity/order_item.rb