Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/solver-it-sro/govbox-pro in…
Browse files Browse the repository at this point in the history
…to GO-293/forms_and_templates_core_domain
  • Loading branch information
luciajanikova committed Dec 8, 2023
2 parents bfc784b + 325f76f commit 4113ddb
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 13 deletions.
16 changes: 9 additions & 7 deletions app/jobs/govbox/authorize_delivery_notification_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,22 @@ class Govbox::AuthorizeDeliveryNotificationJob < ApplicationJob
def perform(message, upvs_client: UpvsEnvironment.upvs_client)
edesk_api = upvs_client.api(message.thread.box).edesk

success = edesk_api.authorize_delivery_notification(message.metadata["delivery_notification"]["authorize_url"])
success, target_message_id = edesk_api.authorize_delivery_notification(message.metadata["delivery_notification"]["authorize_url"], mode: :sync)

unless success
if success
message.metadata["authorized"] = true
message.save!
else
message.metadata["authorized"] = nil
message.save!

Govbox::Message.add_delivery_notification_tag(message)

raise StandardError, "Delivery notification authorization failed!"
end

message.metadata["authorized"] = true
message.save!
raise StandardError, "Target message download failed" unless target_message_id

Govbox::SyncBoxJob.set(wait: 3.minutes).perform_later(message.thread.box)
# folder is not available in UPVS get_message response, therefore we're using corresponding inbox as target folder
folder = Govbox::Folder.where(box: message.thread.box, name: "Inbox", system: true).first
Govbox::DownloadMessageJob.perform_later(folder, target_message_id)
end
end
2 changes: 1 addition & 1 deletion app/jobs/govbox/sync_folder_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def perform(folder, upvs_client: UpvsEnvironment.upvs_client, batch_size: 1000)
end

if moved_edesk_message_ids.any?
# TODO change tag
# TODO: change tag
Govbox::Message.where(edesk_message_id: moved_edesk_message_ids).update_all(folder_id: folder.id)
end

Expand Down
11 changes: 6 additions & 5 deletions app/lib/upvs/govbox_api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def initialize(url, box:, handler: Faraday)
@edesk = Edesk.new(self)
@sktalk = SkTalk.new(self)
@handler = handler
@handler.options.timeout = 900000
@handler.options.timeout = 900_000
end

class Edesk < Namespace
Expand All @@ -28,16 +28,17 @@ def fetch_message(message_id)
@api.request(:get, "#{@api.url}/api/edesk/messages/#{message_id}", {}, header)
end

def authorize_delivery_notification(authorization_url)
response_status, response_body = @api.request(:post, authorization_url, {}, header)
authorization_successful?(response_status, response_body['code'])
def authorize_delivery_notification(authorization_url, mode: :async)
params = (mode == :sync ? { async: false } : {})
response_status, response_body = @api.request(:post, authorization_url, params, header)
[authorization_successful?(response_status, response_body['code']), response_body['message_id']]
end

private

def header
{
"Authorization": authorization_payload,
"Authorization": authorization_payload
}
end

Expand Down

0 comments on commit 4113ddb

Please sign in to comment.