internetee-registry/app/controllers/eis_billing/lhv_connect_transactions_controller.rb
2022-05-11 11:17:47 +03:00

39 lines
1.4 KiB
Ruby

module EisBilling
class LhvConnectTransactionsController < EisBilling::BaseController
def create
params["_json"].each do |incoming_transaction|
process_transactions(incoming_transaction)
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