aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/models/import.rb9
-rw-r--r--app/services/parent_import_notifier.rb17
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