Skip to content

Commit

Permalink
Add delivery_notification method to Govbox::Message
Browse files Browse the repository at this point in the history
  • Loading branch information
luciajanikova committed Nov 14, 2023
1 parent bcb67c4 commit 73f745a
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 14 deletions.
10 changes: 5 additions & 5 deletions app/jobs/govbox/process_message_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,18 @@ def destroy_associated_message_draft(govbox_message)
end

def mark_delivery_notification_authorized(govbox_message)
return unless govbox_message.payload["delivery_notification"]
return unless govbox_message.delivery_notification

authorized_govbox_message = Govbox::Message.where(message_id: govbox_message.payload['delivery_notification']['consignment']['message_id'])
authorized_govbox_message = Govbox::Message.where(message_id: govbox_message.delivery_notification['consignment']['message_id'])
.joins(folder: :box).where(folders: { boxes: { id: govbox_message.box.id } }).take

if authorized_govbox_message
delivery_notification_message = ::Message.where(uuid: govbox_message.message_id)
.joins(thread: :folder).where(folders: { box_id: govbox_message.box.id }).take
mark_delivery_notificiation_message_authorized(delivery_notification_message) if delivery_notification_message
elsif govbox_message.payload['delivery_notification']['consignment']['type'] == 'Doc.GeneralAgendaReport'
Govbox::ProcessUnauthorizedDeliveryNotificationJob.set(wait_until: Time.parse(govbox_message.payload['delivery_notification']['delivery_period_end_at']))
.perform_later(govbox_message)
elsif govbox_message.delivery_notification['consignment']['type'] == 'Doc.GeneralAgendaReport'
Govbox::ProcessUnauthorizedDeliveryNotificationJob.set(wait_until: Time.parse(govbox_message.delivery_notification['delivery_period_end_at']))
.perform_later(govbox_message) if Time.parse(govbox_message.delivery_notification['delivery_period_end_at']) > Time.now
end
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ def perform(govbox_message)

return if message.metadata["authorized"]

if Time.parse(govbox_message.delivery_notification['delivery_period_end_at']) > Time.now
Govbox::ProcessUnauthorizedDeliveryNotificationJob.set(wait_until: Time.parse(govbox_message.delivery_notification['delivery_period_end_at']))
.perform_later(govbox_message)
return
end

message.update(collapsed: true)

delivery_notification_tag = Tag.find_by!(
Expand Down
22 changes: 13 additions & 9 deletions app/models/govbox/message.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,6 @@ class Govbox::Message < ApplicationRecord

DELIVERY_NOTIFICATION_TAG = 'delivery_notification'

def replyable?
folder.inbox? && [EGOV_DOCUMENT_CLASS, EGOV_NOTIFICATION_CLASS].include?(payload["class"])
end

def collapsed?
payload["class"].in?(COLLAPSED_BY_DEFAULT_MESSAGE_CLASSES)
end

def self.create_message_with_thread!(govbox_message)
message = MessageThread.with_advisory_lock!(govbox_message.correlation_id, transaction: true, timeout_seconds: 10) do
folder = Folder.find_or_create_by!(
Expand Down Expand Up @@ -67,6 +59,18 @@ def self.create_message_with_thread!(govbox_message)
message
end

def replyable?
folder.inbox? && [EGOV_DOCUMENT_CLASS, EGOV_NOTIFICATION_CLASS].include?(payload["class"])
end

def collapsed?
payload["class"].in?(COLLAPSED_BY_DEFAULT_MESSAGE_CLASSES)
end

def delivery_notification
payload["delivery_notification"]
end

private

def self.create_message(govbox_message)
Expand All @@ -89,7 +93,7 @@ def self.create_message(govbox_message)
"reference_id": govbox_message.payload["reference_id"],
"sender_uri": govbox_message.payload["sender_uri"],
"edesk_class": govbox_message.payload["class"],
"delivery_notification": govbox_message.payload["delivery_notification"]
"delivery_notification": govbox_message.delivery_notification
}
)
end
Expand Down

0 comments on commit 73f745a

Please sign in to comment.