diff options
| author | Zog | 2018-05-09 08:41:23 +0200 |
|---|---|---|
| committer | Zog | 2018-05-09 08:41:23 +0200 |
| commit | 9434284e4f12b4b576762dabbd2b0a308e28bc61 (patch) | |
| tree | 227e341a2dd8d33c992f52ceb7c6be99e687db93 /app/models | |
| parent | 430550b965035be3d78abad790e6c44fdc69087f (diff) | |
| download | chouette-core-9434284e4f12b4b576762dabbd2b0a308e28bc61.tar.bz2 | |
Refs #6960; Update imports to use nesw implementation
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/compliance_check_set.rb | 4 | ||||
| -rw-r--r-- | app/models/concerns/iev_interfaces/task.rb | 12 | ||||
| -rw-r--r-- | app/models/import/base.rb | 9 | ||||
| -rw-r--r-- | app/models/import/gtfs.rb | 13 | ||||
| -rw-r--r-- | app/models/import/resource.rb | 29 | ||||
| -rw-r--r-- | app/models/workgroup.rb | 9 |
6 files changed, 39 insertions, 37 deletions
diff --git a/app/models/compliance_check_set.rb b/app/models/compliance_check_set.rb index eb0e23d82..f29ff4de5 100644 --- a/app/models/compliance_check_set.rb +++ b/app/models/compliance_check_set.rb @@ -26,6 +26,10 @@ class ComplianceCheckSet < ApplicationModel %w(successful failed warning aborted canceled) end + def successful? + status.to_s == "successful" + end + def self.abort_old where( 'created_at < ? AND status NOT IN (?)', diff --git a/app/models/concerns/iev_interfaces/task.rb b/app/models/concerns/iev_interfaces/task.rb index 3e4dd52ca..70250b3c0 100644 --- a/app/models/concerns/iev_interfaces/task.rb +++ b/app/models/concerns/iev_interfaces/task.rb @@ -31,6 +31,16 @@ module IevInterfaces::Task before_save :initialize_fields, on: :create after_save :notify_parent + + status.values.each do |s| + define_method "#{s}!" do + update status: s + end + + define_method "#{s}?" do + status&.to_s == s + end + end end module ClassMethods @@ -117,9 +127,11 @@ module IevInterfaces::Task def call_boiv_iev Rails.logger.error("Begin IEV call for import") + running! Net::HTTP.get iev_callback_url Rails.logger.error("End IEV call for import") rescue Exception => e + aborted! logger.error "IEV server error : #{e.message}" logger.error e.backtrace.inspect end diff --git a/app/models/import/base.rb b/app/models/import/base.rb index baa25c3df..dcd710e58 100644 --- a/app/models/import/base.rb +++ b/app/models/import/base.rb @@ -44,15 +44,6 @@ class Import::Base < ApplicationModel private - def failed! - update status: :failed - end - - def aborted! - Rails.logger.info "=== aborted ===" - update status: :aborted - end - def initialize_fields super self.token_download ||= SecureRandom.urlsafe_base64 diff --git a/app/models/import/gtfs.rb b/app/models/import/gtfs.rb index 4f0dde9d1..520cc88e9 100644 --- a/app/models/import/gtfs.rb +++ b/app/models/import/gtfs.rb @@ -14,9 +14,8 @@ class Import::Gtfs < Import::Base @resource ||= parent.resources.find_or_create_by(name: self.name, resource_type: "referential", reference: self.name) end - def notify_parent - super - main_resource.update_status_from_importer self.status + def next_step + main_resource.next_step end def create_message args @@ -336,10 +335,10 @@ class Import::Gtfs < Import::Base end def notify_parent - return unless parent.present? - return if notified_parent_at - parent.child_change - update_column :notified_parent_at, Time.now + if super + main_resource.update_status_from_importer self.status + next_step + end end end diff --git a/app/models/import/resource.rb b/app/models/import/resource.rb index e88f03088..343eb9b7d 100644 --- a/app/models/import/resource.rb +++ b/app/models/import/resource.rb @@ -20,17 +20,11 @@ class Import::Resource < ApplicationModel return unless netex_import&.successful? - if workbench.import_compliance_control_set_id.present? && workbench_import_check_set.nil? - ComplianceControlSetCopyWorker.perform_async workbench.import_compliance_control_set_id, referential_id - return - end - - return if workbench_import_check_set && !workbench_import_control_set.successful? - workgroup.import_compliance_control_set_ids.each_with_index do |id, index| - compliance_check_set = workgroup_import_check_set[index] - return if compliance_check_set && !compliance_check_set.successful? + workbench.workgroup.import_compliance_control_sets.map do |key, label| + next unless (control_set = workbench.compliance_control_set(key)).present? + compliance_check_set = workbench_import_check_set key if compliance_check_set.nil? - ComplianceControlSetCopyWorker.perform_async id, referential_id + ComplianceControlSetCopyWorker.perform_async control_set.id, referential_id end end end @@ -49,17 +43,10 @@ class Import::Resource < ApplicationModel import.children.where(name: self.reference).last end - def workbench_import_check_set - return unless referential.present? - return unless referential.workbench.import_compliance_control_set_id.present? - referential.compliance_check_sets.where(compliance_control_set_id: referential.workbench.import_compliance_control_set_id, referential_id: referential_id).last - end - - def workgroup_import_check_set(index) + def workbench_import_check_set key return unless referential.present? - return unless referential.workbench.workgroup.import_compliance_control_set_ids.present? - cs = referential.workbench.workgroup.import_compliance_control_sets[index] - return unless cs - referential.compliance_check_sets.where(compliance_control_set_id: cs.id, referential_id: referential_id).last + control_set = referential.workbench.compliance_control_set(key) + return unless control_set.present? + referential.compliance_check_sets.where(compliance_control_set_id: control_set.id, referential_id: referential_id).last end end diff --git a/app/models/workgroup.rb b/app/models/workgroup.rb index b1cdde2c1..499441cd3 100644 --- a/app/models/workgroup.rb +++ b/app/models/workgroup.rb @@ -39,6 +39,15 @@ class Workgroup < ApplicationModel h end end + def import_compliance_control_sets + %i( + import + workbench + ).inject({}) do |h, k| + h[k] = "workgroups.available_compliance_control_sets.#{k}".t.capitalize + h + end + end # XXX # def import_compliance_control_sets |
