internetee-registry/lib/tasks/eis_billing_import_data.rake
olegphenomenon 7e0c6b3afb added tokens
2022-05-11 11:17:47 +03:00

72 lines
1.6 KiB
Ruby

TOKEN = ENV['eis_token']
BASE_URL = ""
if Rails.env.staging?
BASE_URL = ENV['eis_billing_system_base_url_staging']
else
BASE_URL = ENV['eis_billing_system_base_url_dev']
end
namespace :eis_billing do
desc 'One time task to export invoice data to billing system'
task import_invoices: :environment do
parsed_data = []
Invoice.all.each do |invoice|
parsed_data << {
invoice_number: invoice.number,
initiator: 'registry',
transaction_amount: invoice.total
}
end
base_request(url: import_invoice_data_url, json_obj: parsed_data)
end
desc 'One time task to export reference number of registrars to billing system'
task import_references: :environment do
parsed_data = []
Registrar.all.each do |registrar|
parsed_data << {
reference_number: registrar.reference_no,
initiator: 'registry'
}
end
base_request(url: import_reference_data_url, json_obj: parsed_data)
end
end
def import_reference_data_url
"#{BASE_URL}/api/v1/import_data/reference_data"
end
def import_invoice_data_url
"#{BASE_URL}/api/v1/import_data/invoice_data"
end
def base_request(url:, json_obj:)
uri = URI(url)
http = Net::HTTP.new(uri.host, uri.port)
unless Rails.env.development?
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
end
http.post(url, json_obj.to_json, headers)
end
def generate_token
JWT.encode(payload, ENV['secret_word'])
end
def payload
{ data: ENV['secret_access_word'] }
end
def headers
{
'Authorization' => "Bearer #{generate_token}",
'Content-Type' => 'application/json',
}
end