epics 2.4.0 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|