epics 2.3.0 → 2.5.0
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/.semaphore/semaphore.yml +3 -12
- data/CHANGELOG.md +13 -0
- data/epics.gemspec +5 -4
- data/lib/epics/azv.rb +9 -26
- data/lib/epics/b2b.rb +11 -3
- data/lib/epics/c2s.rb +11 -7
- data/lib/epics/c52.rb +12 -37
- data/lib/epics/c53.rb +12 -37
- data/lib/epics/c54.rb +12 -37
- data/lib/epics/c5n.rb +17 -0
- data/lib/epics/ccs.rb +11 -7
- data/lib/epics/cct.rb +9 -34
- data/lib/epics/cd1.rb +9 -26
- data/lib/epics/cdb.rb +9 -34
- data/lib/epics/cdd.rb +9 -34
- data/lib/epics/cds.rb +11 -7
- data/lib/epics/cdz.rb +12 -41
- data/lib/epics/client.rb +44 -19
- data/lib/epics/crz.rb +12 -41
- data/lib/epics/generic_request.rb +8 -3
- data/lib/epics/generic_upload_request.rb +2 -2
- data/lib/epics/haa.rb +8 -25
- data/lib/epics/hac.rb +12 -41
- data/lib/epics/header_request.rb +60 -0
- data/lib/epics/hia.rb +6 -16
- data/lib/epics/hkd.rb +8 -25
- data/lib/epics/hpb.rb +8 -18
- data/lib/epics/hpd.rb +8 -25
- data/lib/epics/htd.rb +8 -25
- data/lib/epics/ini.rb +6 -16
- data/lib/epics/letter_renderer.rb +22 -0
- data/lib/epics/ptk.rb +12 -41
- data/lib/epics/sta.rb +12 -41
- data/lib/epics/version.rb +1 -1
- data/lib/epics/vmk.rb +12 -41
- data/lib/epics/wss.rb +13 -0
- data/lib/epics/xct.rb +9 -26
- data/lib/epics/xds.rb +11 -3
- data/lib/epics/xe2.rb +13 -0
- data/lib/epics/xe3.rb +13 -0
- data/lib/epics/z52.rb +12 -37
- data/lib/epics/z53.rb +12 -37
- data/lib/epics/z54.rb +12 -37
- data/lib/epics.rb +9 -0
- data/lib/letter/ini.erb +260 -150
- data/lib/letter/locales/de.yml +19 -0
- data/lib/letter/locales/en.yml +19 -0
- data/lib/letter/locales/fr.yml +19 -0
- data/spec/fixtures/xml/swiss_credit_transfer.xml +69 -0
- data/spec/fixtures/xml/swiss_direct_debit.xml +104 -0
- data/spec/hpb_spec.rb +4 -4
- data/spec/orders/c52_spec.rb +1 -1
- data/spec/orders/c53_spec.rb +1 -1
- data/spec/orders/c54_spec.rb +1 -1
- data/spec/orders/c5n_spec.rb +9 -0
- data/spec/orders/cdz_spec.rb +1 -1
- data/spec/orders/crz_spec.rb +1 -1
- data/spec/orders/hac_spec.rb +1 -1
- data/spec/orders/ptk_spec.rb +1 -1
- data/spec/orders/sta_spec.rb +1 -1
- data/spec/orders/vmk_spec.rb +1 -1
- data/spec/orders/wss_spec.rb +9 -0
- data/spec/orders/xe2_spec.rb +17 -0
- data/spec/orders/xe3_spec.rb +17 -0
- data/spec/orders/z52_spec.rb +1 -1
- data/spec/orders/z53_spec.rb +1 -1
- data/spec/orders/z54_spec.rb +1 -1
- metadata +45 -10
data/lib/epics/client.rb
CHANGED
@@ -3,6 +3,7 @@ class Epics::Client
|
|
3
3
|
|
4
4
|
attr_accessor :passphrase, :url, :host_id, :user_id, :partner_id, :keys, :keys_content
|
5
5
|
attr_writer :iban, :bic, :name
|
6
|
+
attr_accessor :locale
|
6
7
|
|
7
8
|
def_delegators :connection, :post
|
8
9
|
|
@@ -14,6 +15,7 @@ class Epics::Client
|
|
14
15
|
self.host_id = host_id
|
15
16
|
self.user_id = user_id
|
16
17
|
self.partner_id = partner_id
|
18
|
+
self.locale = :de
|
17
19
|
end
|
18
20
|
|
19
21
|
def inspect
|
@@ -68,9 +70,12 @@ class Epics::Client
|
|
68
70
|
client
|
69
71
|
end
|
70
72
|
|
73
|
+
def letter_renderer
|
74
|
+
@letter_renderer ||= Epics::LetterRenderer.new(self)
|
75
|
+
end
|
76
|
+
|
71
77
|
def ini_letter(bankname)
|
72
|
-
|
73
|
-
ERB.new(raw).result(binding)
|
78
|
+
letter_renderer.render(bankname)
|
74
79
|
end
|
75
80
|
|
76
81
|
def save_ini_letter(bankname, path)
|
@@ -78,6 +83,10 @@ class Epics::Client
|
|
78
83
|
path
|
79
84
|
end
|
80
85
|
|
86
|
+
def header_request
|
87
|
+
@header_request ||= Epics::HeaderRequest.new(self)
|
88
|
+
end
|
89
|
+
|
81
90
|
def credit(document)
|
82
91
|
self.CCT(document)
|
83
92
|
end
|
@@ -87,7 +96,7 @@ class Epics::Client
|
|
87
96
|
end
|
88
97
|
|
89
98
|
def statements(from, to, type = :STA)
|
90
|
-
self.public_send(type, from, to)
|
99
|
+
self.public_send(type, from: from, to: to)
|
91
100
|
end
|
92
101
|
|
93
102
|
def HIA
|
@@ -137,6 +146,14 @@ class Epics::Client
|
|
137
146
|
upload(Epics::CDD, document)
|
138
147
|
end
|
139
148
|
|
149
|
+
def XE2(document)
|
150
|
+
upload(Epics::XE2, document)
|
151
|
+
end
|
152
|
+
|
153
|
+
def XE3(document)
|
154
|
+
upload(Epics::XE3, document)
|
155
|
+
end
|
156
|
+
|
140
157
|
def CDS(document)
|
141
158
|
upload(Epics::CDS, document)
|
142
159
|
end
|
@@ -158,43 +175,47 @@ class Epics::Client
|
|
158
175
|
end
|
159
176
|
|
160
177
|
def STA(from = nil, to = nil)
|
161
|
-
download(Epics::STA, from, to)
|
178
|
+
download(Epics::STA, from: from, to: to)
|
162
179
|
end
|
163
180
|
|
164
181
|
def VMK(from = nil, to = nil)
|
165
|
-
download(Epics::VMK, from, to)
|
182
|
+
download(Epics::VMK, from: from, to: to)
|
166
183
|
end
|
167
184
|
|
168
185
|
def CDZ(from = nil, to = nil)
|
169
|
-
download_and_unzip(Epics::CDZ, from, to)
|
186
|
+
download_and_unzip(Epics::CDZ, from: from, to: to)
|
170
187
|
end
|
171
188
|
|
172
189
|
def CRZ(from = nil, to = nil)
|
173
|
-
download_and_unzip(Epics::CRZ, from, to)
|
190
|
+
download_and_unzip(Epics::CRZ, from: from, to: to)
|
174
191
|
end
|
175
192
|
|
176
193
|
def C52(from, to)
|
177
|
-
download_and_unzip(Epics::C52, from, to)
|
194
|
+
download_and_unzip(Epics::C52, from: from, to: to)
|
178
195
|
end
|
179
196
|
|
180
197
|
def C53(from, to)
|
181
|
-
download_and_unzip(Epics::C53, from, to)
|
198
|
+
download_and_unzip(Epics::C53, from: from, to: to)
|
182
199
|
end
|
183
200
|
|
184
201
|
def C54(from, to)
|
185
|
-
download_and_unzip(Epics::C54, from, to)
|
202
|
+
download_and_unzip(Epics::C54, from: from, to: to)
|
203
|
+
end
|
204
|
+
|
205
|
+
def C5N(from, to)
|
206
|
+
download_and_unzip(Epics::C5N, from: from, to: to)
|
186
207
|
end
|
187
208
|
|
188
209
|
def Z52(from, to)
|
189
|
-
download_and_unzip(Epics::Z52, from, to)
|
210
|
+
download_and_unzip(Epics::Z52, from: from, to: to)
|
190
211
|
end
|
191
212
|
|
192
213
|
def Z53(from, to)
|
193
|
-
download_and_unzip(Epics::Z53, from, to)
|
214
|
+
download_and_unzip(Epics::Z53, from: from, to: to)
|
194
215
|
end
|
195
216
|
|
196
217
|
def Z54(from, to)
|
197
|
-
download_and_unzip(Epics::Z54, from, to)
|
218
|
+
download_and_unzip(Epics::Z54, from: from, to: to)
|
198
219
|
end
|
199
220
|
|
200
221
|
def HAA
|
@@ -219,11 +240,15 @@ class Epics::Client
|
|
219
240
|
end
|
220
241
|
|
221
242
|
def PTK(from, to)
|
222
|
-
download(Epics::PTK, from, to)
|
243
|
+
download(Epics::PTK, from: from, to: to)
|
223
244
|
end
|
224
245
|
|
225
246
|
def HAC(from = nil, to = nil)
|
226
|
-
download(Epics::HAC, from, to)
|
247
|
+
download(Epics::HAC, from: from, to: to)
|
248
|
+
end
|
249
|
+
|
250
|
+
def WSS
|
251
|
+
download(Epics::WSS)
|
227
252
|
end
|
228
253
|
|
229
254
|
def save_keys(path)
|
@@ -244,8 +269,8 @@ class Epics::Client
|
|
244
269
|
return res.transaction_id, [res.order_id, order_id].detect { |id| id.to_s.chars.any? }
|
245
270
|
end
|
246
271
|
|
247
|
-
def download(order_type, *args)
|
248
|
-
document = order_type.new(self, *args)
|
272
|
+
def download(order_type, *args, **options)
|
273
|
+
document = order_type.new(self, *args, **options)
|
249
274
|
res = post(url, document.to_xml).body
|
250
275
|
document.transaction_id = res.transaction_id
|
251
276
|
|
@@ -256,9 +281,9 @@ class Epics::Client
|
|
256
281
|
res.order_data
|
257
282
|
end
|
258
283
|
|
259
|
-
def download_and_unzip(order_type, *args)
|
284
|
+
def download_and_unzip(order_type, *args, **options)
|
260
285
|
[].tap do |entries|
|
261
|
-
Zip::File.open_buffer(StringIO.new(download(order_type, *args))).each do |zipfile|
|
286
|
+
Zip::File.open_buffer(StringIO.new(download(order_type, *args, **options))).each do |zipfile|
|
262
287
|
entries << zipfile.get_input_stream.read
|
263
288
|
end
|
264
289
|
end
|
data/lib/epics/crz.rb
CHANGED
@@ -1,46 +1,17 @@
|
|
1
1
|
class Epics::CRZ < Epics::GenericRequest
|
2
|
-
attr_accessor :from, :to
|
3
|
-
|
4
|
-
def initialize(client, from = nil, to = nil)
|
5
|
-
super(client)
|
6
|
-
self.from = from
|
7
|
-
self.to = to
|
8
|
-
end
|
9
|
-
|
10
2
|
def header
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
xml.OrderDetails {
|
21
|
-
xml.OrderType 'CRZ'
|
22
|
-
xml.OrderAttribute 'DZHNN'
|
23
|
-
if !!from && !!to
|
24
|
-
xml.StandardOrderParams {
|
25
|
-
xml.DateRange {
|
26
|
-
xml.Start from
|
27
|
-
xml.End to
|
28
|
-
}
|
29
|
-
}
|
30
|
-
else
|
31
|
-
xml.StandardOrderParams
|
32
|
-
end
|
33
|
-
}
|
34
|
-
xml.BankPubKeyDigests {
|
35
|
-
xml.Authentication(client.bank_x.public_digest, Version: 'X002', Algorithm: "http://www.w3.org/2001/04/xmlenc#sha256")
|
36
|
-
xml.Encryption(client.bank_e.public_digest, Version: 'E002', Algorithm: "http://www.w3.org/2001/04/xmlenc#sha256" )
|
37
|
-
}
|
38
|
-
xml.SecurityMedium '0000'
|
39
|
-
}
|
40
|
-
xml.mutable {
|
41
|
-
xml.TransactionPhase 'Initialisation'
|
3
|
+
client.header_request.build(
|
4
|
+
nonce: nonce,
|
5
|
+
timestamp: timestamp,
|
6
|
+
order_type: 'CRZ',
|
7
|
+
order_attribute: 'DZHNN',
|
8
|
+
order_params: !!options[:from] && !!options[:to] ? {
|
9
|
+
DateRange: {
|
10
|
+
Start: options[:from],
|
11
|
+
End: options[:to]
|
42
12
|
}
|
43
|
-
}
|
44
|
-
|
13
|
+
} : {},
|
14
|
+
mutable: { TransactionPhase: 'Initialisation' }
|
15
|
+
)
|
45
16
|
end
|
46
17
|
end
|
@@ -1,10 +1,11 @@
|
|
1
1
|
class Epics::GenericRequest
|
2
2
|
extend Forwardable
|
3
|
-
|
3
|
+
attr_reader :client, :options
|
4
4
|
attr_accessor :transaction_id
|
5
5
|
|
6
|
-
def initialize(client)
|
7
|
-
|
6
|
+
def initialize(client, **options)
|
7
|
+
@client = client
|
8
|
+
@options = options
|
8
9
|
end
|
9
10
|
|
10
11
|
def nonce
|
@@ -27,6 +28,10 @@ class Epics::GenericRequest
|
|
27
28
|
end.doc.root
|
28
29
|
end
|
29
30
|
|
31
|
+
def header
|
32
|
+
raise NotImplementedError
|
33
|
+
end
|
34
|
+
|
30
35
|
def auth_signature
|
31
36
|
Nokogiri::XML::Builder.new do |xml|
|
32
37
|
xml.AuthSignature{
|
@@ -3,8 +3,8 @@ class Epics::GenericUploadRequest < Epics::GenericRequest
|
|
3
3
|
attr_accessor :iv
|
4
4
|
attr_accessor :document
|
5
5
|
|
6
|
-
def initialize(client, document)
|
7
|
-
super(client)
|
6
|
+
def initialize(client, document, **options)
|
7
|
+
super(client, **options)
|
8
8
|
self.document = document
|
9
9
|
self.key = cipher.random_key
|
10
10
|
self.iv = 0.chr * cipher.iv_len
|
data/lib/epics/haa.rb
CHANGED
@@ -1,29 +1,12 @@
|
|
1
1
|
class Epics::HAA < Epics::GenericRequest
|
2
2
|
def header
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
xml.Product("EPICS - a ruby ebics kernel", 'Language' => 'de')
|
12
|
-
xml.OrderDetails {
|
13
|
-
xml.OrderType 'HAA'
|
14
|
-
xml.OrderAttribute 'DZHNN'
|
15
|
-
xml.StandardOrderParams
|
16
|
-
}
|
17
|
-
xml.BankPubKeyDigests {
|
18
|
-
xml.Authentication(client.bank_x.public_digest, Version: 'X002', Algorithm: "http://www.w3.org/2001/04/xmlenc#sha256")
|
19
|
-
xml.Encryption(client.bank_e.public_digest, Version: 'E002', Algorithm: "http://www.w3.org/2001/04/xmlenc#sha256" )
|
20
|
-
}
|
21
|
-
xml.SecurityMedium '0000'
|
22
|
-
}
|
23
|
-
xml.mutable {
|
24
|
-
xml.TransactionPhase 'Initialisation'
|
25
|
-
}
|
26
|
-
}
|
27
|
-
end.doc.root
|
3
|
+
client.header_request.build(
|
4
|
+
nonce: nonce,
|
5
|
+
timestamp: timestamp,
|
6
|
+
order_type: 'HAA',
|
7
|
+
order_attribute: 'DZHNN',
|
8
|
+
order_params: {},
|
9
|
+
mutable: { TransactionPhase: 'Initialisation' }
|
10
|
+
)
|
28
11
|
end
|
29
12
|
end
|
data/lib/epics/hac.rb
CHANGED
@@ -1,49 +1,20 @@
|
|
1
1
|
class Epics::HAC < Epics::GenericRequest
|
2
|
-
attr_accessor :from, :to
|
3
|
-
|
4
2
|
# By default HAC only returns data for transactions which have not yet been fetched. Therefore,
|
5
3
|
# most applications not not have to specify a date range, but can simply fetch the status and
|
6
4
|
# be done
|
7
|
-
def initialize(client, from = nil, to = nil)
|
8
|
-
super(client)
|
9
|
-
self.from = from
|
10
|
-
self.to = to
|
11
|
-
end
|
12
|
-
|
13
5
|
def header
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
xml.OrderDetails {
|
24
|
-
xml.OrderType 'HAC'
|
25
|
-
xml.OrderAttribute 'DZHNN'
|
26
|
-
if !!from && !!to
|
27
|
-
xml.StandardOrderParams {
|
28
|
-
xml.DateRange {
|
29
|
-
xml.Start from
|
30
|
-
xml.End to
|
31
|
-
}
|
32
|
-
}
|
33
|
-
else
|
34
|
-
xml.StandardOrderParams
|
35
|
-
end
|
36
|
-
}
|
37
|
-
xml.BankPubKeyDigests {
|
38
|
-
xml.Authentication(client.bank_x.public_digest, Version: 'X002', Algorithm: "http://www.w3.org/2001/04/xmlenc#sha256")
|
39
|
-
xml.Encryption(client.bank_e.public_digest, Version: 'E002', Algorithm: "http://www.w3.org/2001/04/xmlenc#sha256" )
|
40
|
-
}
|
41
|
-
xml.SecurityMedium '0000'
|
42
|
-
}
|
43
|
-
xml.mutable {
|
44
|
-
xml.TransactionPhase 'Initialisation'
|
6
|
+
client.header_request.build(
|
7
|
+
nonce: nonce,
|
8
|
+
timestamp: timestamp,
|
9
|
+
order_type: 'HAC',
|
10
|
+
order_attribute: 'DZHNN',
|
11
|
+
order_params: !!options[:from] && !!options[:to] ? {
|
12
|
+
DateRange: {
|
13
|
+
Start: options[:from],
|
14
|
+
End: options[:to]
|
45
15
|
}
|
46
|
-
}
|
47
|
-
|
16
|
+
} : {},
|
17
|
+
mutable: { TransactionPhase: 'Initialisation' }
|
18
|
+
)
|
48
19
|
end
|
49
20
|
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
class Epics::HeaderRequest
|
2
|
+
extend Forwardable
|
3
|
+
attr_accessor :client
|
4
|
+
|
5
|
+
PRODUCT_NAME = 'EPICS - a ruby ebics kernel'
|
6
|
+
PRODUCT_LANG = 'de'
|
7
|
+
|
8
|
+
def initialize(client)
|
9
|
+
self.client = client
|
10
|
+
end
|
11
|
+
|
12
|
+
def_delegators :client, :host_id, :user_id, :partner_id
|
13
|
+
|
14
|
+
def build(options = {})
|
15
|
+
options[:with_bank_pubkey_digests] = true if options[:with_bank_pubkey_digests].nil?
|
16
|
+
|
17
|
+
Nokogiri::XML::Builder.new do |xml|
|
18
|
+
xml.header(authenticate: true) {
|
19
|
+
xml.static {
|
20
|
+
xml.HostID host_id
|
21
|
+
xml.Nonce options[:nonce] if options[:nonce]
|
22
|
+
xml.Timestamp options[:timestamp] if options[:timestamp]
|
23
|
+
xml.PartnerID partner_id
|
24
|
+
xml.UserID user_id
|
25
|
+
xml.Product(PRODUCT_NAME, 'Language' => PRODUCT_LANG)
|
26
|
+
xml.OrderDetails {
|
27
|
+
xml.OrderType options[:order_type]
|
28
|
+
xml.OrderAttribute options[:order_attribute]
|
29
|
+
xml.StandardOrderParams {
|
30
|
+
build_attributes(xml, options[:order_params])
|
31
|
+
} if options[:order_params]
|
32
|
+
}
|
33
|
+
xml.BankPubKeyDigests {
|
34
|
+
xml.Authentication(client.bank_x.public_digest, Version: 'X002', Algorithm: 'http://www.w3.org/2001/04/xmlenc#sha256')
|
35
|
+
xml.Encryption(client.bank_e.public_digest, Version: 'E002', Algorithm: 'http://www.w3.org/2001/04/xmlenc#sha256')
|
36
|
+
} if options[:with_bank_pubkey_digests]
|
37
|
+
xml.SecurityMedium '0000'
|
38
|
+
xml.NumSegments options[:num_segments] if options[:num_segments]
|
39
|
+
}
|
40
|
+
xml.mutable {
|
41
|
+
build_attributes(xml, options[:mutable])
|
42
|
+
} if options[:mutable]
|
43
|
+
}
|
44
|
+
end.doc.root
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def build_attributes(xml, attributes)
|
50
|
+
attributes.each do |key, value|
|
51
|
+
if value.is_a?(Hash)
|
52
|
+
xml.send(key) {
|
53
|
+
build_attributes(xml, value)
|
54
|
+
}
|
55
|
+
else
|
56
|
+
xml.send(key, value)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/lib/epics/hia.rb
CHANGED
@@ -4,22 +4,12 @@ class Epics::HIA < Epics::GenericRequest
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def header
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
xml.Product("EPICS - a ruby ebics kernel", 'Language' => 'de')
|
14
|
-
xml.OrderDetails {
|
15
|
-
xml.OrderType 'HIA'
|
16
|
-
xml.OrderAttribute 'DZNNN'
|
17
|
-
}
|
18
|
-
xml.SecurityMedium '0000'
|
19
|
-
}
|
20
|
-
xml.mutable ''
|
21
|
-
}
|
22
|
-
end.doc.root
|
7
|
+
client.header_request.build(
|
8
|
+
order_type: 'HIA',
|
9
|
+
order_attribute: 'DZNNN',
|
10
|
+
with_bank_pubkey_digests: false,
|
11
|
+
mutable: {}
|
12
|
+
)
|
23
13
|
end
|
24
14
|
|
25
15
|
def body
|
data/lib/epics/hkd.rb
CHANGED
@@ -1,29 +1,12 @@
|
|
1
1
|
class Epics::HKD < Epics::GenericRequest
|
2
2
|
def header
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
xml.Product("EPICS - a ruby ebics kernel", 'Language' => 'de')
|
12
|
-
xml.OrderDetails {
|
13
|
-
xml.OrderType 'HKD'
|
14
|
-
xml.OrderAttribute 'DZHNN'
|
15
|
-
xml.StandardOrderParams ''
|
16
|
-
}
|
17
|
-
xml.BankPubKeyDigests {
|
18
|
-
xml.Authentication(client.bank_x.public_digest, Version: 'X002', Algorithm: "http://www.w3.org/2001/04/xmlenc#sha256")
|
19
|
-
xml.Encryption(client.bank_e.public_digest, Version: 'E002', Algorithm: "http://www.w3.org/2001/04/xmlenc#sha256" )
|
20
|
-
}
|
21
|
-
xml.SecurityMedium '0000'
|
22
|
-
}
|
23
|
-
xml.mutable {
|
24
|
-
xml.TransactionPhase 'Initialisation'
|
25
|
-
}
|
26
|
-
}
|
27
|
-
end.doc.root
|
3
|
+
client.header_request.build(
|
4
|
+
nonce: nonce,
|
5
|
+
timestamp: timestamp,
|
6
|
+
order_type: 'HKD',
|
7
|
+
order_attribute: 'DZHNN',
|
8
|
+
order_params: {},
|
9
|
+
mutable: { TransactionPhase: 'Initialisation' }
|
10
|
+
)
|
28
11
|
end
|
29
12
|
end
|
data/lib/epics/hpb.rb
CHANGED
@@ -4,23 +4,13 @@ class Epics::HPB < Epics::GenericRequest
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def header
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
xml.Product("EPICS - a ruby ebics kernel", 'Language' => 'de')
|
16
|
-
xml.OrderDetails {
|
17
|
-
xml.OrderType 'HPB'
|
18
|
-
xml.OrderAttribute 'DZHNN'
|
19
|
-
}
|
20
|
-
xml.SecurityMedium '0000'
|
21
|
-
}
|
22
|
-
xml.mutable ''
|
23
|
-
}
|
24
|
-
end.doc.root
|
7
|
+
client.header_request.build(
|
8
|
+
nonce: nonce,
|
9
|
+
timestamp: timestamp,
|
10
|
+
order_type: 'HPB',
|
11
|
+
order_attribute: 'DZHNN',
|
12
|
+
with_bank_pubkey_digests: false,
|
13
|
+
mutable: {}
|
14
|
+
)
|
25
15
|
end
|
26
16
|
end
|
data/lib/epics/hpd.rb
CHANGED
@@ -1,29 +1,12 @@
|
|
1
1
|
class Epics::HPD < Epics::GenericRequest
|
2
2
|
def header
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
xml.Product("EPICS - a ruby ebics kernel", 'Language' => 'de')
|
12
|
-
xml.OrderDetails {
|
13
|
-
xml.OrderType 'HPD'
|
14
|
-
xml.OrderAttribute 'DZHNN'
|
15
|
-
xml.StandardOrderParams
|
16
|
-
}
|
17
|
-
xml.BankPubKeyDigests {
|
18
|
-
xml.Authentication(client.bank_x.public_digest, Version: 'X002', Algorithm: "http://www.w3.org/2001/04/xmlenc#sha256")
|
19
|
-
xml.Encryption(client.bank_e.public_digest, Version: 'E002', Algorithm: "http://www.w3.org/2001/04/xmlenc#sha256" )
|
20
|
-
}
|
21
|
-
xml.SecurityMedium '0000'
|
22
|
-
}
|
23
|
-
xml.mutable {
|
24
|
-
xml.TransactionPhase 'Initialisation'
|
25
|
-
}
|
26
|
-
}
|
27
|
-
end.doc.root
|
3
|
+
client.header_request.build(
|
4
|
+
nonce: nonce,
|
5
|
+
timestamp: timestamp,
|
6
|
+
order_type: 'HPD',
|
7
|
+
order_attribute: 'DZHNN',
|
8
|
+
order_params: {},
|
9
|
+
mutable: { TransactionPhase: 'Initialisation' }
|
10
|
+
)
|
28
11
|
end
|
29
12
|
end
|
data/lib/epics/htd.rb
CHANGED
@@ -1,29 +1,12 @@
|
|
1
1
|
class Epics::HTD < Epics::GenericRequest
|
2
2
|
def header
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
xml.Product("EPICS - a ruby ebics kernel", 'Language' => 'de')
|
12
|
-
xml.OrderDetails {
|
13
|
-
xml.OrderType 'HTD'
|
14
|
-
xml.OrderAttribute 'DZHNN'
|
15
|
-
xml.StandardOrderParams
|
16
|
-
}
|
17
|
-
xml.BankPubKeyDigests {
|
18
|
-
xml.Authentication(client.bank_x.public_digest, Version: 'X002', Algorithm: "http://www.w3.org/2001/04/xmlenc#sha256")
|
19
|
-
xml.Encryption(client.bank_e.public_digest, Version: 'E002', Algorithm: "http://www.w3.org/2001/04/xmlenc#sha256" )
|
20
|
-
}
|
21
|
-
xml.SecurityMedium '0000'
|
22
|
-
}
|
23
|
-
xml.mutable {
|
24
|
-
xml.TransactionPhase 'Initialisation'
|
25
|
-
}
|
26
|
-
}
|
27
|
-
end.doc.root
|
3
|
+
client.header_request.build(
|
4
|
+
nonce: nonce,
|
5
|
+
timestamp: timestamp,
|
6
|
+
order_type: 'HTD',
|
7
|
+
order_attribute: 'DZHNN',
|
8
|
+
order_params: {},
|
9
|
+
mutable: { TransactionPhase: 'Initialisation' }
|
10
|
+
)
|
28
11
|
end
|
29
12
|
end
|
data/lib/epics/ini.rb
CHANGED
@@ -4,22 +4,12 @@ class Epics::INI < Epics::GenericRequest
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def header
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
xml.Product("EPICS - a ruby ebics kernel", 'Language' => 'de')
|
14
|
-
xml.OrderDetails {
|
15
|
-
xml.OrderType 'INI'
|
16
|
-
xml.OrderAttribute 'DZNNN'
|
17
|
-
}
|
18
|
-
xml.SecurityMedium '0000'
|
19
|
-
}
|
20
|
-
xml.mutable ''
|
21
|
-
}
|
22
|
-
end.doc.root
|
7
|
+
client.header_request.build(
|
8
|
+
order_type: 'INI',
|
9
|
+
order_attribute: 'DZNNN',
|
10
|
+
with_bank_pubkey_digests: false,
|
11
|
+
mutable: {},
|
12
|
+
)
|
23
13
|
end
|
24
14
|
|
25
15
|
def body
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class Epics::LetterRenderer
|
2
|
+
extend Forwardable
|
3
|
+
|
4
|
+
TEMPLATE_PATH = File.join(File.dirname(__FILE__), '../letter/', 'ini.erb')
|
5
|
+
I18N_SCOPE = 'epics.letter'
|
6
|
+
|
7
|
+
def initialize(client)
|
8
|
+
@client = client
|
9
|
+
end
|
10
|
+
|
11
|
+
def translate(key, **options)
|
12
|
+
I18n.translate(key, **{ locale: @client.locale, scope: I18N_SCOPE }.merge(options))
|
13
|
+
end
|
14
|
+
|
15
|
+
alias_method :t, :translate
|
16
|
+
|
17
|
+
def_delegators :@client, :host_id, :user_id, :partner_id, :a, :x, :e
|
18
|
+
|
19
|
+
def render(bankname)
|
20
|
+
ERB.new(File.read(TEMPLATE_PATH)).result(binding)
|
21
|
+
end
|
22
|
+
end
|