diff options
| author | Johan Van Ryseghem | 2018-02-13 08:48:35 +0100 |
|---|---|---|
| committer | GitHub | 2018-02-13 08:48:35 +0100 |
| commit | 54414ddb8970ee6133817777290153a713834285 (patch) | |
| tree | 6b36b1f3a510048bee807864045bb0202a66c378 /app | |
| parent | 1a565ed97d98183585c465daee5360526c8738c8 (diff) | |
| parent | f6bc7ad342c19393d364341b3e753154df78a295 (diff) | |
| download | chouette-core-54414ddb8970ee6133817777290153a713834285.tar.bz2 | |
Merge pull request #291 from af83/4758-cron-job-to-finalise-compliance_check_set-validations--
4758 cron job to finalise compliance check set validations
Diffstat (limited to 'app')
| -rw-r--r-- | app/models/compliance_check_set.rb | 12 | ||||
| -rw-r--r-- | app/services/parent_import_notifier.rb | 15 | ||||
| -rw-r--r-- | app/services/parent_notifier.rb | 19 |
3 files changed, 31 insertions, 15 deletions
diff --git a/app/models/compliance_check_set.rb b/app/models/compliance_check_set.rb index f4c44d26d..3ea832048 100644 --- a/app/models/compliance_check_set.rb +++ b/app/models/compliance_check_set.rb @@ -19,6 +19,18 @@ class ComplianceCheckSet < ActiveRecord::Base where('created_at BETWEEN :begin AND :end', begin: period_range.begin, end: period_range.end) end + def self.finished_statuses + %w(successful failed warning aborted canceled) + end + + def self.abort_old + where( + 'created_at < ? AND status NOT IN (?)', + 4.hours.ago, + finished_statuses + ).update_all(status: 'aborted') + end + def notify_parent if parent # parent.child_change diff --git a/app/services/parent_import_notifier.rb b/app/services/parent_import_notifier.rb deleted file mode 100644 index 47e6755e4..000000000 --- a/app/services/parent_import_notifier.rb +++ /dev/null @@ -1,15 +0,0 @@ -class ParentImportNotifier - def self.notify_when_finished(imports = nil) - imports ||= imports_pending_notification - imports.each(&:notify_parent) - end - - def self.imports_pending_notification - Import - .where( - notified_parent_at: nil, - status: Import.finished_statuses - ) - .where.not(parent: nil) - end -end diff --git a/app/services/parent_notifier.rb b/app/services/parent_notifier.rb new file mode 100644 index 000000000..653c98aff --- /dev/null +++ b/app/services/parent_notifier.rb @@ -0,0 +1,19 @@ +class ParentNotifier + def initialize(klass) + @klass = klass + end + + def notify_when_finished(collection = nil) + collection ||= objects_pending_notification + collection.each(&:notify_parent) + end + + def objects_pending_notification + @klass + .where( + notified_parent_at: nil, + status: @klass.finished_statuses + ) + .where.not(parent: nil) + end +end |
