diff options
| author | Xinhui | 2016-08-31 12:26:35 +0200 | 
|---|---|---|
| committer | Xinhui | 2016-08-31 12:26:39 +0200 | 
| commit | ae25f7bdd87a8f90cfede723e87f8291855d3d19 (patch) | |
| tree | 2826addbdfb6016ddc7a835556eae3993a3f7ea6 /lib | |
| parent | cd6c8e675e6fa28b5655cbe8d6dc4167b6125915 (diff) | |
| download | chouette-core-ae25f7bdd87a8f90cfede723e87f8291855d3d19.tar.bz2 | |
AccessPoint from reflex StopPlaceEntrance
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/stif/reflex_synchronization.rb | 42 | ||||
| -rw-r--r-- | lib/tasks/reflex.rake | 2 | 
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 | 
