api_banking 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/api_banking.gemspec +3 -1
- data/lib/api_banking/environment/qg/env.rb +19 -0
- data/lib/api_banking/environment/ybl/env.rb +3 -2
- data/lib/api_banking/soap/domesticRemittanceByPartnerService.rb +242 -0
- data/lib/api_banking/soap/fundsTransferByCustomerService2.rb +27 -1
- data/lib/api_banking/soap/instantCreditService.rb +110 -0
- data/lib/api_banking/soap/instantMoneyTransferService.rb +140 -0
- data/lib/api_banking/soap/notificationService.rb +396 -0
- data/lib/api_banking/soap/soap_client.rb +9 -2
- data/lib/api_banking/version.rb +1 -1
- data/lib/api_banking.rb +4 -0
- metadata +34 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f7815f524c5f3a301a23b06dedaf78bbdc5e583
|
4
|
+
data.tar.gz: 93bb01969b48b89de0580afbbf9c1aa74887588b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91965c47a8f7e004cab8bc4803beb356eb1ed3dc3b2f67cf023bf74686e50589fa319526f06ad029e7fd123326644de849debf52dec2a5f672b68351fce7b92e
|
7
|
+
data.tar.gz: 398738d686b5a2367a44019e9cd02ff17ad686dd724ff77ef7c577dad5289c67e36dc2a471ea0f99a1519e5a1176e17205c5e3a974fc3d9bf2c5749e02d153f8
|
data/api_banking.gemspec
CHANGED
@@ -21,7 +21,9 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.9"
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
23
|
spec.add_development_dependency "minitest"
|
24
|
+
spec.add_development_dependency "vcr"
|
25
|
+
spec.add_development_dependency "webmock"
|
24
26
|
|
25
27
|
spec.add_dependency "typhoeus"
|
26
|
-
spec.add_dependency "nokogiri"
|
28
|
+
spec.add_dependency "nokogiri"
|
27
29
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module ApiBanking
|
2
|
+
module Environment
|
3
|
+
module QG
|
4
|
+
DEMO = Struct.new(:user, :password, :endpoints) do
|
5
|
+
def initialize(*)
|
6
|
+
super
|
7
|
+
self.endpoints = {
|
8
|
+
FundsTransferByCustomerService: 'https://api.quantiguous.com/fundsTransferByCustomerServiceHttpService',
|
9
|
+
FundsTransferByCustomerService2: 'http://10.211.55.6:7801/fundsTransferByCustomerService2',
|
10
|
+
InstantMoneyTransferService: 'https://api.quantiguous.com/IMTService',
|
11
|
+
DomesticRemittanceByPartnerService: 'https://api.quantiguous.com/DomesticRemittanceByPartnerService',
|
12
|
+
NotificationService: 'https://api.quantiguous.com/NotificationService',
|
13
|
+
InstantCreditService: 'https://api.quantiguous.com/InstantCreditService'
|
14
|
+
}
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -6,8 +6,9 @@ module ApiBanking
|
|
6
6
|
super
|
7
7
|
self.endpoints = {
|
8
8
|
FundsTransferByCustomerService: 'https://uatsky.yesbank.in/app/uat/fundsTransferByCustomerServiceHttpService',
|
9
|
-
FundsTransferByCustomerService2: '
|
10
|
-
InstantMoneyTransferService: 'https://uatsky.yesbank.in:7081/IMTService'
|
9
|
+
FundsTransferByCustomerService2: 'http://10.211.55.6:7801/fundsTransferByCustomerService2',
|
10
|
+
InstantMoneyTransferService: 'https://uatsky.yesbank.in:7081/IMTService',
|
11
|
+
NotificationService: 'http://10.211.55.6:7802/NotificationService'
|
11
12
|
}
|
12
13
|
end
|
13
14
|
end
|
@@ -0,0 +1,242 @@
|
|
1
|
+
module ApiBanking
|
2
|
+
class DomesticRemittanceByPartnerService < SoapClient
|
3
|
+
|
4
|
+
SERVICE_NAMESPACE = 'http://www.quantiguous.com/services'
|
5
|
+
SERVICE_VERSION = 1
|
6
|
+
|
7
|
+
attr_accessor :request, :result
|
8
|
+
|
9
|
+
#remit
|
10
|
+
module Remit
|
11
|
+
Address = Struct.new(:address1, :address2, :address3, :postalCode, :city, :stateOrProvince, :country)
|
12
|
+
Contact = Struct.new(:mobileNo, :emailID)
|
13
|
+
Request = Struct.new(:uniqueRequestNo, :partnerCode, :customerID, :debitAccountNo, :remitterAccountNo,
|
14
|
+
:remitterIFSC, :remitterName, :remitterAddress, :remitterContact, :beneficiaryName, :beneficiaryAddress,
|
15
|
+
:beneficiaryContact, :beneficiaryAccountNo, :beneficiaryIFSC, :transferType, :transferCurrencyCode, :transferAmount,
|
16
|
+
:remitterToBeneficiaryInfo)
|
17
|
+
|
18
|
+
TransactionStatus = Struct.new(:statusCode, :subStatusCode, :bankReferenceNo, :beneficiaryReferenceNo, :reason)
|
19
|
+
|
20
|
+
Result = Struct.new(:version, :uniqueResponseNo, :attemptNo, :requestReferenceNo, :transferType, :lowBalanceAlert,
|
21
|
+
:transactionStatus)
|
22
|
+
end
|
23
|
+
|
24
|
+
#getStatus
|
25
|
+
module GetStatus
|
26
|
+
Request = Struct.new(:version, :partnerCode, :requestReferenceNo)
|
27
|
+
TransactionStatus = Struct.new(:statusCode, :subStatusCode, :bankReferenceNo, :beneficiaryReferenceNo, :reason)
|
28
|
+
|
29
|
+
Result = Struct.new(:version, :transferType, :reqTransferType, :transactionDate, :transferAmount, :transferCurrencyCode,
|
30
|
+
:transactionStatus)
|
31
|
+
end
|
32
|
+
|
33
|
+
#getBalance
|
34
|
+
module GetBalance
|
35
|
+
Request = Struct.new(:version, :partnerCode, :customerID, :accountNo)
|
36
|
+
|
37
|
+
Result = Struct.new(:version, :accountCurrencyCode, :accountBalanceAmount, :lowBalanceAlert)
|
38
|
+
end
|
39
|
+
|
40
|
+
#getTransactions
|
41
|
+
module GetTransactions
|
42
|
+
Request = Struct.new(:version, :partnerCode, :customerID, :accountNo, :dateRange)
|
43
|
+
|
44
|
+
DateRange = Struct.new(:fromDate, :toDate)
|
45
|
+
TransactionsArray = Struct.new(:transaction)
|
46
|
+
Transaction = Struct.new(:transactionDateTime, :transactionType, :amount, :narrative, :referenceNo, :balance)
|
47
|
+
|
48
|
+
Result = Struct.new(:version, :openingBalance, :numDebits, :numCredits, :closingBalance, :numTransactions, :transactionsArray)
|
49
|
+
end
|
50
|
+
|
51
|
+
class << self
|
52
|
+
attr_accessor :configuration
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.configure
|
56
|
+
self.configuration ||= Configuration.new
|
57
|
+
yield(configuration)
|
58
|
+
end
|
59
|
+
|
60
|
+
class Configuration
|
61
|
+
attr_accessor :environment, :proxy, :timeout
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.remit(request)
|
65
|
+
reply = do_remote_call do |xml|
|
66
|
+
xml.remit("xmlns:ns" => SERVICE_NAMESPACE ) do
|
67
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
68
|
+
xml['ns'].version SERVICE_VERSION
|
69
|
+
xml['ns'].uniqueRequestNo request.uniqueRequestNo
|
70
|
+
xml['ns'].partnerCode request.partnerCode
|
71
|
+
xml['ns'].customerID request.customerID
|
72
|
+
xml['ns'].debitAccountNo request.debitAccountNo
|
73
|
+
xml['ns'].remitterAccountNo request.remitterAccountNo
|
74
|
+
xml['ns'].remitterIFSC request.remitterIFSC
|
75
|
+
xml['ns'].remitterName request.remitterName
|
76
|
+
xml['ns'].remitterAddress do |xml|
|
77
|
+
if request.remitterAddress.kind_of? Remit::Address
|
78
|
+
xml.address1 request.remitterAddress.address1
|
79
|
+
xml.address2 request.remitterAddress.address2 unless request.remitterAddress.address2.nil?
|
80
|
+
xml.address3 request.remitterAddress.address3 unless request.remitterAddress.address3.nil?
|
81
|
+
xml.postalCode request.remitterAddress.postalCode unless request.remitterAddress.postalCode.nil?
|
82
|
+
xml.city request.remitterAddress.city unless request.remitterAddress.city.nil?
|
83
|
+
xml.stateOrProvince request.remitterAddress.stateOrProvince unless request.remitterAddress.stateOrProvince.nil?
|
84
|
+
xml.country request.remitterAddress.country unless request.remitterAddress.country.nil?
|
85
|
+
else
|
86
|
+
xml.address1 request.remitterAddress
|
87
|
+
end
|
88
|
+
end
|
89
|
+
xml['ns'].remitterContact do |xml|
|
90
|
+
xml.mobileNo request.remitterContact.mobileNo unless request.remitterContact.mobileNo.nil?
|
91
|
+
xml.emailID request.remitterContact.emailID unless request.remitterContact.emailID.nil?
|
92
|
+
end
|
93
|
+
xml['ns'].beneficiaryName request.beneficiaryName
|
94
|
+
xml['ns'].beneficiaryAddress do |xml|
|
95
|
+
if request.beneficiaryAddress.kind_of? Remit::Address
|
96
|
+
xml.address1 request.beneficiaryAddress.address1
|
97
|
+
xml.address2 request.beneficiaryAddress.address2 unless request.beneficiaryAddress.address2.nil?
|
98
|
+
xml.address3 request.beneficiaryAddress.address3 unless request.beneficiaryAddress.address3.nil?
|
99
|
+
xml.postalCode request.beneficiaryAddress.postalCode unless request.beneficiaryAddress.postalCode.nil?
|
100
|
+
xml.city request.beneficiaryAddress.city unless request.beneficiaryAddress.city.nil?
|
101
|
+
xml.stateOrProvince request.beneficiaryAddress.stateOrProvince unless request.beneficiaryAddress.stateOrProvince.nil?
|
102
|
+
xml.country request.beneficiaryAddress.country unless request.beneficiaryAddress.country.nil?
|
103
|
+
else
|
104
|
+
xml.address1 request.beneficiaryAddress
|
105
|
+
end
|
106
|
+
end
|
107
|
+
xml['ns'].beneficiaryContact do |xml|
|
108
|
+
xml.mobileNo request.beneficiaryContact.mobileNo unless request.beneficiaryContact.mobileNo.nil?
|
109
|
+
xml.emailID request.beneficiaryContact.emailID unless request.beneficiaryContact.emailID.nil?
|
110
|
+
end
|
111
|
+
xml['ns'].beneficiaryAccountNo request.beneficiaryAccountNo
|
112
|
+
xml['ns'].beneficiaryIFSC request.beneficiaryIFSC
|
113
|
+
xml['ns'].transferType request.transferType
|
114
|
+
xml['ns'].transferCurrencyCode 'INR'
|
115
|
+
xml['ns'].transferAmount request.transferAmount
|
116
|
+
xml['ns'].remitterToBeneficiaryInfo request.remitterToBeneficiaryInfo
|
117
|
+
end
|
118
|
+
end
|
119
|
+
parse_reply(:remit, reply)
|
120
|
+
end
|
121
|
+
|
122
|
+
def self.get_status(request)
|
123
|
+
reply = do_remote_call do |xml|
|
124
|
+
xml.getRemittanceStatus("xmlns:ns" => SERVICE_NAMESPACE ) do
|
125
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
126
|
+
xml['ns'].version SERVICE_VERSION
|
127
|
+
xml['ns'].partnerCode request.partnerCode
|
128
|
+
xml['ns'].requestReferenceNo request.requestReferenceNo
|
129
|
+
end
|
130
|
+
end
|
131
|
+
parse_reply(:getRemittanceStatus, reply)
|
132
|
+
end
|
133
|
+
|
134
|
+
def self.get_balance(request)
|
135
|
+
reply = do_remote_call do |xml|
|
136
|
+
xml.getBalance("xmlns:ns" => SERVICE_NAMESPACE ) do
|
137
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
138
|
+
xml['ns'].version SERVICE_VERSION
|
139
|
+
xml['ns'].partnerCode request.partnerCode
|
140
|
+
xml['ns'].customerID request.customerID
|
141
|
+
xml['ns'].accountNo request.accountNo
|
142
|
+
end
|
143
|
+
end
|
144
|
+
parse_reply(:getBalance, reply)
|
145
|
+
end
|
146
|
+
|
147
|
+
def self.get_transactions(request)
|
148
|
+
reply = do_remote_call do |xml|
|
149
|
+
xml.getTransactions("xmlns:ns" => SERVICE_NAMESPACE ) do
|
150
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
151
|
+
xml['ns'].version SERVICE_VERSION
|
152
|
+
xml['ns'].partnerCode request.partnerCode
|
153
|
+
xml['ns'].customerID request.customerID
|
154
|
+
xml['ns'].accountNo request.accountNo
|
155
|
+
xml.dateRange do |xml|
|
156
|
+
xml.fromDate request.dateRange.fromDate unless request.dateRange.fromDate.nil?
|
157
|
+
xml.toDate request.dateRange.toDate unless request.dateRange.toDate.nil?
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
161
|
+
parse_reply(:getTransactions, reply)
|
162
|
+
end
|
163
|
+
|
164
|
+
def self.parse_reply(operationName, reply)
|
165
|
+
if reply.kind_of?Fault
|
166
|
+
return reply
|
167
|
+
else
|
168
|
+
case operationName
|
169
|
+
when :remit
|
170
|
+
transactionStatus = Remit::TransactionStatus.new(
|
171
|
+
content_at(reply.at_xpath('//ns:remitResponse/ns:transactionStatus/ns:statusCode', 'ns' => SERVICE_NAMESPACE)),
|
172
|
+
content_at(reply.at_xpath('//ns:remitResponse/ns:transactionStatus/ns:subStatusCode', 'ns' => SERVICE_NAMESPACE)),
|
173
|
+
content_at(reply.at_xpath('//ns:remitResponse/ns:transactionStatus/ns:bankReferenceNo', 'ns' => SERVICE_NAMESPACE)),
|
174
|
+
content_at(reply.at_xpath('//ns:remitResponse/ns:transactionStatus/ns:beneficiaryReferenceNo', 'ns' => SERVICE_NAMESPACE)),
|
175
|
+
content_at(reply.at_xpath('//ns:remitResponse/ns:transactionStatus/ns:reason', 'ns' => SERVICE_NAMESPACE))
|
176
|
+
)
|
177
|
+
return Remit::Result.new(
|
178
|
+
content_at(reply.at_xpath('//ns:remitResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
|
179
|
+
content_at(reply.at_xpath('//ns:remitResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE)),
|
180
|
+
content_at(reply.at_xpath('//ns:remitResponse/ns:attemptNo', 'ns' => SERVICE_NAMESPACE)),
|
181
|
+
content_at(reply.at_xpath('//ns:remitResponse/ns:requestReferenceNo', 'ns' => SERVICE_NAMESPACE)),
|
182
|
+
content_at(reply.at_xpath('//ns:remitResponse/ns:transferType', 'ns' => SERVICE_NAMESPACE)),
|
183
|
+
content_at(reply.at_xpath('//ns:remitResponse/ns:lowBalanceAlert', 'ns' => SERVICE_NAMESPACE)),
|
184
|
+
transactionStatus
|
185
|
+
)
|
186
|
+
when :getRemittanceStatus
|
187
|
+
transactionStatus = GetStatus::TransactionStatus.new(
|
188
|
+
content_at(reply.at_xpath('//ns:getRemittanceStatusResponse/ns:transactionStatus/ns:statusCode', 'ns' => SERVICE_NAMESPACE)),
|
189
|
+
content_at(reply.at_xpath('//ns:getRemittanceStatusResponse/ns:transactionStatus/ns:subStatusCode', 'ns' => SERVICE_NAMESPACE)),
|
190
|
+
content_at(reply.at_xpath('//ns:getRemittanceStatusResponse/ns:transactionStatus/ns:bankReferenceNo', 'ns' => SERVICE_NAMESPACE)),
|
191
|
+
content_at(reply.at_xpath('//ns:getRemittanceStatusResponse/ns:transactionStatus/ns:beneficiaryReferenceNo', 'ns' => SERVICE_NAMESPACE))
|
192
|
+
)
|
193
|
+
return GetStatus::Result.new(
|
194
|
+
content_at(reply.at_xpath('//ns:getRemittanceStatusResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
|
195
|
+
content_at(reply.at_xpath('//ns:getRemittanceStatusResponse/ns:transferType', 'ns' => SERVICE_NAMESPACE)),
|
196
|
+
content_at(reply.at_xpath('//ns:getRemittanceStatusResponse/ns:reqTransferType', 'ns' => SERVICE_NAMESPACE)),
|
197
|
+
content_at(reply.at_xpath('//ns:getRemittanceStatusResponse/ns:transactionDate', 'ns' => SERVICE_NAMESPACE)),
|
198
|
+
content_at(reply.at_xpath('//ns:getRemittanceStatusResponse/ns:transferAmount', 'ns' => SERVICE_NAMESPACE)),
|
199
|
+
content_at(reply.at_xpath('//ns:getRemittanceStatusResponse/ns:transferCurrencyCode', 'ns' => SERVICE_NAMESPACE)),
|
200
|
+
transactionStatus
|
201
|
+
)
|
202
|
+
when :getBalance
|
203
|
+
return GetBalance::Result.new(
|
204
|
+
content_at(reply.at_xpath('//ns:getBalanceResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
|
205
|
+
content_at(reply.at_xpath('//ns:getBalanceResponse/ns:accountCurrencyCode', 'ns' => SERVICE_NAMESPACE)),
|
206
|
+
content_at(reply.at_xpath('//ns:getBalanceResponse/ns:accountBalanceAmount', 'ns' => SERVICE_NAMESPACE)),
|
207
|
+
content_at(reply.at_xpath('//ns:getBalanceResponse/ns:lowBalanceAlert', 'ns' => SERVICE_NAMESPACE))
|
208
|
+
)
|
209
|
+
when :getTransactions
|
210
|
+
txnsArray = Array.new
|
211
|
+
i = 1
|
212
|
+
numTxns = content_at(reply.at_xpath('//ns:getTransactionsResponse/ns:numTransactions', 'ns' => SERVICE_NAMESPACE)).to_i
|
213
|
+
until i > numTxns
|
214
|
+
txnsArray << GetTransactions::Transaction.new(
|
215
|
+
content_at(reply.at_xpath("//ns:getTransactionsResponse/ns:transactionsArray/ns:transaction[#{i}]/ns:transactionDateTime", 'ns' => SERVICE_NAMESPACE)),
|
216
|
+
content_at(reply.at_xpath("//ns:getTransactionsResponse/ns:transactionsArray/ns:transaction[#{i}]/ns:transactionType", 'ns' => SERVICE_NAMESPACE)),
|
217
|
+
content_at(reply.at_xpath("//ns:getTransactionsResponse/ns:transactionsArray/ns:transaction[#{i}]/ns:amount", 'ns' => SERVICE_NAMESPACE)),
|
218
|
+
content_at(reply.at_xpath("//ns:getTransactionsResponse/ns:transactionsArray/ns:transaction[#{i}]/ns:narrative", 'ns' => SERVICE_NAMESPACE)),
|
219
|
+
content_at(reply.at_xpath("//ns:getTransactionsResponse/ns:transactionsArray/ns:transaction[#{i}]/ns:referenceNo", 'ns' => SERVICE_NAMESPACE)),
|
220
|
+
content_at(reply.at_xpath("//ns:getTransactionsResponse/ns:transactionsArray/ns:transaction[#{i}]/ns:balance", 'ns' => SERVICE_NAMESPACE))
|
221
|
+
)
|
222
|
+
i = i + 1;
|
223
|
+
end;
|
224
|
+
transactionsArray = GetTransactions::TransactionsArray.new(txnsArray)
|
225
|
+
return GetTransactions::Result.new(
|
226
|
+
content_at(reply.at_xpath('//ns:getTransactionsResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
|
227
|
+
content_at(reply.at_xpath('//ns:getTransactionsResponse/ns:openingBalance', 'ns' => SERVICE_NAMESPACE)),
|
228
|
+
content_at(reply.at_xpath('//ns:getTransactionsResponse/ns:numDebits', 'ns' => SERVICE_NAMESPACE)),
|
229
|
+
content_at(reply.at_xpath('//ns:getTransactionsResponse/ns:numCredits', 'ns' => SERVICE_NAMESPACE)),
|
230
|
+
content_at(reply.at_xpath('//ns:getTransactionsResponse/ns:closingBalance', 'ns' => SERVICE_NAMESPACE)),
|
231
|
+
content_at(reply.at_xpath('//ns:getTransactionsResponse/ns:numTransactions', 'ns' => SERVICE_NAMESPACE)),
|
232
|
+
transactionsArray
|
233
|
+
)
|
234
|
+
end
|
235
|
+
end
|
236
|
+
end
|
237
|
+
|
238
|
+
def url
|
239
|
+
return '/DomesticRemittanceByPartnerService'
|
240
|
+
end
|
241
|
+
end
|
242
|
+
end
|
@@ -23,6 +23,12 @@ module ApiBanking
|
|
23
23
|
Result = Struct.new(:version, :transferType, :reqTransferType, :transactionDate, :transferAmount, :transferCurrencyCode, :transactionStatus)
|
24
24
|
end
|
25
25
|
|
26
|
+
#getBalance
|
27
|
+
module GetBalance
|
28
|
+
Request = Struct.new(:version, :appID, :customerID, :AccountNumber)
|
29
|
+
Result = Struct.new(:Version, :accountCurrencyCode, :accountBalanceAmount, :lowBalanceAlert)
|
30
|
+
end
|
31
|
+
|
26
32
|
class << self
|
27
33
|
attr_accessor :configuration
|
28
34
|
end
|
@@ -93,6 +99,19 @@ module ApiBanking
|
|
93
99
|
end
|
94
100
|
parse_reply(:getStatus, reply)
|
95
101
|
end
|
102
|
+
|
103
|
+
def self.get_balance(request)
|
104
|
+
reply = do_remote_call do |xml|
|
105
|
+
xml.getBalance("xmlns:ns" => SERVICE_NAMESPACE ) do
|
106
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
107
|
+
xml['ns'].version SERVICE_VERSION
|
108
|
+
xml['ns'].appID request.appID
|
109
|
+
xml['ns'].customerID request.customerID
|
110
|
+
xml['ns'].AccountNumber request.AccountNumber
|
111
|
+
end
|
112
|
+
end
|
113
|
+
parse_reply(:getBalance, reply)
|
114
|
+
end
|
96
115
|
|
97
116
|
private
|
98
117
|
|
@@ -128,13 +147,20 @@ module ApiBanking
|
|
128
147
|
content_at(reply.at_xpath('//ns:getStatusResponse/ns:transactionStatus/ns:beneficiaryReferenceNo', 'ns' => SERVICE_NAMESPACE))
|
129
148
|
)
|
130
149
|
return GetStatus::Result.new(
|
131
|
-
content_at(reply.at_xpath('//ns:getStatusResponse
|
150
|
+
content_at(reply.at_xpath('//ns:getStatusResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
|
132
151
|
content_at(reply.at_xpath('//ns:getStatusResponse/ns:transferType', 'ns' => SERVICE_NAMESPACE)),
|
133
152
|
content_at(reply.at_xpath('//ns:getStatusResponse/ns:reqTransferType', 'ns' => SERVICE_NAMESPACE)),
|
134
153
|
content_at(reply.at_xpath('//ns:getStatusResponse/ns:transactionDate', 'ns' => SERVICE_NAMESPACE)),
|
135
154
|
content_at(reply.at_xpath('//ns:getStatusResponse/ns:transferAmount', 'ns' => SERVICE_NAMESPACE)),
|
136
155
|
content_at(reply.at_xpath('//ns:getStatusResponse/ns:transferCurrencyCode', 'ns' => SERVICE_NAMESPACE)),
|
137
156
|
transactionStatus
|
157
|
+
)
|
158
|
+
when :getBalance
|
159
|
+
return GetBalance::Result.new(
|
160
|
+
content_at(reply.at_xpath('//ns:getBalanceResponse/ns:Version', 'ns' => SERVICE_NAMESPACE)),
|
161
|
+
content_at(reply.at_xpath('//ns:getBalanceResponse/ns:accountCurrencyCode', 'ns' => SERVICE_NAMESPACE)),
|
162
|
+
content_at(reply.at_xpath('//ns:getBalanceResponse/ns:accountBalanceAmount', 'ns' => SERVICE_NAMESPACE)),
|
163
|
+
content_at(reply.at_xpath('//ns:getBalanceResponse/ns:lowBalanceAlert', 'ns' => SERVICE_NAMESPACE))
|
138
164
|
)
|
139
165
|
end
|
140
166
|
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
module ApiBanking
|
2
|
+
class InstantCreditService < SoapClient
|
3
|
+
|
4
|
+
SERVICE_NAMESPACE = 'http://www.quantiguous.com/services'
|
5
|
+
SERVICE_VERSION = 1
|
6
|
+
|
7
|
+
attr_accessor :request, :result
|
8
|
+
|
9
|
+
#payNow
|
10
|
+
module PayNow
|
11
|
+
InvoiceDetail = Struct.new(:invoiceNo, :invoiceDate, :dueDate, :invoiceAmount)
|
12
|
+
Request = Struct.new(:version, :uniqueRequestNo, :customerID, :appID, :supplierCode, :invoiceDetail, :discountedAmount, :feeAmount)
|
13
|
+
Result = Struct.new(:version, :requestReferenceNo, :creditReferenceNo)
|
14
|
+
end
|
15
|
+
|
16
|
+
#getStatus
|
17
|
+
module GetStatus
|
18
|
+
Request = Struct.new(:version, :appID, :customerID, :requestReferenceNo)
|
19
|
+
Status = Struct.new(:statusCode, :subStatusCode, :subStatusText)
|
20
|
+
Result = Struct.new(:version, :requestReferenceNo, :status, :creditReferenceNo)
|
21
|
+
end
|
22
|
+
|
23
|
+
class << self
|
24
|
+
attr_accessor :configuration
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.configure
|
28
|
+
self.configuration ||= Configuration.new
|
29
|
+
yield(configuration)
|
30
|
+
end
|
31
|
+
|
32
|
+
class Configuration
|
33
|
+
attr_accessor :environment, :proxy, :timeout
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.pay_now(request)
|
37
|
+
reply = do_remote_call do |xml|
|
38
|
+
xml.payNow("xmlns:ns" => SERVICE_NAMESPACE ) do
|
39
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
40
|
+
xml['ns'].version SERVICE_VERSION
|
41
|
+
xml['ns'].uniqueRequestNo request.uniqueRequestNo
|
42
|
+
xml['ns'].customerID request.customerID
|
43
|
+
xml['ns'].appID request.appID
|
44
|
+
xml['ns'].supplierCode request.supplierCode
|
45
|
+
xml['ns'].invoiceDetail do |xml|
|
46
|
+
xml.invoiceNo request.invoiceDetail.invoiceNo
|
47
|
+
xml.invoiceDate request.invoiceDetail.invoiceDate
|
48
|
+
xml.dueDate request.invoiceDetail.dueDate
|
49
|
+
xml.invoiceAmount request.invoiceDetail.invoiceAmount
|
50
|
+
end
|
51
|
+
xml.discountedAmount request.discountedAmount
|
52
|
+
xml.feeAmount request.feeAmount
|
53
|
+
end
|
54
|
+
end
|
55
|
+
parse_reply(:payNow, reply)
|
56
|
+
end
|
57
|
+
|
58
|
+
|
59
|
+
def self.get_status(request)
|
60
|
+
reply = do_remote_call do |xml|
|
61
|
+
xml.getStatus("xmlns:ns" => SERVICE_NAMESPACE ) do
|
62
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
63
|
+
xml['ns'].version SERVICE_VERSION
|
64
|
+
xml['ns'].customerID request.customerID
|
65
|
+
xml['ns'].appID request.appID
|
66
|
+
xml['ns'].requestReferenceNo request.requestReferenceNo
|
67
|
+
end
|
68
|
+
end
|
69
|
+
parse_reply(:getStatus, reply)
|
70
|
+
end
|
71
|
+
|
72
|
+
private
|
73
|
+
|
74
|
+
def self.uri()
|
75
|
+
return '/InstantCreditService'
|
76
|
+
end
|
77
|
+
|
78
|
+
def self.parse_reply(operationName, reply)
|
79
|
+
if reply.kind_of?Fault
|
80
|
+
return reply
|
81
|
+
else
|
82
|
+
case operationName
|
83
|
+
when :payNow
|
84
|
+
return PayNow::Result.new(
|
85
|
+
content_at(reply.at_xpath('//ns:payNowResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
|
86
|
+
content_at(reply.at_xpath('//ns:payNowResponse/ns:requestReferenceNo', 'ns' => SERVICE_NAMESPACE)),
|
87
|
+
content_at(reply.at_xpath('//ns:payNowResponse/ns:creditReferenceNo', 'ns' => SERVICE_NAMESPACE))
|
88
|
+
)
|
89
|
+
when :getStatus
|
90
|
+
status = GetStatus::Status.new(
|
91
|
+
content_at(reply.at_xpath('//ns:getStatusResponse/ns:status/ns:statusCode', 'ns' => SERVICE_NAMESPACE)),
|
92
|
+
content_at(reply.at_xpath('//ns:getStatusResponse/ns:status/ns:subStatusCode', 'ns' => SERVICE_NAMESPACE)),
|
93
|
+
content_at(reply.at_xpath('//ns:getStatusResponse/ns:status/ns:subStatusText', 'ns' => SERVICE_NAMESPACE))
|
94
|
+
)
|
95
|
+
return GetStatus::Result.new(
|
96
|
+
content_at(reply.at_xpath('//ns:getStatusResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
|
97
|
+
content_at(reply.at_xpath('//ns:getStatusResponse/ns:requestReferenceNo', 'ns' => SERVICE_NAMESPACE)),
|
98
|
+
status,
|
99
|
+
content_at(reply.at_xpath('//ns:getStatusResponse/ns:creditReferenceNo', 'ns' => SERVICE_NAMESPACE))
|
100
|
+
)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def url
|
106
|
+
return '/InstantCreditService'
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
110
|
+
end
|
@@ -5,6 +5,35 @@ module ApiBanking
|
|
5
5
|
SERVICE_VERSION = 1
|
6
6
|
|
7
7
|
attr_accessor :request, :result
|
8
|
+
|
9
|
+
module AddBeneficiary
|
10
|
+
Request = Struct.new(:uniqueRequestNo, :appID, :customerID, :beneficiaryMobileNo, :beneficiaryName, :beneficiaryAddress)
|
11
|
+
Address = Struct.new(:addressLine, :cityName, :postalCode)
|
12
|
+
|
13
|
+
Result = Struct.new(:uniqueResponseNo)
|
14
|
+
end
|
15
|
+
|
16
|
+
module CancelTransfer
|
17
|
+
Request = Struct.new(:uniqueRequestNo, :appID, :customerID, :initiateTransferRequestNo, :reasonToCancel)
|
18
|
+
Result = Struct.new(:uniqueResponseNo, :cancelResult)
|
19
|
+
CancelResult = Struct.new(:imtReferenceNo, :bankReferenceNo)
|
20
|
+
end
|
21
|
+
|
22
|
+
module DeleteBeneficiary
|
23
|
+
Request = Struct.new(:uniqueRequestNo, :appID, :customerID, :beneficiaryMobileNo)
|
24
|
+
|
25
|
+
Result = Struct.new(:uniqueResponseNo)
|
26
|
+
end
|
27
|
+
|
28
|
+
module GetBeneficiaries
|
29
|
+
Request = Struct.new(:uniqueRequestNo, :appID, :customerID, :dateRange, :numBeneficiaries)
|
30
|
+
|
31
|
+
DateRange = Struct.new(:fromDate, :toDate)
|
32
|
+
BeneficiariesArray = Struct.new(:beneficiary)
|
33
|
+
Beneficiary = Struct.new(:beneficiaryName, :beneficiaryMobileNo, :registrationDate, :addressLine, :postalCode)
|
34
|
+
|
35
|
+
Result = Struct.new(:numBeneficiaries, :beneficiariesArray)
|
36
|
+
end
|
8
37
|
|
9
38
|
#transfer
|
10
39
|
module InitiateTransfer
|
@@ -43,6 +72,80 @@ module ApiBanking
|
|
43
72
|
|
44
73
|
parse_reply(:initiateTransfer, reply)
|
45
74
|
end
|
75
|
+
|
76
|
+
def self.add_beneficiary(request)
|
77
|
+
reply = do_remote_call do |xml|
|
78
|
+
xml.addBeneficiary("xmlns:ns" => SERVICE_NAMESPACE ) do
|
79
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
80
|
+
xml['ns'].version SERVICE_VERSION
|
81
|
+
xml['ns'].uniqueRequestNo request.uniqueRequestNo
|
82
|
+
xml['ns'].appID request.appID
|
83
|
+
xml['ns'].customerID request.customerID
|
84
|
+
xml['ns'].beneficiaryMobileNo request.beneficiaryMobileNo
|
85
|
+
xml['ns'].beneficiaryName request.beneficiaryName
|
86
|
+
xml['ns'].beneficiaryAddress do |xml|
|
87
|
+
if request.beneficiaryAddress.kind_of? AddBeneficiary::Address
|
88
|
+
xml.addressLine request.beneficiaryAddress.addressLine
|
89
|
+
xml.cityName request.beneficiaryAddress.cityName unless request.beneficiaryAddress.cityName.nil?
|
90
|
+
xml.postalCode request.beneficiaryAddress.postalCode unless request.beneficiaryAddress.postalCode.nil?
|
91
|
+
else
|
92
|
+
xml.addressLine request.beneficiaryAddress
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
parse_reply(:addBeneficiary, reply)
|
99
|
+
end
|
100
|
+
|
101
|
+
def self.delete_beneficiary(request)
|
102
|
+
reply = do_remote_call do |xml|
|
103
|
+
xml.deleteBeneficiary("xmlns:ns" => SERVICE_NAMESPACE ) do
|
104
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
105
|
+
xml['ns'].version SERVICE_VERSION
|
106
|
+
xml['ns'].uniqueRequestNo request.uniqueRequestNo
|
107
|
+
xml['ns'].appID request.appID
|
108
|
+
xml['ns'].customerID request.customerID
|
109
|
+
xml['ns'].beneficiaryMobileNo request.beneficiaryMobileNo
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
parse_reply(:deleteBeneficiary, reply)
|
114
|
+
end
|
115
|
+
|
116
|
+
def self.get_beneficiaries(request)
|
117
|
+
reply = do_remote_call do |xml|
|
118
|
+
xml.getBeneficiaries("xmlns:ns" => SERVICE_NAMESPACE ) do
|
119
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
120
|
+
xml['ns'].version SERVICE_VERSION
|
121
|
+
xml['ns'].uniqueRequestNo request.uniqueRequestNo
|
122
|
+
xml['ns'].appID request.appID
|
123
|
+
xml['ns'].customerID request.customerID
|
124
|
+
xml.dateRange do |xml|
|
125
|
+
xml.fromDate request.dateRange.fromDate unless request.dateRange.fromDate.nil?
|
126
|
+
xml.toDate request.dateRange.toDate unless request.dateRange.toDate.nil?
|
127
|
+
end
|
128
|
+
xml['ns'].numBeneficiaries request.numBeneficiaries
|
129
|
+
end
|
130
|
+
end
|
131
|
+
parse_reply(:getBeneficiaries, reply)
|
132
|
+
end
|
133
|
+
|
134
|
+
def self.cancel_transfer(request)
|
135
|
+
reply = do_remote_call do |xml|
|
136
|
+
xml.cancelTransfer("xmlns:ns" => SERVICE_NAMESPACE ) do
|
137
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
138
|
+
xml['ns'].version SERVICE_VERSION
|
139
|
+
xml['ns'].uniqueRequestNo request.uniqueRequestNo
|
140
|
+
xml['ns'].appID request.appID
|
141
|
+
xml['ns'].customerID request.customerID
|
142
|
+
xml['ns'].initiateTransferRequestNo request.initiateTransferRequestNo
|
143
|
+
xml['ns'].reasonToCancel request.reasonToCancel
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
parse_reply(:deleteBeneficiary, reply)
|
148
|
+
end
|
46
149
|
|
47
150
|
private
|
48
151
|
|
@@ -61,6 +164,43 @@ module ApiBanking
|
|
61
164
|
content_at(reply.at_xpath('//ns:initiateTransferResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE)),
|
62
165
|
transferResult
|
63
166
|
)
|
167
|
+
when :addBeneficiary
|
168
|
+
return AddBeneficiary::Result.new(
|
169
|
+
content_at(reply.at_xpath('//ns:addBeneficiaryResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE)),
|
170
|
+
)
|
171
|
+
when :deleteBeneficiary
|
172
|
+
return DeleteBeneficiary::Result.new(
|
173
|
+
content_at(reply.at_xpath('//ns:deleteBeneficiaryResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE)),
|
174
|
+
)
|
175
|
+
when :getBeneficiaries
|
176
|
+
beneficiariesArray = Array.new
|
177
|
+
i = 1
|
178
|
+
numBeneficiaries = content_at(reply.at_xpath('//ns:getBeneficiariesResponse/ns:numBeneficiaries', 'ns' => SERVICE_NAMESPACE)).to_i
|
179
|
+
until i > numBeneficiaries
|
180
|
+
BeneficiariesArray << getBeneficiaries::Beneficiary.new(
|
181
|
+
content_at(reply.at_xpath("//ns:getBeneficiariesResponse/ns:BeneficiariesArray/ns:beneficiary[#{i}]/ns:beneficiaryName", 'ns' => SERVICE_NAMESPACE)),
|
182
|
+
content_at(reply.at_xpath("//ns:getBeneficiariesResponse/ns:BeneficiariesArray/ns:beneficiary[#{i}]/ns:beneficiaryMobileNo", 'ns' => SERVICE_NAMESPACE)),
|
183
|
+
content_at(reply.at_xpath("//ns:getBeneficiariesResponse/ns:BeneficiariesArray/ns:beneficiary[#{i}]/ns:registrationDate", 'ns' => SERVICE_NAMESPACE)),
|
184
|
+
content_at(reply.at_xpath("//ns:getBeneficiariesResponse/ns:BeneficiariesArray/ns:beneficiary[#{i}]/ns:addressLine", 'ns' => SERVICE_NAMESPACE)),
|
185
|
+
content_at(reply.at_xpath("//ns:getBeneficiariesResponse/ns:BeneficiariesArray/ns:beneficiary[#{i}]/ns:postalCode", 'ns' => SERVICE_NAMESPACE))
|
186
|
+
)
|
187
|
+
i = i + 1;
|
188
|
+
end;
|
189
|
+
beneArray = getBeneficiaries::BeneficiariesArray.new(beneficiariesArray)
|
190
|
+
return getBeneficiaries::Result.new(
|
191
|
+
content_at(reply.at_xpath('//ns:getBeneficiariesResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
|
192
|
+
content_at(reply.at_xpath('//ns:getBeneficiariesResponse/ns:numBeneficiaries', 'ns' => SERVICE_NAMESPACE)),
|
193
|
+
beneArray
|
194
|
+
)
|
195
|
+
when :cancelTransfer
|
196
|
+
cancelResult = CancelTransfer::CancelResult.new(
|
197
|
+
content_at(reply.at_xpath('//ns:cancelTransferResponse/ns:cancelResult/ns:imtReferenceNo', 'ns' => SERVICE_NAMESPACE)),
|
198
|
+
content_at(reply.at_xpath('//ns:cancelTransferResponse/ns:cancelResult/ns:bankReferenceNo', 'ns' => SERVICE_NAMESPACE))
|
199
|
+
)
|
200
|
+
return CancelTransfer::Result.new(
|
201
|
+
content_at(reply.at_xpath('//ns:cancelTransferResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE)),
|
202
|
+
cancelResult
|
203
|
+
)
|
64
204
|
end
|
65
205
|
end
|
66
206
|
end
|
@@ -0,0 +1,396 @@
|
|
1
|
+
module ApiBanking
|
2
|
+
class NotificationService < SoapClient
|
3
|
+
|
4
|
+
SERVICE_NAMESPACE = 'http://www.quantiguous.com/services'
|
5
|
+
SERVICE_VERSION = 1
|
6
|
+
|
7
|
+
attr_accessor :request, :result
|
8
|
+
|
9
|
+
#getTopics
|
10
|
+
module GetTopics
|
11
|
+
ReqCriteria = Struct.new(:topicGroup, :subscriber)
|
12
|
+
Subscriber = Struct.new(:customerID, :subscribed, :unsubscribed)
|
13
|
+
Request = Struct.new(:version, :appID, :criteria)
|
14
|
+
|
15
|
+
TopicsArray = Struct.new(:topic)
|
16
|
+
Topic = Struct.new(:topicName, :topicDisplayName, :topicGroup, :needsSubscription, :notifyByEmail, :notifyBySMS, :canBeBatched, :subscriptionProvider, :criteriaDefinitionArray, :subscription)
|
17
|
+
CriteriaDefinitionArray = Struct.new(:criteriaDefinition)
|
18
|
+
CriteriaDefinition = Struct.new(:name, :valueDataType, :condition)
|
19
|
+
Subscription = Struct.new(:subscribedAt, :criteriaArray)
|
20
|
+
CriteriaArray = Struct.new(:criteria)
|
21
|
+
RepCriteria = Struct.new(:name, :value)
|
22
|
+
Value = Struct.new(:decimalValue, :dateValue, :stringValue)
|
23
|
+
Result = Struct.new(:version, :topicsArray)
|
24
|
+
end
|
25
|
+
|
26
|
+
#setSubscription
|
27
|
+
module SetSubscription
|
28
|
+
Request = Struct.new(:version, :appID, :topicName, :notifyByEmail, :notifyBySMS, :subscriber, :criteriaArray)
|
29
|
+
Subscriber = Struct.new(:customerID, :accountNo, :contact)
|
30
|
+
Contact = Struct.new(:emailID, :mobileNo)
|
31
|
+
CriteriaArray = Struct.new(:criteria)
|
32
|
+
Criteria = Struct.new(:name, :value)
|
33
|
+
Value = Struct.new(:decimalValue, :dateValue, :stringValue)
|
34
|
+
Result = Struct.new(:version, :subscribedAt)
|
35
|
+
end
|
36
|
+
|
37
|
+
#deleteSubscription
|
38
|
+
module DeleteSubscription
|
39
|
+
Request = Struct.new(:version, :appID, :topicName, :subscriber)
|
40
|
+
Subscriber = Struct.new(:customerID, :accountNo)
|
41
|
+
Result = Struct.new(:version, :subscribedAt)
|
42
|
+
end
|
43
|
+
|
44
|
+
#sendMessage
|
45
|
+
module SendMessage
|
46
|
+
Request = Struct.new(:version, :appID, :topicName, :recipient, :mergeVarArray, :criteriaArray, :referenceNo, :sendAt, :attachment)
|
47
|
+
Recipient = Struct.new(:subscriber, :guest)
|
48
|
+
Subscriber = Struct.new(:customerID, :accountNo, :contact)
|
49
|
+
Contact = Struct.new(:emailID, :mobileNo)
|
50
|
+
Guest = Struct.new(:emailID, :mobileNo)
|
51
|
+
MergeVarArray = Struct.new(:mergeVar)
|
52
|
+
MergeVar = Struct.new(:name, :content)
|
53
|
+
Content = Struct.new(:stringContent, :dateContent, :dateTimeContent, :decimalContent)
|
54
|
+
CriteriaArray = Struct.new(:criteria)
|
55
|
+
Criteria = Struct.new(:name, :value)
|
56
|
+
Value = Struct.new(:decimalValue, :dateValue, :stringValue)
|
57
|
+
Attachment = Struct.new(:filePath, :contentType)
|
58
|
+
Result = Struct.new(:version, :uniqueResponseNo)
|
59
|
+
end
|
60
|
+
|
61
|
+
#dispatchMessage
|
62
|
+
module DispatchMessage
|
63
|
+
Request = Struct.new(:version, :appID, :topicName, :recipient, :criteriaArray, :message, :referenceNo, :sendAt)
|
64
|
+
Recipient = Struct.new(:subscriber, :guest)
|
65
|
+
Subscriber = Struct.new(:customerID, :accountNo, :contact)
|
66
|
+
Contact = Struct.new(:emailID, :mobileNo)
|
67
|
+
Guest = Struct.new(:emailID, :mobileNo)
|
68
|
+
CriteriaArray = Struct.new(:criteria)
|
69
|
+
Criteria = Struct.new(:name, :value)
|
70
|
+
Value = Struct.new(:decimalValue, :dateValue, :stringValue)
|
71
|
+
Message = Struct.new(:smsText, :email)
|
72
|
+
Email = Struct.new(:subject, :bodyContent, :attachment)
|
73
|
+
Attachment = Struct.new(:filePath, :contentType)
|
74
|
+
Result = Struct.new(:version, :uniqueResponseNo)
|
75
|
+
end
|
76
|
+
|
77
|
+
class << self
|
78
|
+
attr_accessor :configuration
|
79
|
+
end
|
80
|
+
|
81
|
+
def self.configure
|
82
|
+
self.configuration ||= Configuration.new
|
83
|
+
yield(configuration)
|
84
|
+
end
|
85
|
+
|
86
|
+
class Configuration
|
87
|
+
attr_accessor :environment, :proxy, :timeout
|
88
|
+
end
|
89
|
+
|
90
|
+
def self.getTopics(request)
|
91
|
+
reply = do_remote_call do |xml|
|
92
|
+
xml.getTopics("xmlns:ns" => SERVICE_NAMESPACE ) do
|
93
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
94
|
+
xml['ns'].version SERVICE_VERSION
|
95
|
+
xml['ns'].appID request.appID
|
96
|
+
unless request.criteria.nil?
|
97
|
+
xml['ns'].criteria do |xml|
|
98
|
+
xml.topicGroup request.criteria.topicGroup unless request.criteria.topicGroup.nil?
|
99
|
+
unless request.criteria.subscriber.nil?
|
100
|
+
xml.subscriber do |xml|
|
101
|
+
xml.customerID request.criteria.subscriber.customerID unless request.criteria.subscriber.customerID.nil?
|
102
|
+
xml.subscribed request.criteria.subscriber.subscribed unless request.criteria.subscriber.subscribed.nil?
|
103
|
+
xml.unsubscribed request.criteria.subscriber.unsubscribed unless request.criteria.subscriber.unsubscribed.nil?
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
parse_reply(:getTopics, reply)
|
111
|
+
end
|
112
|
+
|
113
|
+
def self.setSubscription(request)
|
114
|
+
reply = do_remote_call do |xml|
|
115
|
+
xml.setSubscription("xmlns:ns" => SERVICE_NAMESPACE ) do
|
116
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
117
|
+
xml['ns'].version SERVICE_VERSION
|
118
|
+
xml['ns'].appID request.appID
|
119
|
+
xml['ns'].topicName request.topicName
|
120
|
+
xml['ns'].notifyByEmail request.notifyByEmail
|
121
|
+
xml['ns'].notifyBySMS request.notifyBySMS
|
122
|
+
xml['ns'].subscriber do |xml|
|
123
|
+
xml.customerID request.subscriber.customerID
|
124
|
+
xml.accountNo request.subscriber.accountNo
|
125
|
+
unless request.subscriber.contact.nil?
|
126
|
+
xml.contact do |xml|
|
127
|
+
xml.emailID request.subscriber.contact.emailID unless request.subscriber.contact.emailID.nil?
|
128
|
+
xml.mobileNo request.subscriber.contact.mobileNo unless request.subscriber.contact.mobileNo.nil?
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
unless request.criteriaArray.nil?
|
133
|
+
xml['ns'].criteriaArray do |xml|
|
134
|
+
unless request.criteriaArray.criteria.nil?
|
135
|
+
xml.criteria do |xml|
|
136
|
+
xml.name request.criteriaArray.criteria.name
|
137
|
+
xml.value do |xml|
|
138
|
+
xml.decimalValue request.criteriaArray.criteria.value.decimalValue unless request.criteriaArray.criteria.value.decimalValue.nil?
|
139
|
+
xml.dateValue request.criteriaArray.criteria.value.dateValue unless request.criteriaArray.criteria.value.dateValue.nil?
|
140
|
+
xml.stringValue request.criteriaArray.criteria.value.stringValue unless request.criteriaArray.criteria.value.stringValue.nil?
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
parse_reply(:setSubscription, reply)
|
149
|
+
end
|
150
|
+
|
151
|
+
def self.deleteSubscription(request)
|
152
|
+
reply = do_remote_call do |xml|
|
153
|
+
xml.deleteSubscription("xmlns:ns" => SERVICE_NAMESPACE ) do
|
154
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
155
|
+
xml['ns'].version SERVICE_VERSION
|
156
|
+
xml['ns'].appID request.appID
|
157
|
+
xml['ns'].topicName request.topicName
|
158
|
+
unless request.subscriber.nil?
|
159
|
+
xml.subscriber do |xml|
|
160
|
+
xml.customerID request.subscriber.customerID
|
161
|
+
xml.accountNo request.subscriber.accountNo unless request.subscriber.accountNo.nil?
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
parse_reply(:deleteSubscription, reply)
|
167
|
+
end
|
168
|
+
|
169
|
+
def self.sendMessage(request)
|
170
|
+
reply = do_remote_call do |xml|
|
171
|
+
xml.sendMessage("xmlns:ns" => SERVICE_NAMESPACE ) do
|
172
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
173
|
+
xml['ns'].version SERVICE_VERSION
|
174
|
+
xml['ns'].appID request.appID
|
175
|
+
xml['ns'].topicName request.topicName
|
176
|
+
xml.recipient do |xml|
|
177
|
+
xml.subscriber do |xml|
|
178
|
+
xml.customerID request.recipient.subscriber.customerID
|
179
|
+
xml.accountNo request.recipient.subscriber.accountNo unless request.recipient.subscriber.accountNo.nil?
|
180
|
+
unless request.recipient.subscriber.contact.nil?
|
181
|
+
xml.contact do |xml|
|
182
|
+
xml.emailID request.recipient.subscriber.contact.emailID unless request.recipient.subscriber.contact.emailID.nil?
|
183
|
+
xml.mobileNo request.recipient.subscriber.contact.mobileNo unless request.recipient.subscriber.contact.mobileNo.nil?
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
187
|
+
unless request.recipient.guest.nil?
|
188
|
+
xml.guest do |xml|
|
189
|
+
xml.emailID request.recipient.guest.emailID unless request.recipient.guest.emailID.nil?
|
190
|
+
xml.mobileNo request.recipient.guest.mobileNo unless request.recipient.guest.mobileNo.nil?
|
191
|
+
end
|
192
|
+
end
|
193
|
+
end
|
194
|
+
unless request.mergeVarArray.nil?
|
195
|
+
xml.mergeVarArray do |xml|
|
196
|
+
xml.mergeVar do |xml|
|
197
|
+
xml.name request.mergeVarArray.mergeVar.name
|
198
|
+
xml.content do |xml|
|
199
|
+
xml.stringContent request.mergeVarArray.mergeVar.content.stringContent unless request.mergeVarArray.mergeVar.content.stringContent.nil?
|
200
|
+
xml.dateContent request.mergeVarArray.mergeVar.content.dateContent unless request.mergeVarArray.mergeVar.content.dateContent.nil?
|
201
|
+
xml.dateTimeContent request.mergeVarArray.mergeVar.content.dateTimeContent unless request.mergeVarArray.mergeVar.content.dateTimeContent.nil?
|
202
|
+
xml.decimalContent request.mergeVarArray.mergeVar.content.decimalContent unless request.mergeVarArray.mergeVar.content.decimalContent.nil?
|
203
|
+
end
|
204
|
+
end
|
205
|
+
end
|
206
|
+
end
|
207
|
+
unless request.criteriaArray.nil?
|
208
|
+
xml.criteriaArray do |xml|
|
209
|
+
xml.criteria do |xml|
|
210
|
+
xml.name request.criteriaArray.criteria.name
|
211
|
+
xml.value do |xml|
|
212
|
+
xml.decimalValue request.criteriaArray.criteria.value.decimalValue unless request.criteriaArray.criteria.value.decimalValue.nil?
|
213
|
+
xml.dateValue request.criteriaArray.criteria.value.dateValue unless request.criteriaArray.criteria.value.dateValue.nil?
|
214
|
+
xml.stringValue request.criteriaArray.criteria.value.stringValue unless request.criteriaArray.criteria.value.stringValue.nil?
|
215
|
+
end
|
216
|
+
end
|
217
|
+
end
|
218
|
+
end
|
219
|
+
xml['ns'].referenceNo request.referenceNo unless request.referenceNo.nil?
|
220
|
+
xml['ns'].sendAt request.sendAt unless request.sendAt.nil?
|
221
|
+
unless request.attachment.nil?
|
222
|
+
xml['ns'].attachment do |xml|
|
223
|
+
xml.filePath request.attachment.filePath
|
224
|
+
xml.contentType request.attachment.contentType
|
225
|
+
end
|
226
|
+
end
|
227
|
+
end
|
228
|
+
end
|
229
|
+
parse_reply(:sendMessage, reply)
|
230
|
+
end
|
231
|
+
|
232
|
+
def self.dispatchMessage(request)
|
233
|
+
reply = do_remote_call do |xml|
|
234
|
+
xml.dispatchMessage("xmlns:ns" => SERVICE_NAMESPACE ) do
|
235
|
+
xml.parent.namespace = xml.parent.namespace_definitions.first
|
236
|
+
xml['ns'].version SERVICE_VERSION
|
237
|
+
xml['ns'].appID request.appID
|
238
|
+
xml['ns'].topicName request.topicName
|
239
|
+
xml.recipient do |xml|
|
240
|
+
xml.subscriber do |xml|
|
241
|
+
xml.customerID request.recipient.subscriber.customerID
|
242
|
+
xml.accountNo request.recipient.subscriber.accountNo unless request.recipient.subscriber.accountNo.nil?
|
243
|
+
unless request.recipient.subscriber.contact.nil?
|
244
|
+
xml.contact do |xml|
|
245
|
+
xml.emailID request.recipient.subscriber.contact.emailID unless request.recipient.subscriber.contact.emailID.nil?
|
246
|
+
xml.mobileNo request.recipient.subscriber.contact.mobileNo unless request.recipient.subscriber.contact.mobileNo.nil?
|
247
|
+
end
|
248
|
+
end
|
249
|
+
end
|
250
|
+
unless request.recipient.guest.nil?
|
251
|
+
xml.guest do |xml|
|
252
|
+
xml.emailID request.recipient.guest.emailID unless request.recipient.guest.emailID.nil?
|
253
|
+
xml.mobileNo request.recipient.guest.mobileNo unless request.recipient.guest.mobileNo.nil?
|
254
|
+
end
|
255
|
+
end
|
256
|
+
end
|
257
|
+
unless request.criteriaArray.nil?
|
258
|
+
xml.criteriaArray do |xml|
|
259
|
+
xml.criteria do |xml|
|
260
|
+
xml.name request.criteriaArray.criteria.name
|
261
|
+
xml.value do |xml|
|
262
|
+
xml.decimalValue request.criteriaArray.criteria.value.decimalValue unless request.criteriaArray.criteria.value.decimalValue.nil?
|
263
|
+
xml.dateValue request.criteriaArray.criteria.value.dateValue unless request.criteriaArray.criteria.value.dateValue.nil?
|
264
|
+
xml.stringValue request.criteriaArray.criteria.value.stringValue unless request.criteriaArray.criteria.value.stringValue.nil?
|
265
|
+
end
|
266
|
+
end
|
267
|
+
end
|
268
|
+
end
|
269
|
+
xml.message do |xml|
|
270
|
+
xml.smsText request.message.smsText unless request.message.smsText.nil?
|
271
|
+
unless request.message.email.nil?
|
272
|
+
xml.email do |xml|
|
273
|
+
xml.subject request.message.email.subject unless request.message.email.subject.nil?
|
274
|
+
xml.bodyContent request.message.email.bodyContent unless request.message.email.bodyContent.nil?
|
275
|
+
unless request.message.email.attachment.nil?
|
276
|
+
xml.attachment do |xml|
|
277
|
+
xml.filePath request.attachment.filePath
|
278
|
+
xml.contentType request.attachment.contentType
|
279
|
+
end
|
280
|
+
end
|
281
|
+
end
|
282
|
+
end
|
283
|
+
end
|
284
|
+
xml['ns'].referenceNo request.referenceNo unless request.referenceNo.nil?
|
285
|
+
xml['ns'].sendAt request.sendAt unless request.sendAt.nil?
|
286
|
+
end
|
287
|
+
end
|
288
|
+
parse_reply(:dispatchMessage, reply)
|
289
|
+
end
|
290
|
+
|
291
|
+
private
|
292
|
+
|
293
|
+
def self.uri()
|
294
|
+
return '/NotificationService'
|
295
|
+
end
|
296
|
+
|
297
|
+
def self.parse_reply(operationName, reply)
|
298
|
+
if reply.kind_of?Fault
|
299
|
+
return reply
|
300
|
+
else
|
301
|
+
case operationName
|
302
|
+
when :getTopics
|
303
|
+
tpcsArray = Array.new
|
304
|
+
criteriaDefArray = Array.new
|
305
|
+
criArray = Array.new
|
306
|
+
|
307
|
+
i = 1
|
308
|
+
numTopics = reply.xpath('//ns:getTopicsResponse/ns:topicsArray/ns:topic', 'ns' => SERVICE_NAMESPACE).count
|
309
|
+
until i > numTopics
|
310
|
+
numCriDef = reply.xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:criteriaDefinitionArray/ns:criteriaDefinition", 'ns' => SERVICE_NAMESPACE).count
|
311
|
+
j = 1
|
312
|
+
until j > numCriDef
|
313
|
+
criteriaDefArray << GetTopics::CriteriaDefinition.new(
|
314
|
+
content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:criteriaDefinitionArray/ns:criteriaDefinition[#{j}]/ns:name", 'ns' => SERVICE_NAMESPACE)),
|
315
|
+
content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:criteriaDefinitionArray/ns:criteriaDefinition[#{j}]/ns:valueDataType", 'ns' => SERVICE_NAMESPACE)),
|
316
|
+
content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:criteriaDefinitionArray/ns:criteriaDefinition[#{j}]/ns:condition", 'ns' => SERVICE_NAMESPACE))
|
317
|
+
)
|
318
|
+
j = j + 1;
|
319
|
+
end
|
320
|
+
|
321
|
+
criteriaDefinitionArray = GetTopics::CriteriaDefinitionArray.new(criteriaDefArray)
|
322
|
+
criteriaDefArray = []
|
323
|
+
|
324
|
+
numCriteria = reply.xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:subscription/ns:criteriaArray/ns:criteria", 'ns' => SERVICE_NAMESPACE).count
|
325
|
+
j = 1
|
326
|
+
until j > numCriteria
|
327
|
+
value = GetTopics::Value.new(
|
328
|
+
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)),
|
329
|
+
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)),
|
330
|
+
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))
|
331
|
+
)
|
332
|
+
criArray << GetTopics::RepCriteria.new(
|
333
|
+
content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:subscription/ns:criteriaArray/ns:criteria[#{j}]/ns:name", 'ns' => SERVICE_NAMESPACE)),
|
334
|
+
value
|
335
|
+
)
|
336
|
+
j = j + 1;
|
337
|
+
end
|
338
|
+
|
339
|
+
criteriaArray = GetTopics::CriteriaArray.new(criArray)
|
340
|
+
criArray = []
|
341
|
+
|
342
|
+
subscription = GetTopics::Subscription.new(
|
343
|
+
content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:subscription/ns:subscribedAt", 'ns' => SERVICE_NAMESPACE)),
|
344
|
+
criteriaArray
|
345
|
+
)
|
346
|
+
|
347
|
+
tpcsArray << GetTopics::Topic.new(
|
348
|
+
content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:topicName", 'ns' => SERVICE_NAMESPACE)),
|
349
|
+
content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:topicDisplayName", 'ns' => SERVICE_NAMESPACE)),
|
350
|
+
content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:topicGroup", 'ns' => SERVICE_NAMESPACE)),
|
351
|
+
content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:needsSubscription", 'ns' => SERVICE_NAMESPACE)),
|
352
|
+
content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:notifyByEmail", 'ns' => SERVICE_NAMESPACE)),
|
353
|
+
content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:notifyBySMS", 'ns' => SERVICE_NAMESPACE)),
|
354
|
+
content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:canBeBatched", 'ns' => SERVICE_NAMESPACE)),
|
355
|
+
content_at(reply.at_xpath("//ns:getTopicsResponse/ns:topicsArray/ns:topic[#{i}]/ns:subscriptionProvider", 'ns' => SERVICE_NAMESPACE)),
|
356
|
+
(criteriaDefinitionArray.criteriaDefinition.empty? ? nil : criteriaDefinitionArray),
|
357
|
+
(subscription.subscribedAt.nil? ? nil : subscription)
|
358
|
+
)
|
359
|
+
i = i + 1;
|
360
|
+
end;
|
361
|
+
|
362
|
+
topicsArray = GetTopics::TopicsArray.new(tpcsArray)
|
363
|
+
return GetTopics::Result.new(
|
364
|
+
content_at(reply.at_xpath('//ns:getTopicsResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
|
365
|
+
(topicsArray.topic.empty? ? nil : topicsArray)
|
366
|
+
)
|
367
|
+
when :setSubscription
|
368
|
+
return SetSubscription::Result.new(
|
369
|
+
content_at(reply.at_xpath('//ns:setSubscriptionResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
|
370
|
+
content_at(reply.at_xpath('//ns:setSubscriptionResponse/ns:subscribedAt', 'ns' => SERVICE_NAMESPACE))
|
371
|
+
)
|
372
|
+
when :deleteSubscription
|
373
|
+
return DeleteSubscription::Result.new(
|
374
|
+
content_at(reply.at_xpath('//ns:deleteSubscriptionResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
|
375
|
+
content_at(reply.at_xpath('//ns:deleteSubscriptionResponse/ns:subscribedAt', 'ns' => SERVICE_NAMESPACE))
|
376
|
+
)
|
377
|
+
when :sendMessage
|
378
|
+
return SendMessage::Result.new(
|
379
|
+
content_at(reply.at_xpath('//ns:sendMessageResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
|
380
|
+
content_at(reply.at_xpath('//ns:sendMessageResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE))
|
381
|
+
)
|
382
|
+
when :dispatchMessage
|
383
|
+
return DispatchMessage::Result.new(
|
384
|
+
content_at(reply.at_xpath('//ns:dispatchMessageResponse/ns:version', 'ns' => SERVICE_NAMESPACE)),
|
385
|
+
content_at(reply.at_xpath('//ns:dispatchMessageResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE))
|
386
|
+
)
|
387
|
+
end
|
388
|
+
end
|
389
|
+
end
|
390
|
+
|
391
|
+
def url
|
392
|
+
return '/NotificationService'
|
393
|
+
end
|
394
|
+
|
395
|
+
end
|
396
|
+
end
|
@@ -6,7 +6,6 @@ module ApiBanking
|
|
6
6
|
data = construct_envelope(&block)
|
7
7
|
options = {}
|
8
8
|
options[:method] = :post
|
9
|
-
puts data.to_xml
|
10
9
|
options[:body] = data.to_xml
|
11
10
|
|
12
11
|
options[:headers] = {'Content-Type' => "application/xml; charset=utf-8"}
|
@@ -42,6 +41,8 @@ module ApiBanking
|
|
42
41
|
options[:userpwd] = "#{self.configuration.environment.user}:#{self.configuration.environment.password}"
|
43
42
|
options[:headers]["X-IBM-Client-Id"] = self.configuration.environment.client_id
|
44
43
|
options[:headers]["X-IBM-Client-Secret"] = self.configuration.environment.client_secret
|
44
|
+
elsif self.configuration.environment.kind_of?ApiBanking::Environment::QG::DEMO
|
45
|
+
options[:userpwd] = "#{self.configuration.environment.user}:#{self.configuration.environment.password}"
|
45
46
|
end
|
46
47
|
end
|
47
48
|
|
@@ -96,10 +97,16 @@ module ApiBanking
|
|
96
97
|
code = content_at(reply.at_xpath('//soapenv12:Fault/soapenv12:Code/soapenv12:Subcode/soapenv12:Value', 'soapenv12' => 'http://www.w3.org/2003/05/soap-envelope'))
|
97
98
|
subcode = content_at(reply.at_xpath('//soapenv12:Fault/soapenv12:Code/soapenv12:Subcode/soapenv12:Subcode/soapenv12:Value', 'soapenv12' => 'http://www.w3.org/2003/05/soap-envelope'))
|
98
99
|
reasonText = content_at(reply.at_xpath('//soapenv12:Fault/soapenv12:Reason/soapenv12:Text', 'soapenv12' => 'http://www.w3.org/2003/05/soap-envelope'))
|
99
|
-
|
100
|
+
# detail = parse_detail(reply.at_xpath('//soapenv12:Fault/soapenv12:Detail', 'soapenv12' => 'http://www.w3.org/2003/05/soap-envelope'))
|
101
|
+
|
102
|
+
code ||= 'ns:E500' # in certain cases, a fault code isn't set by the server
|
100
103
|
return Fault.new(code, subcode, reasonText)
|
101
104
|
end
|
102
105
|
|
106
|
+
def self.parse_detail(node)
|
107
|
+
return content_at(node.at_xpath('Text')) #
|
108
|
+
end
|
109
|
+
|
103
110
|
def self.content_at(node)
|
104
111
|
node.content unless node.nil?
|
105
112
|
end
|
data/lib/api_banking/version.rb
CHANGED
data/lib/api_banking.rb
CHANGED
@@ -4,12 +4,16 @@ require "api_banking/version"
|
|
4
4
|
require_relative "api_banking/config"
|
5
5
|
require_relative "api_banking/environment/rbl/env"
|
6
6
|
require_relative "api_banking/environment/ybl/env"
|
7
|
+
require_relative "api_banking/environment/qg/env"
|
7
8
|
|
8
9
|
require_relative "api_banking/soap/fault"
|
9
10
|
require_relative "api_banking/soap/soap_client"
|
10
11
|
require_relative "api_banking/soap/fundsTransferByCustomerService"
|
11
12
|
require_relative "api_banking/soap/fundsTransferByCustomerService2"
|
12
13
|
require_relative "api_banking/soap/instantMoneyTransferService"
|
14
|
+
require_relative "api_banking/soap/domesticRemittanceByPartnerService"
|
15
|
+
require_relative "api_banking/soap/notificationService"
|
16
|
+
require_relative "api_banking/soap/instantCreditService"
|
13
17
|
|
14
18
|
require_relative "api_banking/json/json_client"
|
15
19
|
require_relative "api_banking/json/singlePayment"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: api_banking
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- akil
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-08-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,34 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: vcr
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: webmock
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: typhoeus
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -99,16 +127,20 @@ files:
|
|
99
127
|
- bin/setup
|
100
128
|
- lib/api_banking.rb
|
101
129
|
- lib/api_banking/config.rb
|
130
|
+
- lib/api_banking/environment/qg/env.rb
|
102
131
|
- lib/api_banking/environment/rbl/env.rb
|
103
132
|
- lib/api_banking/environment/rbl/uat.pem
|
104
133
|
- lib/api_banking/environment/ybl/env.rb
|
105
134
|
- lib/api_banking/environment/ybl/prd.pem
|
106
135
|
- lib/api_banking/json/json_client.rb
|
107
136
|
- lib/api_banking/json/singlePayment.rb
|
137
|
+
- lib/api_banking/soap/domesticRemittanceByPartnerService.rb
|
108
138
|
- lib/api_banking/soap/fault.rb
|
109
139
|
- lib/api_banking/soap/fundsTransferByCustomerService.rb
|
110
140
|
- lib/api_banking/soap/fundsTransferByCustomerService2.rb
|
141
|
+
- lib/api_banking/soap/instantCreditService.rb
|
111
142
|
- lib/api_banking/soap/instantMoneyTransferService.rb
|
143
|
+
- lib/api_banking/soap/notificationService.rb
|
112
144
|
- lib/api_banking/soap/soap_client.rb
|
113
145
|
- lib/api_banking/version.rb
|
114
146
|
homepage: http://apibanking.com
|