1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-11-29 10:24:20 +01:00
fab-manager/app/services/child_service.rb
2023-07-27 17:34:54 +02:00

62 lines
2.1 KiB
Ruby

# frozen_string_literal: true
# ChildService
class ChildService
def self.create(child)
if child.save
NotificationCenter.call type: 'notify_admin_child_created',
receiver: User.admins_and_managers,
attached_object: child
all_files_are_upload = true
SupportingDocumentType.where(document_type: 'Child').each do |sdt|
file = sdt.supporting_document_files.find_by(supportable: child)
all_files_are_upload = false if file.nil? || file.attachment_identifier.nil?
end
if all_files_are_upload
NotificationCenter.call type: 'notify_admin_user_child_supporting_document_files_created',
receiver: User.admins_and_managers,
attached_object: child
end
return true
end
false
end
def self.update(child, child_params)
if child.update(child_params)
all_files_are_upload = true
SupportingDocumentType.where(document_type: 'Child').each do |sdt|
file = sdt.supporting_document_files.find_by(supportable: child)
if file.nil? || file.attachment_identifier.nil? || child_params['supporting_document_files_attributes']['0']['attachment'].blank?
all_files_are_upload = false
end
end
if all_files_are_upload
NotificationCenter.call type: 'notify_admin_user_child_supporting_document_files_updated',
receiver: User.admins_and_managers,
attached_object: child
end
return true
end
false
end
def self.validate(child, is_valid)
is_updated = child.update(validated_at: is_valid ? Time.current : nil)
if is_updated
if is_valid
NotificationCenter.call type: 'notify_user_child_is_validated',
receiver: child.user,
attached_object: child
else
NotificationCenter.call type: 'notify_user_child_is_invalidated',
receiver: child.user,
attached_object: child
end
end
is_updated
end
end