class ApiBanking::InstantCreditService

Constants

SERVICE_NAMESPACE
SERVICE_VERSION

Attributes

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

Public Class Methods

configure() { |configuration| ... } click to toggle source
# File lib/api_banking/soap/instantCreditService.rb, line 27
def self.configure
  self.configuration ||= Configuration.new
  yield(configuration)
end
get_status(env, request) click to toggle source
# File lib/api_banking/soap/instantCreditService.rb, line 59
def self.get_status(env, request)
  reply = do_remote_call(env) do |xml|
    xml.getStatus("xmlns:ns" => SERVICE_NAMESPACE ) do
      xml.parent.namespace = xml.parent.namespace_definitions.first
      xml['ns'].version SERVICE_VERSION
      xml['ns'].customerID request.customerID
      xml['ns'].appID request.appID
      xml['ns'].requestReferenceNo request.requestReferenceNo
    end
  end
  parse_reply(:getStatus, reply)
end
pay_now(env, request) click to toggle source
# File lib/api_banking/soap/instantCreditService.rb, line 36
def self.pay_now(env, request)
  reply = do_remote_call(env) do |xml|
    xml.payNow("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'].customerID request.customerID
      xml['ns'].appID request.appID
      xml['ns'].supplierCode request.supplierCode
      xml['ns'].invoiceDetail do  |xml|
        xml.invoiceNo request.invoiceDetail.invoiceNo
        xml.invoiceDate request.invoiceDetail.invoiceDate
        xml.dueDate request.invoiceDetail.dueDate
        xml.invoiceAmount request.invoiceDetail.invoiceAmount
      end
      xml.discountedAmount request.discountedAmount
      xml.feeAmount request.feeAmount
    end
  end
  parse_reply(:payNow, reply)
end

Private Class Methods

parse_reply(operationName, reply) click to toggle source
# File lib/api_banking/soap/instantCreditService.rb, line 78
def self.parse_reply(operationName, reply)
  if reply.kind_of?Fault
    return reply
  else
    case operationName
      when :payNow
        return PayNow::Result.new(
          content_at(reply.at_xpath('//ns:payNowResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:payNowResponse/ns:requestReferenceNo', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:payNowResponse/ns:creditReferenceNo', 'ns' => SERVICE_NAMESPACE))
          )
      when :getStatus
        status = GetStatus::Status.new(
          content_at(reply.at_xpath('//ns:getStatusResponse/ns:status/ns:statusCode', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:getStatusResponse/ns:status/ns:subStatusCode', 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath('//ns:getStatusResponse/ns:status/ns:subStatusText', '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:requestReferenceNo', 'ns' => SERVICE_NAMESPACE)),
          status,
          content_at(reply.at_xpath('//ns:getStatusResponse/ns:creditReferenceNo', 'ns' => SERVICE_NAMESPACE))
        ) 
    end         
  end
end
uri() click to toggle source
# File lib/api_banking/soap/instantCreditService.rb, line 74
def self.uri()
    return '/InstantCreditService'
end

Private Instance Methods

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