caboose-rets 0.0.79 → 0.0.80
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 +8 -8
- data/app/controllers/caboose_rets/land_controller.rb +1 -0
- data/app/controllers/caboose_rets/multi_family_controller.rb +1 -0
- data/app/controllers/caboose_rets/residential_controller.rb +2 -1
- data/app/models/caboose_rets/agent.rb +2 -2
- data/app/models/caboose_rets/open_house.rb +2 -0
- data/app/models/caboose_rets/rets_importer.rb +47 -21
- data/lib/caboose-rets.rb +3 -0
- data/lib/caboose_rets/version.rb +1 -1
- metadata +1 -2
- data/app/models/caboose_rets/#Untitled-1# +0 -6
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NTgwODhiYTYyYjBkZjdmNDk3ZTJmYmMxOWU3MDViOTljZDM5Zjk3ZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YjM5YmRhNmFhYzY5ZjQ0YWJhZjRmNjVmZGM4NmJmZTc1M2UyNjdhZQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MzlhOWY2ZDQ0NTY1NTZmNWZlYmQ2OTBiYTM2YTEwYTM5MzY5YTA2NGZlMzkz
|
10
|
+
ZGQxMWNjNDc4NmExNjE4NDVjZGRmMDE0ZDM4ZDQ5ZDI2M2Y5MGMyNzUwMjll
|
11
|
+
ZDk4MGRlMTY3N2I1OTg0MTU2OTE0M2NiZjZjY2NiYjgxOTk4MmQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ODlhYjA2Yjg1NDhmNTc0ZTU3OWUwYzE4MTU5ODQxOGY0YTFhOWZiZmY0Mjc2
|
14
|
+
NmNhYjI3YWQ1YThhNGMzZDg1ZjM4NjE0ZDIyMWNjOWE1ZGQ2NDM5ZWZiZDZj
|
15
|
+
ZjdiZDdkOGQwNTY4OTQzZmVhMjQzZjdlNjFmZWQ0MDE3ZWM2Mzc=
|
@@ -80,6 +80,7 @@ module CabooseRets
|
|
80
80
|
@saved = logged_in? && SavedProperty.where(:user_id => logged_in_user.id, :mls_acct => params[:mls_acct]).exists?
|
81
81
|
if @property.nil?
|
82
82
|
@mls_acct = params[:mls_acct]
|
83
|
+
CabooseRets::RetsImporter.delay.import_property(@mls_acct.to_i)
|
83
84
|
render 'land/not_exists'
|
84
85
|
return
|
85
86
|
end
|
@@ -61,6 +61,7 @@ module CabooseRets
|
|
61
61
|
@saved = logged_in? && SavedProperty.where(:user_id => logged_in_user.id, :mls_acct => params[:mls_acct]).exists?
|
62
62
|
if @property.nil?
|
63
63
|
@mls_acct = params[:mls_acct]
|
64
|
+
CabooseRets::RetsImporter.delay.import_property(@mls_acct.to_i)
|
64
65
|
render 'multi_family/not_exists'
|
65
66
|
return
|
66
67
|
end
|
@@ -74,7 +74,8 @@ module CabooseRets
|
|
74
74
|
@agent = Agent.where(:la_code => @property.la_code).first
|
75
75
|
end
|
76
76
|
if @property.nil?
|
77
|
-
@mls_acct = params[:mls_acct]
|
77
|
+
@mls_acct = params[:mls_acct]
|
78
|
+
CabooseRets::RetsImporter.delay.import_property(@mls_acct.to_i)
|
78
79
|
render 'residential/residential_not_exists'
|
79
80
|
return
|
80
81
|
end
|
@@ -2,8 +2,7 @@
|
|
2
2
|
class CabooseRets::Agent < ActiveRecord::Base
|
3
3
|
self.table_name = "rets_agents"
|
4
4
|
has_many :commercial_properties
|
5
|
-
has_many :residential_properties
|
6
|
-
# attr_accessible :title, :body
|
5
|
+
has_many :residential_properties
|
7
6
|
has_attached_file :image,
|
8
7
|
:path => 'rets/agents/:la_code_:style.:extension',
|
9
8
|
:styles => {
|
@@ -11,6 +10,7 @@ class CabooseRets::Agent < ActiveRecord::Base
|
|
11
10
|
:large => '200x300>'
|
12
11
|
}
|
13
12
|
do_not_validate_attachment_file_type :image
|
13
|
+
attr_accessible :id, :la_code
|
14
14
|
after_initialize :fix_name
|
15
15
|
|
16
16
|
def assistants
|
@@ -2,6 +2,8 @@
|
|
2
2
|
class CabooseRets::OpenHouse < ActiveRecord::Base
|
3
3
|
self.table_name = "rets_open_houses"
|
4
4
|
|
5
|
+
attr_accesible :id
|
6
|
+
|
5
7
|
def property
|
6
8
|
models = [CabooseRets::ResidentialProperty, CabooseRets::CommercialProperty, CabooseRets::LandProperty, CabooseRets::MultiFamilyProperty]
|
7
9
|
models.each do |model|
|
@@ -68,7 +68,7 @@ class CabooseRets::RetsImporter # < ActiveRecord::Base
|
|
68
68
|
|
69
69
|
def self.import(class_type, query)
|
70
70
|
m = self.meta(class_type)
|
71
|
-
self.log("Importing #{m.search_type}:#{class_type} with query #{query}...")
|
71
|
+
#self.log("Importing #{m.search_type}:#{class_type} with query #{query}...")
|
72
72
|
self.get_config if @@config.nil? || @@config['url'].nil?
|
73
73
|
params = {
|
74
74
|
:search_type => m.search_type,
|
@@ -126,23 +126,24 @@ class CabooseRets::RetsImporter # < ActiveRecord::Base
|
|
126
126
|
#=============================================================================
|
127
127
|
|
128
128
|
def self.update_after(date_modified, save_images = true)
|
129
|
-
self.update_helper('RES', date_modified, save_images)
|
130
|
-
self.update_helper('COM', date_modified, save_images)
|
131
|
-
self.update_helper('LND', date_modified, save_images)
|
132
|
-
self.update_helper('MUL', date_modified, save_images)
|
133
|
-
self.update_helper('OFF', date_modified, save_images)
|
134
|
-
self.update_helper('AGT', date_modified, save_images)
|
135
|
-
self.update_helper('OPH', date_modified, save_images)
|
129
|
+
self.delay.update_helper('RES', date_modified, save_images)
|
130
|
+
self.delay.update_helper('COM', date_modified, save_images)
|
131
|
+
self.delay.update_helper('LND', date_modified, save_images)
|
132
|
+
self.delay.update_helper('MUL', date_modified, save_images)
|
133
|
+
self.delay.update_helper('OFF', date_modified, save_images)
|
134
|
+
self.delay.update_helper('AGT', date_modified, save_images)
|
135
|
+
self.delay.update_helper('OPH', date_modified, save_images)
|
136
136
|
end
|
137
137
|
|
138
138
|
def self.update_helper(class_type, date_modified, save_images = true)
|
139
139
|
m = self.meta(class_type)
|
140
|
-
k = m.remote_key_field
|
140
|
+
k = m.remote_key_field
|
141
|
+
d = date_modified.in_time_zone(CabooseRets::timezone).strftime("%FT%T")
|
141
142
|
params = {
|
142
143
|
:search_type => m.search_type,
|
143
144
|
:class => class_type,
|
144
145
|
:select => [m.remote_key_field],
|
145
|
-
:query => "(#{m.date_modified_field}=#{
|
146
|
+
:query => "(#{m.date_modified_field}=#{d}+)",
|
146
147
|
:standard_names_only => true,
|
147
148
|
:timeout => -1
|
148
149
|
}
|
@@ -478,8 +479,15 @@ class CabooseRets::RetsImporter # < ActiveRecord::Base
|
|
478
479
|
# Logging
|
479
480
|
#=============================================================================
|
480
481
|
|
481
|
-
def self.log(msg)
|
482
|
+
def self.log(msg)
|
483
|
+
puts "[rets_importer] #{msg}"
|
484
|
+
#Rails.logger.info("[rets_importer] #{msg}")
|
485
|
+
end
|
486
|
+
|
487
|
+
def self.log2(msg)
|
488
|
+
puts "======================================================================"
|
482
489
|
puts "[rets_importer] #{msg}"
|
490
|
+
puts "======================================================================"
|
483
491
|
#Rails.logger.info("[rets_importer] #{msg}")
|
484
492
|
end
|
485
493
|
|
@@ -488,7 +496,12 @@ class CabooseRets::RetsImporter # < ActiveRecord::Base
|
|
488
496
|
#=============================================================================
|
489
497
|
|
490
498
|
def self.update_rets
|
491
|
-
|
499
|
+
self.log2("Updating rets...")
|
500
|
+
if self.task_is_locked
|
501
|
+
self.log2("Task is locked, aborting.")
|
502
|
+
return
|
503
|
+
end
|
504
|
+
self.log2("Locking task...")
|
492
505
|
task_started = self.lock_task
|
493
506
|
|
494
507
|
begin
|
@@ -499,17 +512,30 @@ class CabooseRets::RetsImporter # < ActiveRecord::Base
|
|
499
512
|
# Keep this in here to make sure all updates are caught
|
500
513
|
#overlap = 1.month
|
501
514
|
end
|
515
|
+
|
516
|
+
self.log2("Updating after #{self.last_updated.strftime("%FT%T%:z")}...")
|
502
517
|
self.update_after(self.last_updated - overlap)
|
518
|
+
|
519
|
+
self.log2("Saving the timestamp for when we updated...")
|
503
520
|
self.save_last_updated(task_started)
|
521
|
+
|
522
|
+
self.log2("Unlocking the task...")
|
504
523
|
self.unlock_task
|
505
|
-
rescue
|
524
|
+
rescue Exception => err
|
525
|
+
puts err
|
506
526
|
raise
|
507
527
|
ensure
|
528
|
+
self.log2("Unlocking task if last updated...")
|
508
529
|
self.unlock_task_if_last_updated(task_started)
|
509
530
|
end
|
510
531
|
|
511
532
|
# Start the same update process in five minutes
|
512
|
-
self.
|
533
|
+
self.log2("Adding the update rets task for 5 minutes from now...")
|
534
|
+
q = "handler like '%update_rets%'"
|
535
|
+
count = Delayed::Job.where(q).count
|
536
|
+
if count == 0 || (count == 1 && Delayed::Job.where(q).first.locked_at)
|
537
|
+
self.delay(:run_at => 5.minutes.from_now).update_rets
|
538
|
+
end
|
513
539
|
end
|
514
540
|
|
515
541
|
def self.last_updated
|
@@ -529,14 +555,14 @@ class CabooseRets::RetsImporter # < ActiveRecord::Base
|
|
529
555
|
end
|
530
556
|
|
531
557
|
def self.save_last_updated(d)
|
532
|
-
s = Caboose::Setting.where(:name => 'rets_last_updated').first
|
533
|
-
s.value = d.strftime(
|
558
|
+
s = Caboose::Setting.where(:name => 'rets_last_updated').first
|
559
|
+
s.value = d.in_time_zone(CabooseRets::timezone).strftime("%FT%T%:z")
|
534
560
|
s.save
|
535
561
|
end
|
536
562
|
|
537
563
|
def self.save_last_purged(d)
|
538
564
|
s = Caboose::Setting.where(:name => 'rets_last_purged').first
|
539
|
-
s.value = d.strftime(
|
565
|
+
s.value = d.in_time_zone(CabooseRets::timezone).strftime("%FT%T%:z")
|
540
566
|
s.save
|
541
567
|
end
|
542
568
|
|
@@ -544,9 +570,9 @@ class CabooseRets::RetsImporter # < ActiveRecord::Base
|
|
544
570
|
return Caboose::Setting.exists?(:name => 'rets_update_running')
|
545
571
|
end
|
546
572
|
|
547
|
-
def self.lock_task
|
548
|
-
d = DateTime.now.utc
|
549
|
-
Caboose::Setting.create(:name => 'rets_update_running', :value => d.strftime(
|
573
|
+
def self.lock_task
|
574
|
+
d = DateTime.now.utc.in_time_zone(CabooseRets::timezone)
|
575
|
+
Caboose::Setting.create(:name => 'rets_update_running', :value => d.strftime("%FT%T%:z"))
|
550
576
|
return d
|
551
577
|
end
|
552
578
|
|
@@ -556,7 +582,7 @@ class CabooseRets::RetsImporter # < ActiveRecord::Base
|
|
556
582
|
|
557
583
|
def self.unlock_task_if_last_updated(d)
|
558
584
|
setting = Caboose::Setting.where(:name => 'rets_update_running').first
|
559
|
-
self.unlock_task if setting && d.strftime(
|
585
|
+
self.unlock_task if setting && d.in_time_zone.strftime("%FT%T%:z") == setting.value
|
560
586
|
end
|
561
587
|
|
562
588
|
end
|
data/lib/caboose-rets.rb
CHANGED
data/lib/caboose_rets/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caboose-rets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.80
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
@@ -49,7 +49,6 @@ files:
|
|
49
49
|
- app/controllers/caboose_rets/saved_properties_controller.rb
|
50
50
|
- app/controllers/caboose_rets/saved_searches_controller.rb
|
51
51
|
- app/helpers/caboose_rets/application_helper.rb
|
52
|
-
- app/models/caboose_rets/#Untitled-1#
|
53
52
|
- app/models/caboose_rets/agent.rb
|
54
53
|
- app/models/caboose_rets/commercial_property.rb
|
55
54
|
- app/models/caboose_rets/land_property.rb
|