diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/models/import.rb | 9 | ||||
| -rw-r--r-- | app/services/parent_import_notifier.rb | 17 |
2 files changed, 25 insertions, 1 deletions
diff --git a/app/models/import.rb b/app/models/import.rb index da8244810..20b61a7f5 100644 --- a/app/models/import.rb +++ b/app/models/import.rb @@ -11,7 +11,14 @@ class Import < ActiveRecord::Base validates :file, presence: true validates_presence_of :referential, :workbench - before_create do + before_create :initialize_fields + + def notify_parent + end + + private + + def initialize_fields self.token_download = SecureRandom.urlsafe_base64 self.status = Import.status.new end diff --git a/app/services/parent_import_notifier.rb b/app/services/parent_import_notifier.rb new file mode 100644 index 000000000..8e6245da9 --- /dev/null +++ b/app/services/parent_import_notifier.rb @@ -0,0 +1,17 @@ +class ParentImportNotifier + def self.notify_when_finished(imports = nil) + imports ||= self.imports_pending_notification + imports.each do |import| + import.notify_parent + end + end + + def self.imports_pending_notification + Import + .where( + notified_parent_at: nil, + status: [:failed, :successful, :aborted, :canceled] + ) + .where.not(parent: nil) + end +end |
