diff options
| author | Teddy Wing | 2018-02-07 12:50:46 +0100 |
|---|---|---|
| committer | Teddy Wing | 2018-02-08 11:29:31 +0100 |
| commit | 6134ed98a3fe29276a17a0d79a70a8ce3e3f548b (patch) | |
| tree | f52fb6a48008171ce49546be300861155617f8fe /app/services | |
| parent | ee1781d525bc04aff3f7f743be8297ee003ee9e0 (diff) | |
| download | chouette-core-6134ed98a3fe29276a17a0d79a70a8ce3e3f548b.tar.bz2 | |
Add `ParentNotifier` service
This is a takeoff on `ParentImportNotifier`. I just copied over the
class and spec and generalised the service to work with `Import`-style
interfaces. We can now use the same notifier service class for both
imports and compliance check sets.
Refs #4758
Diffstat (limited to 'app/services')
| -rw-r--r-- | app/services/parent_notifier.rb | 19 |
1 files changed, 19 insertions, 0 deletions
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 |
