class ApiBanking::InstantMoneyTransferService

Constants

SERVICE_NAMESPACE
SERVICE_VERSION

Attributes

configuration[RW]
request[RW]
result[RW]

Public Class Methods

add_beneficiary(env, request, callbacks = nil) click to toggle source
# File lib/api_banking/soap/instantMoneyTransferService.rb, line 76
def self.add_beneficiary(env, request, callbacks = nil)
  reply = do_remote_call(env, callbacks) do |xml|
    xml.addBeneficiary("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'].customerID request.customerID
      xml['ns'].beneficiaryMobileNo request.beneficiaryMobileNo
      xml['ns'].beneficiaryName request.beneficiaryName
      xml['ns'].beneficiaryAddress do  |xml|
        if request.beneficiaryAddress.kind_of? AddBeneficiary::Address
          xml.addressLine request.beneficiaryAddress.addressLine
          xml.cityName request.beneficiaryAddress.cityName unless request.beneficiaryAddress.cityName.nil?
          xml.postalCode request.beneficiaryAddress.postalCode unless request.beneficiaryAddress.postalCode.nil?
        else
          xml.addressLine request.beneficiaryAddress
        end
      end
    end
  end

  parse_reply(:addBeneficiary, reply)
end
cancel_transfer(env, request, callbacks = nil) click to toggle source
# File lib/api_banking/soap/instantMoneyTransferService.rb, line 133
def self.cancel_transfer(env, request, callbacks = nil)
  reply = do_remote_call(env, callbacks) do |xml|
    xml.cancelTransfer("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'].customerID request.customerID
      xml['ns'].initiateTransferRequestNo request.initiateTransferRequestNo
      xml['ns'].reasonToCancel request.reasonToCancel
    end
  end

  parse_reply(:cancelTransfer, reply)
end
configure() { |configuration| ... } click to toggle source
# File lib/api_banking/soap/instantMoneyTransferService.rb, line 49
def self.configure
  self.configuration ||= Configuration.new
  yield(configuration)
end
delete_beneficiary(env, request, callbacks = nil) click to toggle source
# File lib/api_banking/soap/instantMoneyTransferService.rb, line 101
def self.delete_beneficiary(env, request, callbacks = nil)
  reply = do_remote_call(env, callbacks) do |xml|
    xml.deleteBeneficiary("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'].customerID request.customerID
      xml['ns'].beneficiaryMobileNo request.beneficiaryMobileNo
    end
  end

  parse_reply(:deleteBeneficiary, reply)
end
get_beneficiaries(env, request, callbacks = nil) click to toggle source
# File lib/api_banking/soap/instantMoneyTransferService.rb, line 116
def self.get_beneficiaries(env, request, callbacks = nil)
  reply = do_remote_call(env, callbacks) do |xml|
    xml.getBeneficiaries("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.dateRange do |xml|
        xml.fromDate request.dateRange.fromDate unless request.dateRange.fromDate.nil?
        xml.toDate request.dateRange.toDate unless request.dateRange.toDate.nil?
      end
      xml['ns'].numBeneficiaries request.numBeneficiaries
    end
  end
  parse_reply(:getBeneficiaries, reply)
end
transfer(env, request, callbacks = nil) click to toggle source
# File lib/api_banking/soap/instantMoneyTransferService.rb, line 58
def self.transfer(env, request, callbacks = nil)
  reply = do_remote_call(env, callbacks) do |xml|
    xml.initiateTransfer("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'].customerID request.customerID
      xml['ns'].beneficiaryMobileNo request.beneficiaryMobileNo
      xml['ns'].transferAmount request.transferAmount
      xml['ns'].passCode request.passCode
      xml['ns'].remitterToBeneficiaryInfo request.remitterToBeneficiaryInfo
    end
  end

  parse_reply(:initiateTransfer, reply)
end

Private Class Methods

parse_reply(operationName, reply) click to toggle source
# File lib/api_banking/soap/instantMoneyTransferService.rb, line 151
def self.parse_reply(operationName, reply)
  if reply.kind_of?Fault
    return reply
  else
    case operationName
      when :initiateTransfer
      transferResult = InitiateTransfer::TransferResult.new(
        content_at(reply.at_xpath('//ns:initiateTransferResponse/ns:initiateTransferResult/ns:bankReferenceNo', 'ns' => SERVICE_NAMESPACE)),
        content_at(reply.at_xpath('//ns:initiateTransferResponse/ns:initiateTransferResult/ns:imtReferenceNo', 'ns' => SERVICE_NAMESPACE))
      )
      return InitiateTransfer::Result.new(
        content_at(reply.at_xpath('//ns:initiateTransferResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE)),
        transferResult
        )
      when :addBeneficiary
      return AddBeneficiary::Result.new(
        content_at(reply.at_xpath('//ns:addBeneficiaryResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE)),
        )
      when :deleteBeneficiary
      return DeleteBeneficiary::Result.new(
        content_at(reply.at_xpath('//ns:deleteBeneficiaryResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE)),
        )
      when :getBeneficiaries
        beneficiariesArray = Array.new
        i = 1
        numBeneficiaries = content_at(reply.at_xpath('//ns:getBeneficiariesResponse/ns:numBeneficiaries', 'ns' => SERVICE_NAMESPACE)).to_i
        until i > numBeneficiaries
          beneficiariesArray << GetBeneficiaries::Beneficiary.new(
            content_at(reply.at_xpath("//ns:getBeneficiariesResponse/ns:beneficiariesArray/ns:beneficiary[#{i}]/ns:beneficiaryName", 'ns' => SERVICE_NAMESPACE)),
            content_at(reply.at_xpath("//ns:getBeneficiariesResponse/ns:beneficiariesArray/ns:beneficiary[#{i}]/ns:beneficiaryMobileNo", 'ns' => SERVICE_NAMESPACE)),
            content_at(reply.at_xpath("//ns:getBeneficiariesResponse/ns:beneficiariesArray/ns:beneficiary[#{i}]/ns:registrationDate", 'ns' => SERVICE_NAMESPACE)),
            content_at(reply.at_xpath("//ns:getBeneficiariesResponse/ns:beneficiariesArray/ns:beneficiary[#{i}]/ns:addressLine", 'ns' => SERVICE_NAMESPACE)),
            content_at(reply.at_xpath("//ns:getBeneficiariesResponse/ns:beneficiariesArray/ns:beneficiary[#{i}]/ns:postalCode", 'ns' => SERVICE_NAMESPACE))
          )
          i = i + 1;
        end;
        beneArray = GetBeneficiaries::BeneficiariesArray.new(beneficiariesArray)
        return GetBeneficiaries::Result.new(
          content_at(reply.at_xpath('//ns:getBeneficiariesResponse/ns:numBeneficiaries', 'ns' => SERVICE_NAMESPACE)),
          beneArray
        )
      when :cancelTransfer
        cancelResult = CancelTransfer::CancelResult.new(
          content_at(reply.at_xpath('//ns:cancelTransferResponse/ns:cancelResult/ns:imtReferenceNo', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:cancelTransferResponse/ns:cancelResult/ns:bankReferenceNo', 'ns' => SERVICE_NAMESPACE))
        )
        return CancelTransfer::Result.new(
          content_at(reply.at_xpath('//ns:cancelTransferResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE)),
          cancelResult
        )
    end
  end
end