epics 2.4.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 +9 -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 +36 -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 +11 -3
- data/lib/epics/xe3.rb +11 -3
- 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 +7 -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/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/z52_spec.rb +1 -1
- data/spec/orders/z53_spec.rb +1 -1
- data/spec/orders/z54_spec.rb +1 -1
- metadata +35 -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
|
@@ -166,43 +175,47 @@ class Epics::Client
|
|
166
175
|
end
|
167
176
|
|
168
177
|
def STA(from = nil, to = nil)
|
169
|
-
download(Epics::STA, from, to)
|
178
|
+
download(Epics::STA, from: from, to: to)
|
170
179
|
end
|
171
180
|
|
172
181
|
def VMK(from = nil, to = nil)
|
173
|
-
download(Epics::VMK, from, to)
|
182
|
+
download(Epics::VMK, from: from, to: to)
|
174
183
|
end
|
175
184
|
|
176
185
|
def CDZ(from = nil, to = nil)
|
177
|
-
download_and_unzip(Epics::CDZ, from, to)
|
186
|
+
download_and_unzip(Epics::CDZ, from: from, to: to)
|
178
187
|
end
|
179
188
|
|
180
189
|
def CRZ(from = nil, to = nil)
|
181
|
-
download_and_unzip(Epics::CRZ, from, to)
|
190
|
+
download_and_unzip(Epics::CRZ, from: from, to: to)
|
182
191
|
end
|
183
192
|
|
184
193
|
def C52(from, to)
|
185
|
-
download_and_unzip(Epics::C52, from, to)
|
194
|
+
download_and_unzip(Epics::C52, from: from, to: to)
|
186
195
|
end
|
187
196
|
|
188
197
|
def C53(from, to)
|
189
|
-
download_and_unzip(Epics::C53, from, to)
|
198
|
+
download_and_unzip(Epics::C53, from: from, to: to)
|
190
199
|
end
|
191
200
|
|
192
201
|
def C54(from, to)
|
193
|
-
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)
|
194
207
|
end
|
195
208
|
|
196
209
|
def Z52(from, to)
|
197
|
-
download_and_unzip(Epics::Z52, from, to)
|
210
|
+
download_and_unzip(Epics::Z52, from: from, to: to)
|
198
211
|
end
|
199
212
|
|
200
213
|
def Z53(from, to)
|
201
|
-
download_and_unzip(Epics::Z53, from, to)
|
214
|
+
download_and_unzip(Epics::Z53, from: from, to: to)
|
202
215
|
end
|
203
216
|
|
204
217
|
def Z54(from, to)
|
205
|
-
download_and_unzip(Epics::Z54, from, to)
|
218
|
+
download_and_unzip(Epics::Z54, from: from, to: to)
|
206
219
|
end
|
207
220
|
|
208
221
|
def HAA
|
@@ -227,11 +240,15 @@ class Epics::Client
|
|
227
240
|
end
|
228
241
|
|
229
242
|
def PTK(from, to)
|
230
|
-
download(Epics::PTK, from, to)
|
243
|
+
download(Epics::PTK, from: from, to: to)
|
231
244
|
end
|
232
245
|
|
233
246
|
def HAC(from = nil, to = nil)
|
234
|
-
download(Epics::HAC, from, to)
|
247
|
+
download(Epics::HAC, from: from, to: to)
|
248
|
+
end
|
249
|
+
|
250
|
+
def WSS
|
251
|
+
download(Epics::WSS)
|
235
252
|
end
|
236
253
|
|
237
254
|
def save_keys(path)
|
@@ -252,8 +269,8 @@ class Epics::Client
|
|
252
269
|
return res.transaction_id, [res.order_id, order_id].detect { |id| id.to_s.chars.any? }
|
253
270
|
end
|
254
271
|
|
255
|
-
def download(order_type, *args)
|
256
|
-
document = order_type.new(self, *args)
|
272
|
+
def download(order_type, *args, **options)
|
273
|
+
document = order_type.new(self, *args, **options)
|
257
274
|
res = post(url, document.to_xml).body
|
258
275
|
document.transaction_id = res.transaction_id
|
259
276
|
|
@@ -264,9 +281,9 @@ class Epics::Client
|
|
264
281
|
res.order_data
|
265
282
|
end
|
266
283
|
|
267
|
-
def download_and_unzip(order_type, *args)
|
284
|
+
def download_and_unzip(order_type, *args, **options)
|
268
285
|
[].tap do |entries|
|
269
|
-
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|
|
270
287
|
entries << zipfile.get_input_stream.read
|
271
288
|
end
|
272
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
|