class ApiBanking::NotificationService

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/notificationService.rb, line 81
def self.configure
  self.configuration ||= Configuration.new
  yield(configuration)
end
deleteSubscription(env, request) click to toggle source
# File lib/api_banking/soap/notificationService.rb, line 151
def self.deleteSubscription(env, request)
  reply = do_remote_call(env) do |xml|
    xml.deleteSubscription("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'].topicName request.topicName
      unless request.subscriber.nil?
        xml.subscriber do |xml|
          xml.customerID request.subscriber.customerID
          xml.accountNo request.subscriber.accountNo unless request.subscriber.accountNo.nil?
        end
      end
    end  
  end
  parse_reply(:deleteSubscription, reply)
end
dispatchMessage(env, request) click to toggle source
# File lib/api_banking/soap/notificationService.rb, line 232
def self.dispatchMessage(env, request)
  reply = do_remote_call(env) do |xml|
    xml.dispatchMessage("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'].topicName request.topicName
      xml.recipient do |xml|
        xml.subscriber do |xml|
          xml.customerID request.recipient.subscriber.customerID
          xml.accountNo request.recipient.subscriber.accountNo unless request.recipient.subscriber.accountNo.nil?
          unless request.recipient.subscriber.contact.nil?
            xml.contact do |xml|
              xml.emailID request.recipient.subscriber.contact.emailID unless request.recipient.subscriber.contact.emailID.nil?
              xml.mobileNo request.recipient.subscriber.contact.mobileNo unless request.recipient.subscriber.contact.mobileNo.nil?
            end
          end
        end
        unless request.recipient.guest.nil?
          xml.guest do |xml|
            xml.emailID request.recipient.guest.emailID unless request.recipient.guest.emailID.nil?
            xml.mobileNo request.recipient.guest.mobileNo unless request.recipient.guest.mobileNo.nil?
          end
        end
      end
      unless request.criteriaArray.nil?
        xml.criteriaArray do |xml|
          xml.criteria do |xml|
            xml.name request.criteriaArray.criteria.name
            xml.value do |xml|
              xml.decimalValue request.criteriaArray.criteria.value.decimalValue unless request.criteriaArray.criteria.value.decimalValue.nil?
              xml.dateValue request.criteriaArray.criteria.value.dateValue unless request.criteriaArray.criteria.value.dateValue.nil?
              xml.stringValue request.criteriaArray.criteria.value.stringValue unless request.criteriaArray.criteria.value.stringValue.nil?
            end
          end
        end
      end
      xml.message do |xml|
        xml.smsText request.message.smsText unless request.message.smsText.nil?
        unless request.message.email.nil?
          xml.email do |xml|
            xml.subject request.message.email.subject unless request.message.email.subject.nil?
            xml.bodyContent request.message.email.bodyContent unless request.message.email.bodyContent.nil?
            unless request.message.email.attachment.nil?
              xml.attachment do |xml|
                xml.filePath request.attachment.filePath
                xml.contentType request.attachment.contentType
              end
            end
          end
        end
      end
      xml['ns'].referenceNo request.referenceNo unless request.referenceNo.nil?
      xml['ns'].sendAt request.sendAt unless request.sendAt.nil?
    end  
  end
  parse_reply(:dispatchMessage, reply)
end
getTopics(env, request) click to toggle source
# File lib/api_banking/soap/notificationService.rb, line 90
def self.getTopics(env, request)
  reply = do_remote_call(env) do |xml|
    xml.getTopics("xmlns:ns" => SERVICE_NAMESPACE ) do
      xml.parent.namespace = xml.parent.namespace_definitions.first
      xml['ns'].version SERVICE_VERSION
      xml['ns'].appID request.appID
      unless request.criteria.nil?
        xml['ns'].criteria do  |xml|
          xml.topicGroup request.criteria.topicGroup unless request.criteria.topicGroup.nil?
          unless request.criteria.subscriber.nil?
            xml.subscriber do |xml|
              xml.customerID request.criteria.subscriber.customerID unless request.criteria.subscriber.customerID.nil?
              xml.subscribed request.criteria.subscriber.subscribed unless request.criteria.subscriber.subscribed.nil?
              xml.unsubscribed request.criteria.subscriber.unsubscribed unless request.criteria.subscriber.unsubscribed.nil?
            end
          end
        end
      end
    end  
  end
  parse_reply(:getTopics, reply)
end
sendMessage(env, request) click to toggle source
# File lib/api_banking/soap/notificationService.rb, line 169
def self.sendMessage(env, request)
  reply = do_remote_call(env) do |xml|
    xml.sendMessage("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'].topicName request.topicName
      xml.recipient do |xml|
        xml.subscriber do |xml|
          xml.customerID request.recipient.subscriber.customerID
          xml.accountNo request.recipient.subscriber.accountNo unless request.recipient.subscriber.accountNo.nil?
          unless request.recipient.subscriber.contact.nil?
            xml.contact do |xml|
              xml.emailID request.recipient.subscriber.contact.emailID unless request.recipient.subscriber.contact.emailID.nil?
              xml.mobileNo request.recipient.subscriber.contact.mobileNo unless request.recipient.subscriber.contact.mobileNo.nil?
            end
          end
        end
        unless request.recipient.guest.nil?
          xml.guest do |xml|
            xml.emailID request.recipient.guest.emailID unless request.recipient.guest.emailID.nil?
            xml.mobileNo request.recipient.guest.mobileNo unless request.recipient.guest.mobileNo.nil?
          end
        end
      end
      unless request.mergeVarArray.nil?
        xml.mergeVarArray do |xml|
          xml.mergeVar do |xml|
            xml.name request.mergeVarArray.mergeVar.name
            xml.content do |xml|
              xml.stringContent request.mergeVarArray.mergeVar.content.stringContent unless request.mergeVarArray.mergeVar.content.stringContent.nil?
              xml.dateContent request.mergeVarArray.mergeVar.content.dateContent unless request.mergeVarArray.mergeVar.content.dateContent.nil?
              xml.dateTimeContent request.mergeVarArray.mergeVar.content.dateTimeContent unless request.mergeVarArray.mergeVar.content.dateTimeContent.nil?
              xml.decimalContent request.mergeVarArray.mergeVar.content.decimalContent unless request.mergeVarArray.mergeVar.content.decimalContent.nil?
            end
          end
        end
      end
      unless request.criteriaArray.nil?
        xml.criteriaArray do |xml|
          xml.criteria do |xml|
            xml.name request.criteriaArray.criteria.name
            xml.value do |xml|
              xml.decimalValue request.criteriaArray.criteria.value.decimalValue unless request.criteriaArray.criteria.value.decimalValue.nil?
              xml.dateValue request.criteriaArray.criteria.value.dateValue unless request.criteriaArray.criteria.value.dateValue.nil?
              xml.stringValue request.criteriaArray.criteria.value.stringValue unless request.criteriaArray.criteria.value.stringValue.nil?
            end
          end
        end
      end
      xml['ns'].referenceNo request.referenceNo unless request.referenceNo.nil?
      xml['ns'].sendAt request.sendAt unless request.sendAt.nil?
      unless request.attachment.nil?
        xml['ns'].attachment do |xml|
          xml.filePath request.attachment.filePath
          xml.contentType request.attachment.contentType
        end
      end
    end  
  end
  parse_reply(:sendMessage, reply)
end
setSubscription(env, request) click to toggle source
# File lib/api_banking/soap/notificationService.rb, line 113
def self.setSubscription(env, request)
  reply = do_remote_call(env) do |xml|
    xml.setSubscription("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'].topicName request.topicName
      xml['ns'].notifyByEmail request.notifyByEmail
      xml['ns'].notifyBySMS request.notifyBySMS
      xml['ns'].subscriber do |xml|
        xml.customerID request.subscriber.customerID
        xml.accountNo request.subscriber.accountNo
        unless request.subscriber.contact.nil?
          xml.contact do |xml|
            xml.emailID request.subscriber.contact.emailID unless request.subscriber.contact.emailID.nil? 
            xml.mobileNo request.subscriber.contact.mobileNo unless request.subscriber.contact.mobileNo.nil? 
          end
        end
      end
      unless request.criteriaArray.nil?
        xml['ns'].criteriaArray do |xml|
          unless request.criteriaArray.criteria.nil?
            xml.criteria do |xml|
              xml.name request.criteriaArray.criteria.name
              xml.value do |xml|
                xml.decimalValue request.criteriaArray.criteria.value.decimalValue unless request.criteriaArray.criteria.value.decimalValue.nil? 
                xml.dateValue request.criteriaArray.criteria.value.dateValue unless request.criteriaArray.criteria.value.dateValue.nil? 
                xml.stringValue request.criteriaArray.criteria.value.stringValue unless request.criteriaArray.criteria.value.stringValue.nil? 
              end
            end
          end
        end
      end
    end  
  end
  parse_reply(:setSubscription, reply)
end

Private Class Methods

parse_reply(operationName, reply) click to toggle source
# File lib/api_banking/soap/notificationService.rb, line 297
def self.parse_reply(operationName, reply)
  if reply.kind_of?Fault
    return reply
  else
    case operationName
    when :getTopics
      tpcsArray = Array.new  
      criteriaDefArray = Array.new
      criArray = Array.new 
      
      i = 1
      numTopics = reply.xpath('//ns:getTopicsResponse/ns:topicsArray/ns:topic', 'ns' => SERVICE_NAMESPACE).count
      until i > numTopics
        numCriDef = reply.xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:criteriaDefinitionArray/ns:criteriaDefinition", 'ns' => SERVICE_NAMESPACE).count
        j = 1
        until j > numCriDef
          criteriaDefArray << GetTopics::CriteriaDefinition.new(
            content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:criteriaDefinitionArray/ns:criteriaDefinition[#{j}]/ns:name", 'ns' => SERVICE_NAMESPACE)),
            content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:criteriaDefinitionArray/ns:criteriaDefinition[#{j}]/ns:valueDataType", 'ns' => SERVICE_NAMESPACE)),
            content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:criteriaDefinitionArray/ns:criteriaDefinition[#{j}]/ns:condition", 'ns' => SERVICE_NAMESPACE))
          )
          j = j + 1;
        end
        
        criteriaDefinitionArray = GetTopics::CriteriaDefinitionArray.new(criteriaDefArray)
        criteriaDefArray = []
        
        numCriteria = reply.xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:subscription/ns:criteriaArray/ns:criteria", 'ns' => SERVICE_NAMESPACE).count
        j = 1
        until j > numCriteria
          value = GetTopics::Value.new(
            content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:subscription/ns:criteriaArray/ns:criteria[#{j}]/ns:value/ns:decimalValue", 'ns' => SERVICE_NAMESPACE)),
            content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:subscription/ns:criteriaArray/ns:criteria[#{j}]/ns:value/ns:dateValue", 'ns' => SERVICE_NAMESPACE)),
            content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:subscription/ns:criteriaArray/ns:criteria[#{j}]/ns:value/ns:stringValue", 'ns' => SERVICE_NAMESPACE))
          )
          criArray << GetTopics::RepCriteria.new(
            content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:subscription/ns:criteriaArray/ns:criteria[#{j}]/ns:name", 'ns' => SERVICE_NAMESPACE)),
            value
          )
          j = j + 1;
        end
        
        criteriaArray = GetTopics::CriteriaArray.new(criArray)
        criArray = []
        
        subscription = GetTopics::Subscription.new(
          content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:subscription/ns:subscribedAt", 'ns' => SERVICE_NAMESPACE)),
          criteriaArray
        )
        
        tpcsArray << GetTopics::Topic.new(
          content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:topicName", 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:topicDisplayName", 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:topicGroup", 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:needsSubscription", 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:notifyByEmail", 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:notifyBySMS", 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:canBeBatched", 'ns' => SERVICE_NAMESPACE)),
          content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:subscriptionProvider", 'ns' => SERVICE_NAMESPACE)),
          (criteriaDefinitionArray.criteriaDefinition.empty? ? nil : criteriaDefinitionArray),
          (subscription.subscribedAt.nil? ? nil : subscription)
        )
        i = i + 1;
      end;
      
      topicsArray = GetTopics::TopicsArray.new(tpcsArray)
      return GetTopics::Result.new(
        content_at(reply.at_xpath('//ns:getTopicsResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
        (topicsArray.topic.empty? ? nil : topicsArray)
      ) 
    when :setSubscription
      return SetSubscription::Result.new(
        content_at(reply.at_xpath('//ns:setSubscriptionResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
        content_at(reply.at_xpath('//ns:setSubscriptionResponse/ns:subscribedAt', 'ns' => SERVICE_NAMESPACE))
      )
    when :deleteSubscription
      return DeleteSubscription::Result.new(
        content_at(reply.at_xpath('//ns:deleteSubscriptionResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
        content_at(reply.at_xpath('//ns:deleteSubscriptionResponse/ns:subscribedAt', 'ns' => SERVICE_NAMESPACE))
      )
    when :sendMessage
      return SendMessage::Result.new(
        content_at(reply.at_xpath('//ns:sendMessageResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
        content_at(reply.at_xpath('//ns:sendMessageResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE))
      )
    when :dispatchMessage
      return DispatchMessage::Result.new(
        content_at(reply.at_xpath('//ns:dispatchMessageResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
        content_at(reply.at_xpath('//ns:dispatchMessageResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE))
      )
    end         
  end
end
uri() click to toggle source
# File lib/api_banking/soap/notificationService.rb, line 293
def self.uri()
    return '/NotificationService'
end

Private Instance Methods

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