mercadolibre_rails 0.1 → 0.2
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 +4 -4
- data/MIT-LICENSE +0 -0
- data/README.md +1 -5
- data/Rakefile +0 -0
- data/app/assets/config/mercadolibre_rails_manifest.js +0 -0
- data/app/assets/javascripts/mercadolibre_rails/application.js +0 -0
- data/app/assets/stylesheets/mercadolibre_rails/application.css +0 -0
- data/app/controllers/mercadolibre_rails/application_controller.rb +0 -0
- data/app/helpers/mercadolibre_rails/application_helper.rb +0 -0
- data/app/jobs/mercadolibre_rails/application_job.rb +0 -0
- data/app/mailers/mercadolibre_rails/application_mailer.rb +0 -0
- data/app/models/mercadolibre_rails/application_record.rb +0 -0
- data/app/models/mercadolibre_rails/product.rb +34 -0
- data/app/models/mercadolibre_rails/seller.rb +5 -0
- data/app/models/mercadolibre_rails/site.rb +2 -0
- data/app/views/layouts/mercadolibre_rails/application.html.erb +0 -0
- data/config/routes.rb +0 -0
- data/db/migrate/20181003152541_create_mercadolibre_rails_sites.rb +0 -0
- data/db/migrate/20181004142438_create_mercadolibre_rails_products.rb +17 -0
- data/db/migrate/20181004143133_create_mercadolibre_rails_sellers.rb +9 -0
- data/db/migrate/20181004143244_add_site_to_products.rb +5 -0
- data/db/migrate/20181004150308_add_seller_to_mercadolibre_rails_products.rb +5 -0
- data/lib/mercadolibre_rails/engine.rb +6 -0
- data/lib/mercadolibre_rails/version.rb +1 -1
- data/lib/mercadolibre_rails.rb +0 -1
- data/lib/tasks/mercadolibre_rails_tasks.rake +0 -0
- metadata +39 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18f52d0362d633577e38e3a9bf61d5beab759a6fe3a8ee271b48d454e2e61b5f
|
4
|
+
data.tar.gz: ed5ecdb66145691b7a8a84ad13c15fb97fbbc4d808bf3ea5b059ef4ee689831d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b4341c850e11c460b70ff98fd9b1dabfd9adcba346d35078d481a3a8c7c27e01b91279dd7dcd736e9484f79764ab5d04c7fd0efcd7fd5aa04cf00a2db4594b0
|
7
|
+
data.tar.gz: b72f9cf83de2fb5b1bb64940a82d16ff407ad1d60504ab038a4c8522d31cf23ac9bc374acdb5fa25fab289870724f7531a2ce651c730087fd496e913978db773
|
data/MIT-LICENSE
CHANGED
File without changes
|
data/README.md
CHANGED
data/Rakefile
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'mercadolibre_api'
|
2
|
+
|
3
|
+
module MercadolibreRails
|
4
|
+
class Product < ApplicationRecord
|
5
|
+
belongs_to :seller, optional: true
|
6
|
+
belongs_to :site, optional: true
|
7
|
+
|
8
|
+
validates_presence_of :mercadolibre_id
|
9
|
+
validates_uniqueness_of :mercadolibre_id, scope: :site_id
|
10
|
+
|
11
|
+
delegate :code, to: :site, prefix: true
|
12
|
+
after_create_commit :update_metadata
|
13
|
+
|
14
|
+
def self.create_from(url:)
|
15
|
+
ml_id = MercadolibreApi::Products::Queries::GetID.run!(product_url: url)
|
16
|
+
site_code = MercadolibreApi::Sites::Queries::GetCode.run!(product_url: url)
|
17
|
+
|
18
|
+
return unless ml_id && site_code
|
19
|
+
|
20
|
+
mercadolibre_site = MercadolibreRails::Site.find_or_create_by!(code: site_code)
|
21
|
+
mercadolibre_site.products.find_or_create_by!(mercadolibre_id: ml_id)
|
22
|
+
end
|
23
|
+
|
24
|
+
def update_metadata
|
25
|
+
ml_product = MercadolibreApi::Products::Queries::Find.run!(product_id: mercadolibre_id)
|
26
|
+
ml_seller = Seller.find_or_create_by!(mercadolibre_id: ml_product[:seller_id])
|
27
|
+
|
28
|
+
update!(seller: ml_seller, title: ml_product[:title], price: ml_product[:price],
|
29
|
+
currency_code: ml_product[:currency_id], sold_quantity: ml_product[:sold_quantity],
|
30
|
+
description: ml_product[:description], status: ml_product[:status],
|
31
|
+
latitude: ml_product.dig(:geolocation, :latitude), longitude: ml_product.dig(:geolocation, :longitude))
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
File without changes
|
data/config/routes.rb
CHANGED
File without changes
|
File without changes
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class CreateMercadolibreRailsProducts < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
create_table :mercadolibre_rails_products do |t|
|
4
|
+
t.string :mercadolibre_id, null: false, index: { unique: true }
|
5
|
+
t.string :title
|
6
|
+
t.decimal :price, precision: 8, scale: 2
|
7
|
+
t.string :currency_code
|
8
|
+
t.integer :sold_quantity, default: 0
|
9
|
+
t.text :description
|
10
|
+
t.string :status, default: :sync_needed
|
11
|
+
t.decimal :latitude, precision: 10, scale: 6
|
12
|
+
t.decimal :longitude, precision: 10, scale: 6
|
13
|
+
|
14
|
+
t.timestamps
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -3,5 +3,11 @@
|
|
3
3
|
module MercadolibreRails
|
4
4
|
class Engine < ::Rails::Engine
|
5
5
|
isolate_namespace MercadolibreRails
|
6
|
+
|
7
|
+
initializer 'mercadolibre_rails', before: :load_config_initializers do |_app|
|
8
|
+
config.paths['db/migrate'].expanded.each do |expanded_path|
|
9
|
+
Rails.application.config.paths['db/migrate'] << expanded_path
|
10
|
+
end
|
11
|
+
end
|
6
12
|
end
|
7
13
|
end
|
data/lib/mercadolibre_rails.rb
CHANGED
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.
|
4
|
+
version: '0.2'
|
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-
|
11
|
+
date: 2018-10-09 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.
|
19
|
+
version: '0.8'
|
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.
|
26
|
+
version: '0.8'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rails
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +38,34 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 5.2.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: redis
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 4.0.2
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 4.0.2
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: byebug
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 10.0.2
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 10.0.2
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: factory_bot_rails
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,10 +154,16 @@ files:
|
|
126
154
|
- app/jobs/mercadolibre_rails/application_job.rb
|
127
155
|
- app/mailers/mercadolibre_rails/application_mailer.rb
|
128
156
|
- app/models/mercadolibre_rails/application_record.rb
|
157
|
+
- app/models/mercadolibre_rails/product.rb
|
158
|
+
- app/models/mercadolibre_rails/seller.rb
|
129
159
|
- app/models/mercadolibre_rails/site.rb
|
130
160
|
- app/views/layouts/mercadolibre_rails/application.html.erb
|
131
161
|
- config/routes.rb
|
132
162
|
- db/migrate/20181003152541_create_mercadolibre_rails_sites.rb
|
163
|
+
- db/migrate/20181004142438_create_mercadolibre_rails_products.rb
|
164
|
+
- db/migrate/20181004143133_create_mercadolibre_rails_sellers.rb
|
165
|
+
- db/migrate/20181004143244_add_site_to_products.rb
|
166
|
+
- db/migrate/20181004150308_add_seller_to_mercadolibre_rails_products.rb
|
133
167
|
- lib/mercadolibre_rails.rb
|
134
168
|
- lib/mercadolibre_rails/engine.rb
|
135
169
|
- lib/mercadolibre_rails/version.rb
|
@@ -154,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
154
188
|
version: '0'
|
155
189
|
requirements: []
|
156
190
|
rubyforge_project:
|
157
|
-
rubygems_version: 2.7.
|
191
|
+
rubygems_version: 2.7.6
|
158
192
|
signing_key:
|
159
193
|
specification_version: 4
|
160
194
|
summary: Library to integrate MercadolibreApi into a Rails Project.
|