Add EveryPay payments

* Refactor BankLink into Payments::BankLink, add Payments::EveryPay
* Write tests for existing invoice views
* Write basic tests for Payments module
This commit is contained in:
Maciej Szlosarczyk 2018-04-11 11:55:52 +03:00
parent f7c2b25a66
commit c5591b4828
No known key found for this signature in database
GPG key ID: 41D62D42D3B0D765
32 changed files with 818 additions and 31 deletions

View file

@ -0,0 +1,49 @@
module Payments
class Base
include ActionView::Helpers::NumberHelper
attr_reader :type,
:invoice,
:return_url,
:response_url,
:response
def initialize(type, invoice, opts = {})
@type = type
@invoice = invoice
@return_url = opts[:return_url]
@response_url = opts[:response_url]
@response = opts[:response]
end
def create_transaction
transaction = BankTransaction.where(description: invoice.order).first_or_initialize(
reference_no: invoice.reference_no,
currency: invoice.currency,
iban: invoice.seller_iban
)
transaction.save!
end
def complete_transaction
fail NotImplementedError
end
def settled_payment?
fail NotImplementedError
end
def form_fields
fail NotImplementedError
end
def form_url
ENV["#{type}_payment_url"]
end
def valid_response?
fail NotImplementedError
end
end
end