bankserv 0.5.4 → 0.5.5
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.
- data/lib/bankserv/transmission/document.rb +5 -0
- data/lib/bankserv/transmission/input_document.rb +15 -2
- data/lib/bankserv/transmission/set/reply.rb +13 -11
- data/lib/bankserv/version.rb +1 -1
- data/lib/generators/active_record/templates/migration.rb +1 -0
- data/spec/examples/ahv_input_file.txt +1 -1
- data/spec/examples/eft_input_with_2_sets.txt +1 -1
- data/spec/examples/reply/reply2.txt +4 -0
- data/spec/examples/tmp/REPLY0412153000.txt +1 -1
- data/spec/internal/db/schema.rb +1 -0
- data/spec/lib/bankserv/transmission/input_document_spec.rb +1 -0
- data/spec/lib/bankserv/transmission/reply_document_spec.rb +21 -0
- metadata +18 -16
@@ -38,5 +38,10 @@ module Bankserv
|
|
38
38
|
def set_with_generation_number(generation_number)
|
39
39
|
sets.select{|set| set.generation_number == generation_number}.first
|
40
40
|
end
|
41
|
+
|
42
|
+
|
43
|
+
def set_with_dept_code(dept_code)
|
44
|
+
sets.select{|set| set.header.data[:dept_code] == dept_code}.first
|
45
|
+
end
|
41
46
|
end
|
42
47
|
end
|
@@ -1,4 +1,13 @@
|
|
1
1
|
class Bankserv::InputDocument < Bankserv::Document
|
2
|
+
|
3
|
+
after_create :set_th_ld_for_user
|
4
|
+
|
5
|
+
def set_th_ld_for_user
|
6
|
+
self.set.header.data[:th_for_use_of_ld_user] ||= self.id.to_s
|
7
|
+
self.set.header.data[:th_for_use_of_ld_user] = self.id.to_s if self.set.header.data[:th_for_use_of_ld_user] == "0"
|
8
|
+
self.user_ref = self.set.header.data[:th_for_use_of_ld_user]
|
9
|
+
save!
|
10
|
+
end
|
2
11
|
|
3
12
|
def self.document_type
|
4
13
|
'input'
|
@@ -104,7 +113,7 @@ class Bankserv::InputDocument < Bankserv::Document
|
|
104
113
|
document.set.sets << set.generate(hash)
|
105
114
|
document.set.sets[-1].set = document.set # whaaaaaa?
|
106
115
|
end
|
107
|
-
|
116
|
+
|
108
117
|
document.save!
|
109
118
|
document
|
110
119
|
end
|
@@ -120,5 +129,9 @@ class Bankserv::InputDocument < Bankserv::Document
|
|
120
129
|
def self.for_transmission_number(transmission_number)
|
121
130
|
where(type: 'input', transmission_number: transmission_number).first
|
122
131
|
end
|
123
|
-
|
132
|
+
|
133
|
+
def self.for_user_ref(user_ref)
|
134
|
+
where(type: 'input', user_ref: user_ref).first
|
135
|
+
end
|
136
|
+
|
124
137
|
end
|
@@ -5,40 +5,42 @@ module Bankserv
|
|
5
5
|
class Reply < Set
|
6
6
|
|
7
7
|
def process
|
8
|
-
|
8
|
+
input_document = Bankserv::InputDocument.for_user_ref(self.set.header.data[:th_for_use_of_ld_user])
|
9
9
|
|
10
10
|
transactions.each do |transaction|
|
11
11
|
case transaction.record_type
|
12
12
|
when "transmission_status"
|
13
|
-
document = Bankserv::InputDocument.for_transmission_number(transaction.data[:transmission_number])
|
14
|
-
document
|
15
|
-
|
13
|
+
# document = Bankserv::InputDocument.for_transmission_number(transaction.data[:transmission_number])
|
14
|
+
# document = Bankserv::InputDocument.for_user_ref(transaction.data[:th_for_use_of_ld_user])
|
15
|
+
input_document.reply_status = transaction.data[:transmission_status]
|
16
|
+
input_document.save!
|
16
17
|
|
17
|
-
if
|
18
|
-
Bankserv::Service.for_client_code(
|
18
|
+
if input_document.accepted?
|
19
|
+
Bankserv::Service.for_client_code(input_document.client_code).active.each do |service|
|
19
20
|
service.update_transmission_number!
|
20
21
|
end
|
21
22
|
end
|
22
23
|
|
23
24
|
when "transmission_rejected_reason"
|
24
|
-
|
25
|
+
input_document.error = {
|
25
26
|
code: transaction.data[:error_code],
|
26
27
|
message: transaction.data[:error_message]
|
27
28
|
}
|
28
29
|
|
29
|
-
|
30
|
+
input_document.save!
|
30
31
|
when "ahv_status"
|
31
|
-
set = document.set_with_generation_number(transaction.data[:user_code_generation_number])
|
32
|
+
# set = document.set_with_generation_number(transaction.data[:user_code_generation_number])
|
33
|
+
set = input_document.set_with_dept_code(transaction.data[:user_code_generation_number])
|
32
34
|
set.reply_status = transaction.data[:user_set_status]
|
33
35
|
set.save!
|
34
36
|
when "eft_status"
|
35
|
-
set =
|
37
|
+
set = input_document.set_with_generation_number(transaction.data[:user_code_generation_number])
|
36
38
|
set.reply_status = transaction.data[:user_set_status]
|
37
39
|
set.save!
|
38
40
|
when "accepted_report_reply"
|
39
41
|
# what do we do here.. what is an accepted report reply?
|
40
42
|
when "rejected_message"
|
41
|
-
set =
|
43
|
+
set = input_document.set_with_generation_number(transaction.data[:user_code_generation_number])
|
42
44
|
record = set.record_with_sequence_number(transaction.data[:user_sequence_number])
|
43
45
|
|
44
46
|
record.error = {
|
data/lib/bankserv/version.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
000T2004052400010LDC USER 10 AFRICA (PTY) 000062100000
|
1
|
+
000T2004052400010LDC USER 10 AFRICA (PTY) 000062100000 123
|
2
2
|
001T0495340405240405310405240405270000010037CORPSSV
|
3
3
|
001T5063200504053538939953400000163200501019611899100000001000040524440000ALIMITTST SPP 1040524 01 HENNIE DU TOIT 00000000000000000000 21
|
4
4
|
001T929534000001000016040524040527000014000002000002000020308000000020308000036311034141
|
data/spec/internal/db/schema.rb
CHANGED
@@ -77,6 +77,7 @@ describe Bankserv::InputDocument do
|
|
77
77
|
|
78
78
|
string = File.open("./spec/examples/ahv_input_file.txt", "rb").read
|
79
79
|
options = Absa::H2h::Transmission::Document.hash_from_s(string, 'input')
|
80
|
+
options[:data].first[:data][:th_for_use_of_ld_user] = @document.user_ref
|
80
81
|
hash.should == options
|
81
82
|
end
|
82
83
|
|
@@ -70,6 +70,27 @@ describe Bankserv::ReplyDocument do
|
|
70
70
|
end
|
71
71
|
|
72
72
|
end
|
73
|
+
|
74
|
+
context "processing an accepted ahv reply file" do
|
75
|
+
before(:all) do
|
76
|
+
tear_it_down
|
77
|
+
Bankserv::AHVService.register(client_code: '10', client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', user_code: "9999", generation_number: 1, transmission_status: "L", transmission_number: "1")
|
78
|
+
@file_contents = File.open("./spec/examples/ahv_input_file.txt", "rb").read
|
79
|
+
@input_document = Bankserv::InputDocument.store(@file_contents)
|
80
|
+
|
81
|
+
@file_contents = File.open("./spec/examples/reply/reply2.txt", "rb").read
|
82
|
+
@options = Absa::H2h::Transmission::Document.hash_from_s(@file_contents, 'output')
|
83
|
+
|
84
|
+
@reply_document = Bankserv::ReplyDocument.store(@file_contents)
|
85
|
+
|
86
|
+
@reply_document.process!
|
87
|
+
@input_document.reload
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should mark the reply documents reply status as accepted" do
|
91
|
+
@input_document.reply_status.should == "ACCEPTED"
|
92
|
+
end
|
93
|
+
end
|
73
94
|
|
74
95
|
context "processing a reply file reporting that a transmission was rejected" do
|
75
96
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bankserv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-07-
|
13
|
+
date: 2012-07-11 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
17
|
-
requirement: &
|
17
|
+
requirement: &70101475587840 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70101475587840
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: activerecord
|
28
|
-
requirement: &
|
28
|
+
requirement: &70101475587240 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '3.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70101475587240
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: i18n
|
39
|
-
requirement: &
|
39
|
+
requirement: &70101475586800 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70101475586800
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: absa-h2h
|
50
|
-
requirement: &
|
50
|
+
requirement: &70101475586120 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 0.1.5
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70101475586120
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: absa-esd
|
61
|
-
requirement: &
|
61
|
+
requirement: &70101475585520 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 0.0.3
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70101475585520
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: absa-notify-me
|
72
|
-
requirement: &
|
72
|
+
requirement: &70101475585000 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: 0.0.7
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *70101475585000
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: combustion
|
83
|
-
requirement: &
|
83
|
+
requirement: &70101475584520 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ~>
|
@@ -88,7 +88,7 @@ dependencies:
|
|
88
88
|
version: 0.3.1
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *70101475584520
|
92
92
|
description: ! "This engine allows users to inject requests into a queue to be processed.
|
93
93
|
\n \n The queue handles bank account validations, credit payments,
|
94
94
|
debit orders\n and collecting bank statements/notify me statements. "
|
@@ -157,6 +157,7 @@ files:
|
|
157
157
|
- spec/examples/notify_me.xml
|
158
158
|
- spec/examples/notify_me_with_one_record.xml
|
159
159
|
- spec/examples/reply/rejected_transmission.txt
|
160
|
+
- spec/examples/reply/reply2.txt
|
160
161
|
- spec/examples/reply/reply_file.txt
|
161
162
|
- spec/examples/statement4_unpacked.dat
|
162
163
|
- spec/examples/tmp/OUTPUT0412153500.txt
|
@@ -226,6 +227,7 @@ test_files:
|
|
226
227
|
- spec/examples/notify_me.xml
|
227
228
|
- spec/examples/notify_me_with_one_record.xml
|
228
229
|
- spec/examples/reply/rejected_transmission.txt
|
230
|
+
- spec/examples/reply/reply2.txt
|
229
231
|
- spec/examples/reply/reply_file.txt
|
230
232
|
- spec/examples/statement4_unpacked.dat
|
231
233
|
- spec/examples/tmp/OUTPUT0412153500.txt
|