mirror of
https://github.com/internetee/registry.git
synced 2025-07-31 15:06:23 +02:00
added endpoint for receive incoming transaction from lhv connect
This commit is contained in:
parent
a8f1f885de
commit
390d693b13
4 changed files with 53 additions and 8 deletions
12
app/controllers/eis_billing/base_controller.rb
Normal file
12
app/controllers/eis_billing/base_controller.rb
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
module EisBilling
|
||||||
|
class BaseController < ApplicationController
|
||||||
|
skip_authorization_check # Temporary solution
|
||||||
|
skip_before_action :verify_authenticity_token # Temporary solution
|
||||||
|
end
|
||||||
|
|
||||||
|
protected
|
||||||
|
|
||||||
|
def logger
|
||||||
|
@logger ||= Rails.logger
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,39 @@
|
||||||
|
module EisBilling
|
||||||
|
class LhvConnectTransactionsController < EisBilling::BaseController
|
||||||
|
def create
|
||||||
|
params["_json"].each do |incoming_transaction|
|
||||||
|
process_transactions(incoming_transaction["table"])
|
||||||
|
end
|
||||||
|
|
||||||
|
render status: 200, json: { message: 'RECEIVED', status: :ok, params: params }
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def process_transactions(incoming_transaction)
|
||||||
|
logger.info 'Got incoming transactions'
|
||||||
|
logger.info incoming_transaction
|
||||||
|
|
||||||
|
bank_statement = BankStatement.new(bank_code: Setting.registry_bank_code,
|
||||||
|
iban: Setting.registry_iban)
|
||||||
|
|
||||||
|
ActiveRecord::Base.transaction do
|
||||||
|
bank_statement.save!
|
||||||
|
|
||||||
|
transaction_attributes = { sum: incoming_transaction["amount"],
|
||||||
|
currency: incoming_transaction["currency"],
|
||||||
|
paid_at: incoming_transaction["date"],
|
||||||
|
reference_no: incoming_transaction["payment_reference_number"],
|
||||||
|
description: incoming_transaction["payment_description"] }
|
||||||
|
transaction = bank_statement.bank_transactions.create!(transaction_attributes)
|
||||||
|
|
||||||
|
next if transaction.registrar.blank?
|
||||||
|
|
||||||
|
unless transaction.non_canceled?
|
||||||
|
Invoice.create_from_transaction!(transaction) unless transaction.autobindable?
|
||||||
|
transaction.autobind_invoice
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,8 +1,5 @@
|
||||||
module EisBilling
|
module EisBilling
|
||||||
class PaymentStatusController < ApplicationController
|
class PaymentStatusController < EisBilling::BaseController
|
||||||
skip_authorization_check # Temporary solution
|
|
||||||
skip_before_action :verify_authenticity_token # Temporary solution
|
|
||||||
|
|
||||||
TYPE = 'PaymentOrders::EveryPay'.freeze
|
TYPE = 'PaymentOrders::EveryPay'.freeze
|
||||||
|
|
||||||
def update
|
def update
|
||||||
|
@ -62,9 +59,5 @@ module EisBilling
|
||||||
|
|
||||||
bank
|
bank
|
||||||
end
|
end
|
||||||
|
|
||||||
def logger
|
|
||||||
@logger ||= Rails.logger
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -13,6 +13,7 @@ Rails.application.routes.draw do
|
||||||
|
|
||||||
namespace :eis_billing do
|
namespace :eis_billing do
|
||||||
put '/payment_status', to: 'payment_status#update', as: 'payment_status'
|
put '/payment_status', to: 'payment_status#update', as: 'payment_status'
|
||||||
|
post '/lhv_connect_transactions', to: 'lhv_connect_transactions#create', as: 'lhv_connect_transactions'
|
||||||
end
|
end
|
||||||
|
|
||||||
namespace :epp do
|
namespace :epp do
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue