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