mercadolibre 0.0.5 → 0.0.6

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: 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