mirror of
https://github.com/internetee/registry.git
synced 2025-07-29 14:06:21 +02:00
refactored
This commit is contained in:
parent
f22f16d720
commit
fdc2882b8f
6 changed files with 58 additions and 38 deletions
|
@ -3,23 +3,50 @@ module EisBilling
|
|||
skip_authorization_check # Temporary solution
|
||||
skip_before_action :verify_authenticity_token # Temporary solution
|
||||
|
||||
TYPE = "PaymentOrders::EveryPay".freeze
|
||||
TYPE = 'PaymentOrders::EveryPay'.freeze
|
||||
|
||||
def update
|
||||
invoice_number = params[:order_reference]
|
||||
paid_at = params[:transaction_time]
|
||||
sum = params[:standing_amount]
|
||||
everypay_response = params
|
||||
payment_status = nil
|
||||
|
||||
if PaymentOrders::EveryPay::SUCCESSFUL_PAYMENT.include? params[:payment_state]
|
||||
payment_status = :paid
|
||||
elsif params[:payment_state] == 'failed'
|
||||
payment_status = :failed
|
||||
end
|
||||
payment_status = define_payment_status(params[:payment_state])
|
||||
|
||||
invoice = Invoice.find_by(number: invoice_number)
|
||||
|
||||
bank = create_bank_transfer(invoice: invoice, sum: sum, paid_at: paid_at)
|
||||
create_payment_order(invoice: invoice, everypay_response: everypay_response, payment_status: payment_status)
|
||||
|
||||
registrar = Registrar.find_by(reference_no: params[:reference_number])
|
||||
bank.create_activity(registrar, invoice)
|
||||
|
||||
render status: 200, json: { status: 'ok' }
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def define_payment_status(status)
|
||||
return :paid if PaymentOrders::EveryPay::SUCCESSFUL_PAYMENT.include? status
|
||||
|
||||
:failed
|
||||
end
|
||||
|
||||
def create_payment_order(invoice:, everypay_response:, payment_status:)
|
||||
payment = PaymentOrder.new
|
||||
payment.type = TYPE
|
||||
payment.invoice = invoice
|
||||
payment.response = everypay_response
|
||||
payment.status = payment_status
|
||||
payment.save
|
||||
|
||||
logger.info '++++ PAYMENT ORDER ERRORS ? ++++'
|
||||
logger.info payment.errors
|
||||
|
||||
payment
|
||||
end
|
||||
|
||||
def create_bank_transfer(invoice:, sum:, paid_at:)
|
||||
bank = BankTransaction.new
|
||||
bank.description = invoice.order
|
||||
bank.reference_no = invoice.reference_no
|
||||
|
@ -30,23 +57,14 @@ module EisBilling
|
|||
bank.buyer_name = invoice.buyer_name
|
||||
bank.save
|
||||
|
||||
p "++++ BANK TRANSACTION ERRORS ? ++++"
|
||||
p bank.errors
|
||||
logger.info '++++ BANK TRANSACTION ERRORS ? ++++'
|
||||
looger.info bank.errors
|
||||
|
||||
payment = PaymentOrder.new
|
||||
payment.type = TYPE
|
||||
payment.invoice = invoice
|
||||
payment.response = everypay_response
|
||||
payment.status = payment_status
|
||||
payment.save
|
||||
bank
|
||||
end
|
||||
|
||||
p "++++ PAYMENT ORDER ERRORS ? ++++"
|
||||
p bank.errors
|
||||
|
||||
registrar = Registrar.find_by(reference_no: params[:reference_number])
|
||||
bank.create_activity(registrar, invoice)
|
||||
|
||||
render status: 200, json: { status: 'ok' }
|
||||
def logger
|
||||
@logger ||= Rails.logger
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -12,10 +12,7 @@ class Registrar
|
|||
|
||||
if @invoice
|
||||
flash[:notice] = t(:please_pay_the_following_invoice)
|
||||
|
||||
add_invoice_instance = EisBilling::AddDeposits.new(@invoice)
|
||||
add_invoice_instance.send_invoice
|
||||
|
||||
send_invoice_data_to_billing_system
|
||||
redirect_to [:registrar, @invoice]
|
||||
else
|
||||
flash[:alert] = @deposit.errors.full_messages.join(', ')
|
||||
|
@ -25,6 +22,11 @@ class Registrar
|
|||
|
||||
private
|
||||
|
||||
def send_invoice_data_to_billing_system
|
||||
add_invoice_instance = EisBilling::AddDeposits.new(@invoice)
|
||||
add_invoice_instance.send_invoice
|
||||
end
|
||||
|
||||
def deposit_params
|
||||
params.require(:deposit).permit(:amount, :description)
|
||||
end
|
||||
|
|
|
@ -18,7 +18,7 @@ class Registrar
|
|||
link_handler = EisBilling::GetInvoiceLink.new(invoice.number)
|
||||
response = link_handler.send_request
|
||||
|
||||
@everypay_link = JSON.parse(response.body)["payment_link"]
|
||||
@everypay_link = JSON.parse(response.body)['payment_link']
|
||||
end
|
||||
|
||||
def cancel
|
||||
|
|
|
@ -20,14 +20,14 @@ module EisBilling
|
|||
:items_attributes])
|
||||
|
||||
parsed_data = JSON.parse(invoice)
|
||||
parsed_data["role"] = "registrar"
|
||||
parsed_data["description"] = "some" if parsed_data["description"] == ''
|
||||
parsed_data['role'] = 'registrar'
|
||||
parsed_data['description'] = 'some' if parsed_data['description'] == ''
|
||||
|
||||
parsed_data = replace_key(json_obj: parsed_data, old_key: "total", new_key: "transaction_amount")
|
||||
parsed_data = replace_key(json_obj: parsed_data, old_key: "reference_no", new_key: "reference_number")
|
||||
parsed_data = replace_key(json_obj: parsed_data, old_key: 'total', new_key: 'transaction_amount')
|
||||
parsed_data = replace_key(json_obj: parsed_data, old_key: 'reference_no', new_key: 'reference_number')
|
||||
|
||||
invoice_items_json = @invoice.items.to_json(except: [:created_at, :updated_at])
|
||||
parsed_data["items"] = JSON.parse(invoice_items_json)
|
||||
invoice_items_json = @invoice.items.to_json(except: [ :created_at, :updated_at ])
|
||||
parsed_data['items'] = JSON.parse(invoice_items_json)
|
||||
parsed_data
|
||||
end
|
||||
|
||||
|
@ -42,9 +42,9 @@ module EisBilling
|
|||
uri = URI(invoice_generator_url)
|
||||
http = Net::HTTP.new(uri.host, uri.port)
|
||||
headers = {
|
||||
'Authorization'=>'Bearer foobar',
|
||||
'Content-Type' =>'application/json',
|
||||
'Accept'=> TOKEN
|
||||
'Authorization' => 'Bearer foobar',
|
||||
'Content-Type' => 'application/json',
|
||||
'Accept' => TOKEN
|
||||
}
|
||||
|
||||
res = http.post(invoice_generator_url, json_obj.to_json, headers)
|
||||
|
|
|
@ -6,7 +6,7 @@ module EisBilling
|
|||
# => "HFW8ADSIrjyD9cbH4H5Rk3MY/ZfhV85IlnGl7YI2CQ==--OvlWMMiTLLotgdfT--/ffejEDaIGFfz7FzzNSlYA=="
|
||||
# irb(main):048:0> decrypted_back = crypt.decrypt_and_verify(encrypted_data)
|
||||
# => "PLEASE CREATE INVOICE"
|
||||
TOKEN = "Bearer WA9UvDmzR9UcE5rLqpWravPQtdS8eDMAIynzGdSOTw==--9ZShwwij3qmLeuMJ--NE96w2PnfpfyIuuNzDJTGw==".freeze
|
||||
TOKEN = 'Bearer WA9UvDmzR9UcE5rLqpWravPQtdS8eDMAIynzGdSOTw==--9ZShwwij3qmLeuMJ--NE96w2PnfpfyIuuNzDJTGw=='.freeze
|
||||
BASE_URL = ENV['eis_billing_system_base_url']
|
||||
|
||||
protected
|
||||
|
|
|
@ -4,7 +4,7 @@ class BalanceTopUpTest < ApplicationSystemTestCase
|
|||
setup do
|
||||
sign_in users(:api_bestnames)
|
||||
@original_registry_vat_rate = Setting.registry_vat_prc
|
||||
|
||||
|
||||
eis_response = OpenStruct.new(body: "{\"payment_link\":\"http://link.test\"}")
|
||||
Spy.on_instance_method(EisBilling::AddDeposits, :send_invoice).and_return(eis_response)
|
||||
Spy.on_instance_method(EisBilling::GetInvoiceLink, :send_request).and_return(eis_response)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue