2023-02-13 17:31:57 +01:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
# Provides methods for SupportingDocumentRefusal
|
|
|
|
class SupportingDocumentRefusalService
|
|
|
|
def self.list(filters = {})
|
|
|
|
refusals = []
|
2023-05-24 19:56:48 +02:00
|
|
|
if filters[:supportable_id].present?
|
|
|
|
refusals = SupportingDocumentRefusal.where(supportable_id: filters[:supportable_id],
|
|
|
|
supportable_type: filters[:supportable_type])
|
|
|
|
end
|
2023-02-13 17:31:57 +01:00
|
|
|
refusals
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.create(supporting_document_refusal)
|
|
|
|
saved = supporting_document_refusal.save
|
|
|
|
|
2023-05-26 12:54:39 +02:00
|
|
|
if saved
|
|
|
|
case supporting_document_refusal.supportable_type
|
|
|
|
when 'User'
|
|
|
|
NotificationCenter.call type: 'notify_admin_user_supporting_document_refusal',
|
|
|
|
receiver: User.admins_and_managers,
|
|
|
|
attached_object: supporting_document_refusal
|
|
|
|
NotificationCenter.call type: 'notify_user_supporting_document_refusal',
|
|
|
|
receiver: supporting_document_refusal.supportable,
|
|
|
|
attached_object: supporting_document_refusal
|
|
|
|
when 'Child'
|
|
|
|
NotificationCenter.call type: 'notify_admin_user_child_supporting_document_refusal',
|
|
|
|
receiver: User.admins_and_managers,
|
|
|
|
attached_object: SupportingDocumentRefusal.last
|
|
|
|
NotificationCenter.call type: 'notify_user_child_supporting_document_refusal',
|
|
|
|
receiver: SupportingDocumentRefusal.last.supportable.user,
|
|
|
|
attached_object: SupportingDocumentRefusal.last
|
|
|
|
end
|
2023-02-13 17:31:57 +01:00
|
|
|
end
|
|
|
|
saved
|
|
|
|
end
|
|
|
|
end
|