From 1d84e1ded90688fee6ad80bb4f53c861552e3b68 Mon Sep 17 00:00:00 2001 From: Xinhui Date: Wed, 28 Sep 2016 17:37:56 +0200 Subject: Templating line_referential_sync_message Refs #1707 --- lib/stif/codif_line_synchronization.rb | 102 ++++++++++++++++----------------- 1 file changed, 48 insertions(+), 54 deletions(-) (limited to 'lib/stif/codif_line_synchronization.rb') diff --git a/lib/stif/codif_line_synchronization.rb b/lib/stif/codif_line_synchronization.rb index fee785766..c3f0d81fa 100644 --- a/lib/stif/codif_line_synchronization.rb +++ b/lib/stif/codif_line_synchronization.rb @@ -3,60 +3,54 @@ module Stif class << self def synchronize start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC, :second) - begin - # Fetch Codifline data - client = Codifligne::API.new - operators = client.operators - lines = client.lines - networks = client.networks - groups_of_lines = client.groups_of_lines - - Rails.logger.info "Codifligne:sync - Codifligne request processed in #{elapsed_time_since start_time} seconds" - - # Create or update Companies - stime = Process.clock_gettime(Process::CLOCK_MONOTONIC, :second) - operators.map { |o| create_or_update_company(o) } - log_create_or_update "Companies", operators.count, stime - - # Create or update Lines - stime = Process.clock_gettime(Process::CLOCK_MONOTONIC, :second) - lines.map { |l| create_or_update_line(l) } - log_create_or_update "Lines", lines.count, stime - - # Create or update Networks - stime = Process.clock_gettime(Process::CLOCK_MONOTONIC, :second) - networks.map { |n| create_or_update_network(n) } - log_create_or_update "Networks", networks.count, stime - - # Create or update Group of lines - stime = Process.clock_gettime(Process::CLOCK_MONOTONIC, :second) - groups_of_lines.map { |g| create_or_update_group_of_lines(g) } - log_create_or_update "Group of lines", groups_of_lines.count, stime - - # Delete deprecated Group of lines - deleted_gr = delete_deprecated(groups_of_lines, Chouette::GroupOfLine) - log_deleted "Group of lines", deleted_gr unless deleted_gr == 0 - - # Delete deprecated Networks - deleted_ne = delete_deprecated(networks, Chouette::Network) - log_deleted "Networks", deleted_ne unless deleted_ne == 0 - - # Delete deprecated Lines - deleted_li = delete_deprecated_lines(lines) - log_deleted "Lines", deleted_li unless deleted_li == 0 - - # Delete deprecated Operators - deleted_op = delete_deprecated(operators, Chouette::Company) - log_deleted "Operators", deleted_op unless deleted_op == 0 - - # Building log message - total_codifligne_elements = operators.count + lines.count + networks.count + groups_of_lines.count - total_deleted = deleted_op + deleted_li + deleted_ne + deleted_gr - total_time = elapsed_time_since start_time - rescue Exception => e - total_time = elapsed_time_since start_time - Rails.logger.error "Codifligne:sync - Error: #{e}, ended after #{total_time} seconds" - end + # Fetch Codifline data + client = Codifligne::API.new + operators = client.operators + lines = client.lines + networks = client.networks + groups_of_lines = client.groups_of_lines + + Rails.logger.info "Codifligne:sync - Codifligne request processed in #{elapsed_time_since start_time} seconds" + + # Create or update Companies + stime = Process.clock_gettime(Process::CLOCK_MONOTONIC, :second) + operators.map { |o| create_or_update_company(o) } + log_create_or_update "Companies", operators.count, stime + + # Create or update Lines + stime = Process.clock_gettime(Process::CLOCK_MONOTONIC, :second) + lines.map { |l| create_or_update_line(l) } + log_create_or_update "Lines", lines.count, stime + + # Create or update Networks + stime = Process.clock_gettime(Process::CLOCK_MONOTONIC, :second) + networks.map { |n| create_or_update_network(n) } + log_create_or_update "Networks", networks.count, stime + + # Create or update Group of lines + stime = Process.clock_gettime(Process::CLOCK_MONOTONIC, :second) + groups_of_lines.map { |g| create_or_update_group_of_lines(g) } + log_create_or_update "Group of lines", groups_of_lines.count, stime + + # Delete deprecated Group of lines + deleted_gr = delete_deprecated(groups_of_lines, Chouette::GroupOfLine) + log_deleted "Group of lines", deleted_gr unless deleted_gr == 0 + + # Delete deprecated Networks + deleted_ne = delete_deprecated(networks, Chouette::Network) + log_deleted "Networks", deleted_ne unless deleted_ne == 0 + + # Delete deprecated Lines + deleted_li = delete_deprecated_lines(lines) + log_deleted "Lines", deleted_li unless deleted_li == 0 + + # Delete deprecated Operators + deleted_op = delete_deprecated(operators, Chouette::Company) + log_deleted "Operators", deleted_op unless deleted_op == 0 + { + imported: operators.count + lines.count + networks.count + groups_of_lines.count, + deleted: deleted_op + deleted_li + deleted_ne + deleted_gr + } end def create_or_update_company(api_operator) -- cgit v1.2.3