From 222015c02d73f6f5d4d93f438e1c91b4e8e6261e Mon Sep 17 00:00:00 2001 From: Javier Fernandez Date: Thu, 22 Jun 2023 14:40:42 +0100 Subject: [PATCH] move end point logic to services --- ..._lead_provider_approval_status_from_ecf.rb | 24 +-------------- ..._lead_provider_approval_status_reciever.rb | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 23 deletions(-) create mode 100644 app/lib/services/ecf/ecf_lead_provider_approval_status_reciever.rb diff --git a/app/jobs/receive_lead_provider_approval_status_from_ecf.rb b/app/jobs/receive_lead_provider_approval_status_from_ecf.rb index 7233508854..c862845c35 100644 --- a/app/jobs/receive_lead_provider_approval_status_from_ecf.rb +++ b/app/jobs/receive_lead_provider_approval_status_from_ecf.rb @@ -1,28 +1,6 @@ class ReceiveLeadProviderApprovalStatusFromEcf < ApplicationJob queue_as :default def perform - begin - uri = URI.parse("#{ENV['ECF_APP_BASE_URL']}/api/v3/npq-applications/send_lead_provider_approval_status_to_npq") - request = Net::HTTP::Get.new(uri) - request["Authorization"] = "Bearer #{ENV['ECF_APP_BEARER_TOKEN']}" - response = Net::HTTP.start(uri.hostname, uri.port) do |http| - http.request(request) - end - if response.is_a?(Net::HTTPSuccess) - response_data = JSON.parse(response.body) - filtered_applications = Application.where.not(ecf_id: nil) - response_data["data"].map do |status_data| - retrieved_id = status_data["attributes"]["id"] - retrieved_status = status_data["attributes"]["lead_provider_approval_status"] - application = filtered_applications.find_by(ecf_id: retrieved_id) - application.update!(lead_provider_approval_status: retrieved_status) if application.present? - end - else - response_message = response.message - raise "Failed to retrieve lead provider approval status: #{response_message}" - end - rescue StandardError => e - Rails.logger.error "An error occurred during lead provider approval status retrieval: #{e.message}" - end + Services::Ecf::EcfLeadProviderApprovalStatusReciever.new.call end end diff --git a/app/lib/services/ecf/ecf_lead_provider_approval_status_reciever.rb b/app/lib/services/ecf/ecf_lead_provider_approval_status_reciever.rb new file mode 100644 index 0000000000..2aaffb8f6a --- /dev/null +++ b/app/lib/services/ecf/ecf_lead_provider_approval_status_reciever.rb @@ -0,0 +1,29 @@ +module Services + module Ecf + class EcfLeadProviderApprovalStatusReciever + def call + uri = URI.parse("#{ENV['ECF_APP_BASE_URL']}/api/v3/npq-applications/send_lead_provider_approval_status_to_npq") + request = Net::HTTP::Get.new(uri) + request["Authorization"] = "Bearer #{ENV['ECF_APP_BEARER_TOKEN']}" + response = Net::HTTP.start(uri.hostname, uri.port) do |http| + http.request(request) + end + if response.is_a?(Net::HTTPSuccess) + response_data = JSON.parse(response.body) + filtered_applications = Application.where.not(ecf_id: nil) + response_data["data"].map do |status_data| + retrieved_id = status_data["attributes"]["id"] + retrieved_status = status_data["attributes"]["lead_provider_approval_status"] + application = filtered_applications.find_by(ecf_id: retrieved_id) + application.update!(lead_provider_approval_status: retrieved_status) if application.present? + end + else + response_message = response.message + raise "Failed to retrieve lead provider approval status: #{response_message}" + end + rescue StandardError => e + Rails.logger.error "An error occurred during lead provider approval status retrieval: #{e.message}" + end + end + end +end