aboutsummaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
Diffstat (limited to 'app/models')
-rw-r--r--app/models/compliance_check_set.rb4
-rw-r--r--app/models/concerns/iev_interfaces/task.rb12
-rw-r--r--app/models/import/base.rb9
-rw-r--r--app/models/import/gtfs.rb13
-rw-r--r--app/models/import/resource.rb29
-rw-r--r--app/models/workgroup.rb9
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