class ApiBanking::FundsTransferByCustomerService2

Constants

SERVICE_NAMESPACE
SERVICE_VERSION

Attributes

request[RW]
result[RW]

Public Class Methods

get_balance(env, request, callbacks = nil) click to toggle source
# File lib/api_banking/soap/fundsTransferByCustomerService2.rb, line 93
def self.get_balance(env, request, callbacks = nil)
  reply = do_remote_call(env, callbacks) do |xml|
    xml.getBalance("xmlns:ns" => SERVICE_NAMESPACE ) do
      xml.parent.namespace = xml.parent.namespace_definitions.first
      xml['ns'].version SERVICE_VERSION
      xml['ns'].appID request.appID
      xml['ns'].customerID request.customerID
      xml['ns'].AccountNumber request.AccountNumber
    end
  end
  parse_reply(:getBalance, reply)
end
get_status(env, request, callbacks = nil) click to toggle source
# File lib/api_banking/soap/fundsTransferByCustomerService2.rb, line 80
def self.get_status(env, request, callbacks = nil)
  reply = do_remote_call(env, callbacks) do |xml|
    xml.getStatus("xmlns:ns" => SERVICE_NAMESPACE ) do
      xml.parent.namespace = xml.parent.namespace_definitions.first
      xml['ns'].version SERVICE_VERSION
      xml['ns'].appID request.appID
      xml['ns'].customerID request.customerID
      xml['ns'].requestReferenceNo request.requestReferenceNo
    end
  end
  parse_reply(:getStatus, reply)
end
transfer(env, request, callbacks = nil) click to toggle source
# File lib/api_banking/soap/fundsTransferByCustomerService2.rb, line 32
def self.transfer(env, request, callbacks = nil)
  reply = do_remote_call(env, callbacks) do |xml|
    xml.transfer("xmlns:ns" => SERVICE_NAMESPACE ) do
      xml.parent.namespace = xml.parent.namespace_definitions.first
      xml['ns'].version SERVICE_VERSION
      xml['ns'].uniqueRequestNo request.uniqueRequestNo
      xml['ns'].appID request.appID
      xml['ns'].purposeCode request.purposeCode unless request.purposeCode.nil?
      xml['ns'].customerID request.customerID
      xml['ns'].debitAccountNo request.debitAccountNo
      xml['ns'].beneficiary do  |xml|
        xml.beneficiaryCode request.beneficiary.beneCode unless request.beneficiary.beneCode.nil?
        unless request.beneficiary.fullName.nil?
          xml.beneficiaryDetail do |xml|
            xml.beneficiaryName do |xml|
              xml.fullName request.beneficiary.fullName
            end
            xml.beneficiaryAddress do |xml|
              if request.beneficiary.address.kind_of? Transfer::Address
                xml.address1 request.beneficiary.address.address1
                xml.address2 request.beneficiary.address.address2 unless request.beneficiary.address.address2.nil?
                xml.address3 request.beneficiary.address.address3 unless request.beneficiary.address.address3.nil?
                xml.postalCode request.beneficiary.address.postalCode unless request.beneficiary.address.postalCode.nil?
                xml.city request.beneficiary.address.city unless request.beneficiary.address.city.nil?
                xml.stateOrProvince request.beneficiary.address.stateOrProvince unless request.beneficiary.address.stateOrProvince.nil?
                xml.country request.beneficiary.address.country unless request.beneficiary.address.country.nil?
              else
                xml.address1 request.beneficiary.address
              end
            end
            xml.beneficiaryContact do |xml|
            end
            xml.beneficiaryAccountNo request.beneficiary.accountNo
            xml.beneficiaryIFSC request.beneficiary.accountIFSC
          end
        end
      end
      xml.transferType request.transferType
      xml.transferCurrencyCode 'INR'
      xml.transferAmount request.transferAmount
      xml.remitterToBeneficiaryInfo request.remitterToBeneficiaryInfo
    end
  end

  parse_reply(:transfer, reply)
end

Private Class Methods

parse_reply(operationName, reply) click to toggle source
# File lib/api_banking/soap/fundsTransferByCustomerService2.rb, line 112
def self.parse_reply(operationName, reply)
  if reply.kind_of?Fault
    return reply
  else
    case operationName
      when :transfer
        transactionStatus = Transfer::TransactionStatus.new(
          content_at(reply.at_xpath('//ns:transferResponse/ns:transactionStatus/ns:statusCode', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:transferResponse/ns:transactionStatus/ns:subStatusCode', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:transferResponse/ns:transactionStatus/ns:bankReferenceNo', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:transferResponse/ns:transactionStatus/ns:beneficiaryReferenceNo', 'ns' => SERVICE_NAMESPACE))
        )
        return Transfer::Result.new(
          content_at(reply.at_xpath('//ns:transferResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:transferResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:transferResponse/ns:attemptNo', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:transferResponse/ns:transferType', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:transferResponse/ns:lowBalanceAlert', 'ns' => SERVICE_NAMESPACE)),
          transactionStatus
          )
      when :getStatus
        transactionStatus = GetStatus::TransactionStatus.new(
          content_at(reply.at_xpath('//ns:getStatusResponse/ns:transactionStatus/ns:statusCode', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:getStatusResponse/ns:transactionStatus/ns:subStatusCode', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:getStatusResponse/ns:transactionStatus/ns:bankReferenceNo', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:getStatusResponse/ns:transactionStatus/ns:beneficiaryReferenceNo', 'ns' => SERVICE_NAMESPACE))
        )
        return GetStatus::Result.new(
          content_at(reply.at_xpath('//ns:getStatusResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:getStatusResponse/ns:transferType', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:getStatusResponse/ns:reqTransferType', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:getStatusResponse/ns:transactionDate', 'ns' => SERVICE_NAMESPACE)),
          BigDecimal.new(content_at(reply.at_xpath('//ns:getStatusResponse/ns:transferAmount', 'ns' => SERVICE_NAMESPACE))),
          content_at(reply.at_xpath('//ns:getStatusResponse/ns:transferCurrencyCode', 'ns' => SERVICE_NAMESPACE)),
          transactionStatus
        )
      when :getBalance
        return GetBalance::Result.new(
          content_at(reply.at_xpath('//ns:getBalanceResponse/ns:Version', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:getBalanceResponse/ns:accountCurrencyCode', 'ns' => SERVICE_NAMESPACE)),
          BigDecimal.new(content_at(reply.at_xpath('//ns:getBalanceResponse/ns:accountBalanceAmount', 'ns' => SERVICE_NAMESPACE))),
          content_at(reply.at_xpath('//ns:getBalanceResponse/ns:lowBalanceAlert', 'ns' => SERVICE_NAMESPACE))
        )
    end
  end
end
uri() click to toggle source
# File lib/api_banking/soap/fundsTransferByCustomerService2.rb, line 108
def self.uri()
    return '/fundsTransferByCustomerService2'
end

Private Instance Methods

url() click to toggle source
# File lib/api_banking/soap/fundsTransferByCustomerService2.rb, line 159
def url
  return '/fundsTransferByCustomerService2'
end