epics 2.5.0 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -1
- data/epics.gemspec +4 -0
- data/lib/epics/cip.rb +13 -0
- data/lib/epics/client.rb +4 -0
- data/lib/epics/version.rb +1 -1
- data/lib/epics.rb +1 -0
- data/spec/client_spec.rb +1 -1
- data/spec/fixtures/xml/cip.xml +86 -0
- data/spec/fixtures/xml/htd_order_data.xml +7 -1
- data/spec/orders/cip_spec.rb +23 -0
- metadata +12 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c51d24b50fdc5705acf921ecc331fbbc504be08c1615bb1e19e5586a808549cc
|
4
|
+
data.tar.gz: 7da71fe00c348df5e32774633d6b14d1f22df867d69830811c8ed1db8c26134e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d28b7833d9b95b7c849918cbda0bb5edd8e8836688989e308ab7e90f0982b2f802604ac02acff0960a644db6b3941c32ce2b055c45d00678d5a8acb0778f430b
|
7
|
+
data.tar.gz: 52bf70e50a99e2844a2c62115b6b59b3455e5fbedfcc1f575033a702a5d2838ac05fbfacb6e0438f4fee13b76e6837b6682e0aca4bb9cf6978d6eb1660317174
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
### Unreleased
|
2
2
|
|
3
|
+
### 2.6.0
|
4
|
+
|
5
|
+
- [ENHANCEMENT] Adds CIP order type (instant transfers)
|
6
|
+
- [ENHANCEMENT] Added gem metadata (thanks to @Nymuxyzo)
|
7
|
+
|
3
8
|
### 2.5.0
|
4
9
|
|
5
10
|
- [HOUSEKEEPING] Bump XML dependency requirements to more recent versions
|
@@ -7,7 +12,7 @@
|
|
7
12
|
- [HOUSEKEEPING] Bump ruby required version from 2.7 to 3.1
|
8
13
|
- [ENHANCEMENT] Request Header generation more generalized (thanks to @jplot)
|
9
14
|
- [ENHANCEMENT] Multi language support for initialization letter (thanks to @jplot)
|
10
|
-
- [
|
15
|
+
- [ENHANCEMENT] Added support for WSS and C5N order types (thanks to @kostja93)
|
11
16
|
|
12
17
|
### 2.4.0
|
13
18
|
|
data/epics.gemspec
CHANGED
@@ -33,6 +33,10 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
34
34
|
spec.require_paths = ['lib']
|
35
35
|
|
36
|
+
spec.metadata['changelog_uri'] = 'https://github.com/railslove/epics/blob/master/CHANGELOG.md'
|
37
|
+
spec.metadata['source_code_uri'] = 'https://github.com/railslove/epics'
|
38
|
+
spec.metadata['bug_tracker_uri'] = 'https://github.com/railslove/epics/issues'
|
39
|
+
|
36
40
|
spec.post_install_message = "\n\e[32m" + ('*' * 60) + "\n\e[0m"
|
37
41
|
spec.post_install_message += "Thanks for using Epics - your epic EBICS client!\n"
|
38
42
|
spec.post_install_message += "Epics provides a full production-tested implementation of the Electronic Banking Internet Communication Standard.\n"
|
data/lib/epics/cip.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
class Epics::CIP < Epics::GenericUploadRequest
|
2
|
+
def header
|
3
|
+
client.header_request.build(
|
4
|
+
nonce: nonce,
|
5
|
+
timestamp: timestamp,
|
6
|
+
order_type: 'CIP',
|
7
|
+
order_attribute: 'OZHNN',
|
8
|
+
order_params: {},
|
9
|
+
num_segments: 1,
|
10
|
+
mutable: { TransactionPhase: 'Initialisation' }
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
data/lib/epics/client.rb
CHANGED
data/lib/epics/version.rb
CHANGED
data/lib/epics.rb
CHANGED
data/spec/client_spec.rb
CHANGED
@@ -88,7 +88,7 @@ RSpec.describe Epics::Client do
|
|
88
88
|
end
|
89
89
|
|
90
90
|
it 'extracts the accessible order types of a subscriber' do
|
91
|
-
expect(subject.order_types).to match_array(%w(PTK HPD HTD STA HVD HPB HAA HVT HVU HVZ INI SPR PUB HIA HCA HSA HVE HVS CCS CCT CD1 CDB CDD))
|
91
|
+
expect(subject.order_types).to match_array(%w(PTK HPD HTD STA HVD HPB HAA HVT HVU HVZ INI SPR PUB HIA HCA HSA HVE HVS CCS CCT CIP CD1 CDB CDD))
|
92
92
|
end
|
93
93
|
end
|
94
94
|
|
@@ -0,0 +1,86 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.09" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.001.09 pain.001.001.09.xsd">
|
3
|
+
<CstmrCdtTrfInitn>
|
4
|
+
<GrpHdr>
|
5
|
+
<MsgId>Message-ID-0815</MsgId>
|
6
|
+
<CreDtTm>2022-09-15T09:31:39.000Z</CreDtTm>
|
7
|
+
<NbOfTxs>2</NbOfTxs>
|
8
|
+
<CtrlSum>1122.33</CtrlSum>
|
9
|
+
<InitgPty>
|
10
|
+
<Nm>Initiator Name</Nm>
|
11
|
+
</InitgPty>
|
12
|
+
</GrpHdr>
|
13
|
+
<PmtInf>
|
14
|
+
<PmtInfId>Payment-Information-ID-0815</PmtInfId>
|
15
|
+
<PmtMtd>TRF</PmtMtd>
|
16
|
+
<BtchBookg>true</BtchBookg>
|
17
|
+
<NbOfTxs>2</NbOfTxs>
|
18
|
+
<CtrlSum>1122.33</CtrlSum>
|
19
|
+
<PmtTpInf>
|
20
|
+
<SvcLvl>
|
21
|
+
<Cd>SEPA</Cd>
|
22
|
+
</SvcLvl>
|
23
|
+
<LclInstrm>
|
24
|
+
<Cd>INST</Cd>
|
25
|
+
</LclInstrm>
|
26
|
+
</PmtTpInf>
|
27
|
+
<ReqdExctnDt>
|
28
|
+
<DtTm>2022-09-16T10:00:00</DtTm>
|
29
|
+
</ReqdExctnDt>
|
30
|
+
<Dbtr>
|
31
|
+
<Nm>Herr Schnellzahler</Nm>
|
32
|
+
</Dbtr>
|
33
|
+
<DbtrAcct>
|
34
|
+
<Id>
|
35
|
+
<IBAN>DE89370400440532013000</IBAN>
|
36
|
+
</Id>
|
37
|
+
</DbtrAcct>
|
38
|
+
<DbtrAgt>
|
39
|
+
<FinInstnId>
|
40
|
+
<Othr>
|
41
|
+
<Id>NOTPROVIDED</Id>
|
42
|
+
</Othr>
|
43
|
+
</FinInstnId>
|
44
|
+
</DbtrAgt>
|
45
|
+
<ChrgBr>SLEV</ChrgBr>
|
46
|
+
<CdtTrfTxInf>
|
47
|
+
<PmtId>
|
48
|
+
<EndToEndId>OriginID1</EndToEndId>
|
49
|
+
</PmtId>
|
50
|
+
<Amt>
|
51
|
+
<InstdAmt Ccy="EUR">1022.00</InstdAmt>
|
52
|
+
</Amt>
|
53
|
+
<Cdtr>
|
54
|
+
<Nm>John Dough</Nm>
|
55
|
+
</Cdtr>
|
56
|
+
<CdtrAcct>
|
57
|
+
<Id>
|
58
|
+
<IBAN>AT611904300234573201</IBAN>
|
59
|
+
</Id>
|
60
|
+
</CdtrAcct>
|
61
|
+
<RmtInf>
|
62
|
+
<Ustrd>Unstructured Remittance Information</Ustrd>
|
63
|
+
</RmtInf>
|
64
|
+
</CdtTrfTxInf>
|
65
|
+
<CdtTrfTxInf>
|
66
|
+
<PmtId>
|
67
|
+
<EndToEndId>OriginID2</EndToEndId>
|
68
|
+
</PmtId>
|
69
|
+
<Amt>
|
70
|
+
<InstdAmt Ccy="EUR">100.33</InstdAmt>
|
71
|
+
</Amt>
|
72
|
+
<Cdtr>
|
73
|
+
<Nm>Cookie Cutter</Nm>
|
74
|
+
</Cdtr>
|
75
|
+
<CdtrAcct>
|
76
|
+
<Id>
|
77
|
+
<IBAN>AT611904300234573201</IBAN>
|
78
|
+
</Id>
|
79
|
+
</CdtrAcct>
|
80
|
+
<RmtInf>
|
81
|
+
<Ustrd>Unstructured Remittance Information</Ustrd>
|
82
|
+
</RmtInf>
|
83
|
+
</CdtTrfTxInf>
|
84
|
+
</PmtInf>
|
85
|
+
</CstmrCdtTrfInitn>
|
86
|
+
</Document>
|
@@ -127,6 +127,12 @@
|
|
127
127
|
<Description>Credit Transfer Initiation</Description>
|
128
128
|
<NumSigRequired>1</NumSigRequired>
|
129
129
|
</OrderInfo>
|
130
|
+
<OrderInfo>
|
131
|
+
<OrderType>CIP</OrderType>
|
132
|
+
<TransferType>Upload</TransferType>
|
133
|
+
<Description>Instant Credit Transfer Initiation</Description>
|
134
|
+
<NumSigRequired>1</NumSigRequired>
|
135
|
+
</OrderInfo>
|
130
136
|
<OrderInfo>
|
131
137
|
<OrderType>CD1</OrderType>
|
132
138
|
<TransferType>Upload</TransferType>
|
@@ -153,7 +159,7 @@
|
|
153
159
|
<OrderTypes>PTK HPD HTD STA HVD HPB HAA HVT HVU HVZ</OrderTypes>
|
154
160
|
</Permission>
|
155
161
|
<Permission AuthorisationLevel="E">
|
156
|
-
<OrderTypes>INI SPR PUB HIA HCA HSA HVE HVS CCS CCT CD1 CDB CDD</OrderTypes>
|
162
|
+
<OrderTypes>INI SPR PUB HIA HCA HSA HVE HVS CCS CCT CIP CD1 CDB CDD</OrderTypes>
|
157
163
|
</Permission>
|
158
164
|
</UserInfo>
|
159
165
|
</HTDResponseOrderData>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
RSpec.describe Epics::CIP do
|
2
|
+
|
3
|
+
let(:client) { Epics::Client.new( File.open(File.join( File.dirname(__FILE__), '..', 'fixtures', 'SIZBN001.key')), 'secret' , 'https://194.180.18.30/ebicsweb/ebicsweb', 'SIZBN001', 'EBIX', 'EBICS') }
|
4
|
+
let(:document) { File.read( File.join( File.dirname(__FILE__), '..', 'fixtures', 'xml', 'cip.xml') ) }
|
5
|
+
subject { described_class.new(client, document) }
|
6
|
+
|
7
|
+
describe 'order attributes' do
|
8
|
+
it { expect(subject.header.to_s).to include('<OrderAttribute>OZHNN</OrderAttribute>') }
|
9
|
+
it { expect(subject.header.to_s).to include('<OrderType>CIP</OrderType>') }
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '#to_xml' do
|
13
|
+
specify { expect(subject.to_xml).to be_a_valid_ebics_doc }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '#to_transfer_xml' do
|
17
|
+
before { subject.transaction_id = SecureRandom.hex(16) }
|
18
|
+
|
19
|
+
specify { expect(subject.to_transfer_xml).to be_a_valid_ebics_doc }
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lars Brillert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-11-
|
11
|
+
date: 2024-11-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -206,6 +206,7 @@ files:
|
|
206
206
|
- lib/epics/cdd.rb
|
207
207
|
- lib/epics/cds.rb
|
208
208
|
- lib/epics/cdz.rb
|
209
|
+
- lib/epics/cip.rb
|
209
210
|
- lib/epics/client.rb
|
210
211
|
- lib/epics/crz.rb
|
211
212
|
- lib/epics/error.rb
|
@@ -258,6 +259,7 @@ files:
|
|
258
259
|
- spec/fixtures/xml/cdb.xml
|
259
260
|
- spec/fixtures/xml/cdb_init_response.xml
|
260
261
|
- spec/fixtures/xml/cdb_transfer_response.xml
|
262
|
+
- spec/fixtures/xml/cip.xml
|
261
263
|
- spec/fixtures/xml/ebics_business_nok.xml
|
262
264
|
- spec/fixtures/xml/ebics_technical_nok.xml
|
263
265
|
- spec/fixtures/xml/haa.xml
|
@@ -298,6 +300,7 @@ files:
|
|
298
300
|
- spec/orders/cdb_spec.rb
|
299
301
|
- spec/orders/cdd_spec.rb
|
300
302
|
- spec/orders/cdz_spec.rb
|
303
|
+
- spec/orders/cip_spec.rb
|
301
304
|
- spec/orders/crz_spec.rb
|
302
305
|
- spec/orders/haa_spec.rb
|
303
306
|
- spec/orders/hac_spec.rb
|
@@ -334,7 +337,10 @@ files:
|
|
334
337
|
homepage: https://github.com/railslove/epics
|
335
338
|
licenses:
|
336
339
|
- LGPL-3.0
|
337
|
-
metadata:
|
340
|
+
metadata:
|
341
|
+
changelog_uri: https://github.com/railslove/epics/blob/master/CHANGELOG.md
|
342
|
+
source_code_uri: https://github.com/railslove/epics
|
343
|
+
bug_tracker_uri: https://github.com/railslove/epics/issues
|
338
344
|
post_install_message: "\n\e[32m************************************************************\n\e[0mThanks
|
339
345
|
for using Epics - your epic EBICS client!\nEpics provides a full production-tested
|
340
346
|
implementation of the Electronic Banking Internet Communication Standard.\nRailslove
|
@@ -356,7 +362,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
356
362
|
- !ruby/object:Gem::Version
|
357
363
|
version: '0'
|
358
364
|
requirements: []
|
359
|
-
rubygems_version: 3.5.
|
365
|
+
rubygems_version: 3.5.19
|
360
366
|
signing_key:
|
361
367
|
specification_version: 4
|
362
368
|
summary: a ruby implementation of the EBICS protocol
|
@@ -377,6 +383,7 @@ test_files:
|
|
377
383
|
- spec/fixtures/xml/cdb.xml
|
378
384
|
- spec/fixtures/xml/cdb_init_response.xml
|
379
385
|
- spec/fixtures/xml/cdb_transfer_response.xml
|
386
|
+
- spec/fixtures/xml/cip.xml
|
380
387
|
- spec/fixtures/xml/ebics_business_nok.xml
|
381
388
|
- spec/fixtures/xml/ebics_technical_nok.xml
|
382
389
|
- spec/fixtures/xml/haa.xml
|
@@ -417,6 +424,7 @@ test_files:
|
|
417
424
|
- spec/orders/cdb_spec.rb
|
418
425
|
- spec/orders/cdd_spec.rb
|
419
426
|
- spec/orders/cdz_spec.rb
|
427
|
+
- spec/orders/cip_spec.rb
|
420
428
|
- spec/orders/crz_spec.rb
|
421
429
|
- spec/orders/haa_spec.rb
|
422
430
|
- spec/orders/hac_spec.rb
|