aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorXinhui2016-08-31 12:26:35 +0200
committerXinhui2016-08-31 12:26:39 +0200
commitae25f7bdd87a8f90cfede723e87f8291855d3d19 (patch)
tree2826addbdfb6016ddc7a835556eae3993a3f7ea6 /lib
parentcd6c8e675e6fa28b5655cbe8d6dc4167b6125915 (diff)
downloadchouette-core-ae25f7bdd87a8f90cfede723e87f8291855d3d19.tar.bz2
AccessPoint from reflex StopPlaceEntrance
Diffstat (limited to 'lib')
-rw-r--r--lib/stif/reflex_synchronization.rb42
-rw-r--r--lib/tasks/reflex.rake2
2 files changed, 26 insertions, 18 deletions
diff --git a/lib/stif/reflex_synchronization.rb b/lib/stif/reflex_synchronization.rb
index ce663396b..8886fea8e 100644
--- a/lib/stif/reflex_synchronization.rb
+++ b/lib/stif/reflex_synchronization.rb
@@ -10,31 +10,31 @@ module Stif
Chouette::StopArea.find_by(objectid: "dummy:StopArea:#{objectid.tr(':', '')}")
end
- def synchronize_stop_area
+ def synchronize
client = Reflex::API.new
['getOR', 'getOP'].each do |method|
- results = client.process method
- results = results[:Quay].merge(results[:StopPlace])
-
+ results = client.process method
processed = []
- results.each do |id, entry|
- Rails.logger.debug "Reflex - Processing - #{entry.id}"
+
+ results[:StopPlaceEntrance].each do |id, entry|
+ self.create_or_update_access_point entry
+ end
+ results[:Quay].merge(results[:StopPlace]).each do |id, entry|
processed << self.create_or_update_stop_area(entry)
end
processed.each do |entry|
- Rails.logger.debug "Reflex - Set parent for - #{entry.id}"
- self.set_parent entry
+ self.stop_area_set_parent entry
end
end
end
- def set_parent entry
+ def stop_area_set_parent entry
return false unless entry.try(:parent_site_ref) || entry.try(:quays)
stop = self.find_by_object_id entry.id
if entry.try(:parent_site_ref)
stop.parent = self.find_by_object_id entry.parent_site_ref
- stop.save! if stop.changed
+ stop.save if stop.changed
end
if entry.try(:quays)
@@ -42,11 +42,21 @@ module Stif
children = self.find_by_object_id(quay[:ref])
next unless children
children.parent = stop
- children.save! if children.changed?
+ children.save if children.changed?
end
end
end
+ def create_or_update_access_point entry
+ access = Chouette::AccessPoint.find_or_create_by(objectid: "dummy:AccessPoint:#{entry.id.tr(':', '')}")
+ access.name = entry.name
+ # access.object_version = entry.version
+ access.zip_code = entry.postal_code
+ access.city_name = entry.city
+ access.access_type = entry.area_type
+ access.save if access.changed?
+ end
+
def create_or_update_stop_area entry
stop = Chouette::StopArea.find_or_create_by(objectid: "dummy:StopArea:#{entry.id.tr(':', '')}")
stop.stop_area_referential = self.defaut_referential
@@ -54,15 +64,13 @@ module Stif
stop.name = entry.name
stop.creation_time = entry.created
stop.area_type = entry.area_type
+ # Todo fixe object_version auto incremented
+ # by DefaultAttributesSupport prepare_auto_columns
# stop.object_version = entry.version
stop.zip_code = entry.postal_code
stop.city_name = entry.city
-
- if stop.changed?
- Rails.logger.debug "Reflex - Updating - #{entry.id}"
- stop.save!
- stop
- end
+ stop.save if stop.changed?
+ stop
end
end
end
diff --git a/lib/tasks/reflex.rake b/lib/tasks/reflex.rake
index 4ac557aa6..0bc3953a8 100644
--- a/lib/tasks/reflex.rake
+++ b/lib/tasks/reflex.rake
@@ -2,7 +2,7 @@ namespace :reflex do
desc "Sync data from Reflex api"
task sync: :environment do
start = Time.now
- Stif::ReflexSynchronization.synchronize_stop_area
+ Stif::ReflexSynchronization.synchronize
Rails.logger.debug "Reflex-api sync done in #{Time.now - start} seconds !"
end
end