Class: StarkitBanking::API::Factory

Inherits:
Object
  • Object
show all
Defined in:
lib/starkit_banking/api/factory.rb

Class Method Summary collapse

Class Method Details

.get_client(model, action = nil) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/starkit_banking/api/factory.rb', line 5

def self.get_client(model, action = nil)
  klass = model.class.name.demodulize
  case klass
  when 'Payment'
    if action.nil?
      svc = model.transfer_type == 'IMT' ? 'IMT' : 'FT2'
      return "StarkitBanking::#{model.payment_account.bank_name}::Payment::By#{svc}".constantize.new(model.transfer_type)
    else
      return "StarkitBanking::#{model.payment_account.bank_name}::Payment::#{action}".constantize.new(action)
    end
  when 'PaymentAccount'
    return "StarkitBanking::#{model.bank_name}::Account::#{action}".constantize.new(action)
  when 'BankBeneficiary'
    return "StarkitBanking::#{model.bank_name}::Beneficiary::#{model.transfer_type}::#{action}".constantize.new(action)          
  end
rescue
  raise ApiFault.new(OpenStruct.new(code: 'sb:413', subCode: nil, reasonText: "API is not yet implemeneted!"))
end