mercadolibre_rails 0.3 → 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.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +0 -0
  3. data/README.md +0 -0
  4. data/Rakefile +0 -0
  5. data/app/assets/config/mercadolibre_rails_manifest.js +0 -0
  6. data/app/assets/javascripts/mercadolibre_rails/application.js +0 -0
  7. data/app/assets/stylesheets/mercadolibre_rails/application.css +0 -0
  8. data/app/controllers/mercadolibre_rails/application_controller.rb +0 -0
  9. data/app/helpers/mercadolibre_rails/application_helper.rb +0 -0
  10. data/app/jobs/mercadolibre_rails/application_job.rb +0 -0
  11. data/app/mailers/mercadolibre_rails/application_mailer.rb +0 -0
  12. data/app/models/mercadolibre_rails/application_record.rb +0 -0
  13. data/app/models/mercadolibre_rails/picture.rb +8 -0
  14. data/app/models/mercadolibre_rails/product.rb +8 -1
  15. data/app/models/mercadolibre_rails/seller.rb +9 -0
  16. data/app/models/mercadolibre_rails/site.rb +0 -0
  17. data/app/models/mercadolibre_rails/version.rb +0 -0
  18. data/app/models/paper_trail/version.rb +0 -0
  19. data/app/views/layouts/mercadolibre_rails/application.html.erb +0 -0
  20. data/config/routes.rb +0 -0
  21. data/db/migrate/20181003152541_create_mercadolibre_rails_sites.rb +0 -0
  22. data/db/migrate/20181004142438_create_mercadolibre_rails_products.rb +0 -0
  23. data/db/migrate/20181004143133_create_mercadolibre_rails_sellers.rb +0 -0
  24. data/db/migrate/20181004143244_add_site_to_products.rb +0 -0
  25. data/db/migrate/20181004150308_add_seller_to_mercadolibre_rails_products.rb +0 -0
  26. data/db/migrate/20181010142220_create_mercadolibre_rails_versions.rb +0 -0
  27. data/db/migrate/20181010142221_add_object_changes_to_mercadolibre_rails_versions.rb +0 -0
  28. data/db/migrate/20181012133312_create_mercadolibre_rails_pictures.rb +10 -0
  29. data/lib/mercadolibre_rails/engine.rb +0 -0
  30. data/lib/mercadolibre_rails/version.rb +1 -1
  31. data/lib/mercadolibre_rails.rb +0 -0
  32. data/lib/tasks/mercadolibre_rails_tasks.rake +0 -0
  33. metadata +7 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2808a25a1a26bfee2d40aa8dcd84f080a693f179c7e871cc2be7dcf79604eb4f
4
- data.tar.gz: 6f09a5c5ec37e450d80c743041caacbbb1e4d6b936c4d5d838736065e495b38c
3
+ metadata.gz: d4534f513781489dd5f68379a0e10e95370918f8376b2820de504329d16655f5
4
+ data.tar.gz: 5f0209ae2ed18ccd17b24c74e9681cef0e3d7705301d2bc5d7fa8c4b64008f8f
5
5
  SHA512:
6
- metadata.gz: cba774819ca432ad43aba6e32464aac68556a4f4d6e4174c00564e1da78a30db844f742d524be32766be4d259723347242a06a77c63dd4acaded5f112f7a3086
7
- data.tar.gz: bf3db2fbf6dd2063db75f82347eb0ab826f3c1d35b85a49a86b7f0a33a50cbbbedeb76d2fe58b7e53a4365e06f285dd7201d7eba1a16c46f5cbcef918d7c680e
6
+ metadata.gz: 8ff935a2e2005a6f7b5d885fe79a60398b98a450eda2c30c5121d2883b62c87d19bd62b09b0fe3627aa088df82e3a164ab37470cca51a6489e3ec2e1fc643832
7
+ data.tar.gz: c312ccc37ca12ad892dbd1ee9bdb70a40debbab1910f36a916e039981377e175248abc23ca175b77fc0e0de29cceae6584e62f75413648e4e40af2d299a8904b
data/MIT-LICENSE CHANGED
File without changes
data/README.md CHANGED
File without changes
data/Rakefile CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,8 @@
1
+ module MercadolibreRails
2
+ class Picture < ApplicationRecord
3
+ belongs_to :product, class_name: 'MercadolibreRails::Product'
4
+
5
+ validates_presence_of :url
6
+ validates_uniqueness_of :url
7
+ end
8
+ end
@@ -14,6 +14,7 @@ module MercadolibreRails
14
14
 
15
15
  delegate :code, to: :site, prefix: true
16
16
  after_create_commit :update_metadata
17
+ has_many :pictures, dependent: :destroy, class_name: 'MercadolibreRails::Picture'
17
18
 
18
19
  def self.create_from(url:)
19
20
  ml_id = MercadolibreApi::Products::Queries::GetID.run!(product_url: url)
@@ -25,14 +26,20 @@ module MercadolibreRails
25
26
  mercadolibre_site.products.find_or_create_by!(mercadolibre_id: ml_id)
26
27
  end
27
28
 
29
+ # rubocop:disable Metrics/AbcSize
28
30
  def update_metadata
29
31
  ml_product = MercadolibreApi::Products::Queries::Find.run!(product_id: mercadolibre_id)
30
- ml_seller = Seller.find_or_create_by!(mercadolibre_id: ml_product[:seller_id])
32
+ ml_seller = MercadolibreRails::Seller.find_or_create_by!(mercadolibre_id: ml_product[:seller_id])
31
33
 
32
34
  update!(seller: ml_seller, title: ml_product[:title], price: ml_product[:price],
33
35
  currency_code: ml_product[:currency_id], sold_quantity: ml_product[:sold_quantity],
34
36
  description: ml_product[:description], status: ml_product[:status],
35
37
  latitude: ml_product.dig(:geolocation, :latitude), longitude: ml_product.dig(:geolocation, :longitude))
38
+
39
+ ml_product[:pictures].each do |picture|
40
+ MercadolibreRails::Picture.find_or_create_by!(url: picture[:url], product_id: id)
41
+ end
36
42
  end
43
+ # rubocop:enable Metrics/AbcSize
37
44
  end
38
45
  end
@@ -1,5 +1,14 @@
1
+ require 'mercadolibre_api'
2
+
1
3
  module MercadolibreRails
2
4
  class Seller < ApplicationRecord
3
5
  has_many :products, dependent: :destroy
6
+
7
+ def self.create_from(product_url:)
8
+ ml_product_id = MercadolibreApi::Products::Queries::GetID.run!(product_url: product_url)
9
+ ml_seller_id = MercadolibreApi::Sellers::Queries::GetID.run!(product_id: ml_product_id)
10
+
11
+ find_or_create_by!(mercadolibre_id: ml_seller_id)
12
+ end
4
13
  end
5
14
  end
File without changes
File without changes
File without changes
data/config/routes.rb CHANGED
File without changes
File without changes
@@ -0,0 +1,10 @@
1
+ class CreateMercadolibreRailsPictures < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :mercadolibre_rails_pictures do |t|
4
+ t.string :url, null: false, index: { unique: true }
5
+ t.references :product, index: true, foreign_key: { to_table: :mercadolibre_rails_products }
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
File without changes
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MercadolibreRails
4
- VERSION = '0.3'
4
+ VERSION = '0.5'
5
5
  end
File without changes
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mercadolibre_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.3'
4
+ version: '0.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pablo Gonzaga
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-12 00:00:00.000000000 Z
11
+ date: 2018-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mercadolibre_api
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.8'
19
+ version: '0.9'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.8'
26
+ version: '0.9'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: paper_trail
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -168,6 +168,7 @@ files:
168
168
  - app/jobs/mercadolibre_rails/application_job.rb
169
169
  - app/mailers/mercadolibre_rails/application_mailer.rb
170
170
  - app/models/mercadolibre_rails/application_record.rb
171
+ - app/models/mercadolibre_rails/picture.rb
171
172
  - app/models/mercadolibre_rails/product.rb
172
173
  - app/models/mercadolibre_rails/seller.rb
173
174
  - app/models/mercadolibre_rails/site.rb
@@ -182,6 +183,7 @@ files:
182
183
  - db/migrate/20181004150308_add_seller_to_mercadolibre_rails_products.rb
183
184
  - db/migrate/20181010142220_create_mercadolibre_rails_versions.rb
184
185
  - db/migrate/20181010142221_add_object_changes_to_mercadolibre_rails_versions.rb
186
+ - db/migrate/20181012133312_create_mercadolibre_rails_pictures.rb
185
187
  - lib/mercadolibre_rails.rb
186
188
  - lib/mercadolibre_rails/engine.rb
187
189
  - lib/mercadolibre_rails/version.rb
@@ -206,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
208
  version: '0'
207
209
  requirements: []
208
210
  rubyforge_project:
209
- rubygems_version: 2.7.7
211
+ rubygems_version: 2.7.6
210
212
  signing_key:
211
213
  specification_version: 4
212
214
  summary: Library to integrate MercadolibreApi into a Rails Project.