Sha256: 0d9b47c468a5bdb4b6fc17e3ebf897d56b21ecadeb1dc9f3558a366438346410

Contents?: true

Size: 1019 Bytes

Versions: 13

Compression:

Stored size: 1019 Bytes

Contents

module StarkitBanking
  module API
    class Factory
      
      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
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
starkit_banking-0.1.26 lib/starkit_banking/api/factory.rb
starkit_banking-0.1.25 lib/starkit_banking/api/factory.rb
starkit_banking-0.1.24 lib/starkit_banking/api/factory.rb
starkit_banking-0.1.23 lib/starkit_banking/api/factory.rb
starkit_banking-0.1.22 lib/starkit_banking/api/factory.rb
starkit_banking-0.1.21 lib/starkit_banking/api/factory.rb
starkit_banking-0.1.20 lib/starkit_banking/api/factory.rb
starkit_banking-0.1.18 lib/starkit_banking/api/factory.rb
starkit_banking-0.1.17 lib/starkit_banking/api/factory.rb
starkit_banking-0.1.16 lib/starkit_banking/api/factory.rb
starkit_banking-0.1.15 lib/starkit_banking/api/factory.rb
starkit_banking-0.1.14 lib/starkit_banking/api/factory.rb
starkit_banking-0.1.12 lib/starkit_banking/api/factory.rb