mercadolibre_rails 0.3 → 0.5

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