bankserv 0.2.1 → 0.2.2
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/account_holder_verification.rb +6 -2
- data/lib/bankserv/engine.rb +5 -1
- data/lib/bankserv/transmission/document.rb +1 -0
- data/lib/bankserv/transmission/set.rb +2 -2
- data/lib/bankserv/version.rb +1 -1
- data/lib/generators/active_record/templates/migration.rb +1 -0
- data/spec/examples/INPUT.120410144410.txt +14 -0
- data/spec/internal/db/schema.rb +1 -0
- data/spec/lib/bankserv/engine/engine_spec.rb +26 -1
- data/spec/support/helpers.rb +20 -1
- data/spec/tmp/readme +1 -0
- metadata +17 -13
@@ -15,8 +15,12 @@ module Bankserv
|
|
15
15
|
after_create :generate_internal_user_ref
|
16
16
|
|
17
17
|
def generate_internal_user_ref
|
18
|
-
self.internal_user_ref =
|
19
|
-
save!
|
18
|
+
self.internal_user_ref = Bankserv::AccountHolderVerification.generate_reference_number(self)
|
19
|
+
save!
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.generate_reference_number(ahv)
|
23
|
+
"AHV#{ahv.id}"
|
20
24
|
end
|
21
25
|
|
22
26
|
def self.request(options = {})
|
data/lib/bankserv/engine.rb
CHANGED
@@ -89,7 +89,7 @@ module Bankserv
|
|
89
89
|
def write_file!(document)
|
90
90
|
begin
|
91
91
|
transmission = Absa::H2h::Transmission::Document.build([document.to_hash])
|
92
|
-
file_name =
|
92
|
+
file_name = generate_input_file_name
|
93
93
|
File.open("#{Bankserv::Engine.input_directory}/#{file_name}", 'w') { |f|
|
94
94
|
f.puts transmission
|
95
95
|
}
|
@@ -102,6 +102,10 @@ module Bankserv
|
|
102
102
|
true
|
103
103
|
end
|
104
104
|
|
105
|
+
def generate_input_file_name
|
106
|
+
"INPUT.#{Time.now.strftime('%y%m%d%H%M%S')}.txt"
|
107
|
+
end
|
108
|
+
|
105
109
|
def archive_file!(file)
|
106
110
|
year, month = Date.today.year, Date.today.month
|
107
111
|
|
@@ -2,9 +2,9 @@ module Bankserv
|
|
2
2
|
|
3
3
|
class Set < ActiveRecord::Base
|
4
4
|
belongs_to :set
|
5
|
+
belongs_to :document
|
5
6
|
has_many :sets
|
6
7
|
|
7
|
-
has_one :document
|
8
8
|
has_many :records
|
9
9
|
|
10
10
|
def build_header(options = {})
|
@@ -43,7 +43,7 @@ module Bankserv
|
|
43
43
|
records.each do |record|
|
44
44
|
defaults = klass.record_type(record.record_type).template_options
|
45
45
|
record.data = defaults.merge(record.data)
|
46
|
-
record.data[:rec_status]
|
46
|
+
record.data[:rec_status] ||= rec_status
|
47
47
|
end
|
48
48
|
|
49
49
|
self.records.each{|rec| rec.save!} # TODO: does this cause records to save before set?
|
data/lib/bankserv/version.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
000L2012041012345TESTTEST 000000100000
|
2
|
+
030L0000001506
|
3
|
+
031L00000010000000090765462816570367799950JVAJEFFREY VAN ASWEGEN 00000000AHV70
|
4
|
+
031L00000020000000090765462814956965800383JVAJEFFREY VAN ASWEGEN 00000000AHV73
|
5
|
+
039L0000002000000018153092562
|
6
|
+
030L0000002506
|
7
|
+
031L00000010000000045304958348008456465340RC RC TRANSACTIONAL 00000000AHV67 250255000060LD00000000000000000
|
8
|
+
031L00000020000000039243424238008456465340RC RC DEPOSIT 00000000AHV68 250255000060LD00000000000000000
|
9
|
+
031L00000030000000620973636704662871445971DA DOUGLAS ANDERSON 00000000AHV69 250655000060LD00000000000000000
|
10
|
+
031L00000040000000000704402131345940529631PDVPETER DE VILLIERS 00000000AHV71 020009000060LD00000000000000000
|
11
|
+
031L00000050000000620973636704285493033498DA DOUGLAS ANDERSON 00000000AHV72 250655000060LD00000000000000000
|
12
|
+
031L00000060000000000704402131116501771108PDVPETER DE VILLIERS 00000000AHV74 020009000060LD00000000000000000
|
13
|
+
039L0000006000000132790446023
|
14
|
+
999L000000014
|
data/spec/internal/db/schema.rb
CHANGED
@@ -16,7 +16,7 @@ describe Bankserv::Engine do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
FileUtils.rm_rf(Dir.pwd + "/spec/examples/host2host/archives", secure: true)
|
19
|
-
|
19
|
+
File.delete(Dir.pwd + "/spec/tmp/harry.txt")
|
20
20
|
end
|
21
21
|
|
22
22
|
context "Prepare engine" do
|
@@ -134,4 +134,29 @@ describe Bankserv::Engine do
|
|
134
134
|
|
135
135
|
end
|
136
136
|
|
137
|
+
context "processing ahv requests" do
|
138
|
+
|
139
|
+
before(:each) do
|
140
|
+
Timecop.travel(Time.local(2012, 4, 10, 10, 5, 0))
|
141
|
+
@tmpdir = Dir.pwd + "/spec/tmp"
|
142
|
+
tear_it_down
|
143
|
+
create(:configuration, client_code: "12345", client_name: "TESTTEST", user_code: "9999", user_generation_number: 1, client_abbreviated_name: "TESTTEST", department_code: "506")
|
144
|
+
Bankserv::EngineConfiguration.create!(interval_in_minutes: 15, input_directory: @tmpdir, output_directory: @tmpdir, archive_directory: @tmpdir)
|
145
|
+
end
|
146
|
+
|
147
|
+
it "should create a valid input document" do
|
148
|
+
Bankserv::AccountHolderVerification.should_receive(:generate_reference_number).exactly(8).times.and_return("AHV67","AHV68","AHV69","AHV70","AHV71","AHV72","AHV73","AHV74")
|
149
|
+
create_ahv_requests_scenario
|
150
|
+
e = Bankserv::Engine.new
|
151
|
+
e.should_receive(:generate_input_file_name).and_return("harry.txt")
|
152
|
+
e.process!
|
153
|
+
|
154
|
+
expected_string = File.open("./spec/examples/INPUT.120410144410.txt", "rb").read
|
155
|
+
got_string = File.open(@tmpdir + '/harry.txt', "rb").read
|
156
|
+
|
157
|
+
got_string.should == expected_string
|
158
|
+
end
|
159
|
+
|
160
|
+
end
|
161
|
+
|
137
162
|
end
|
data/spec/support/helpers.rb
CHANGED
@@ -182,6 +182,25 @@ module Helpers
|
|
182
182
|
}]
|
183
183
|
}
|
184
184
|
})
|
185
|
-
end
|
185
|
+
end
|
186
|
+
|
187
|
+
def create_ahv_requests_scenario
|
188
|
+
info = {:data=>{:user_ref=>618, :bank_account=>{:account_number=>"4530495834", :id_number=>"8008456465340", :initials=>"RC", :account_name=>"RC Transactional", :branch_code=>"250255", :account_type=>"savings"}}}
|
189
|
+
Bankserv::AccountHolderVerification.request(info)
|
190
|
+
info = {:data=>{:user_ref=>619, :bank_account=>{:account_number=>"3924342423", :id_number=>"8008456465340", :initials=>"RC", :account_name=>"RC Deposit", :branch_code=>"250255", :account_type=>"savings"}}}
|
191
|
+
Bankserv::AccountHolderVerification.request(info)
|
192
|
+
info = {:data=>{:user_ref=>620, :bank_account=>{:account_number=>"62097363670", :id_number=>"4662871445971", :initials=>"DA", :account_name=>"Douglas Anderson", :branch_code=>"250655", :account_type=>"current"}}}
|
193
|
+
Bankserv::AccountHolderVerification.request(info)
|
194
|
+
info = {:data=>{:user_ref=>621, :bank_account=>{:account_number=>"9076546281", :id_number=>"6570367799950", :initials=>"JvA", :account_name=>"Jeffrey van Aswegen", :branch_code=>"632005", :account_type=>"savings"}}}
|
195
|
+
Bankserv::AccountHolderVerification.request(info)
|
196
|
+
info = {:data=>{:user_ref=>622, :bank_account=>{:account_number=>"070440213", :id_number=>"1345940529631", :initials=>"PDV", :account_name=>"Peter De Villiers", :branch_code=>"20009", :account_type=>"current"}}}
|
197
|
+
Bankserv::AccountHolderVerification.request(info)
|
198
|
+
info = {:data=>{:user_ref=>623, :bank_account=>{:account_number=>"62097363670", :id_number=>"4285493033498", :initials=>"DA", :account_name=>"Douglas Anderson", :branch_code=>"250655", :account_type=>"current"}}}
|
199
|
+
Bankserv::AccountHolderVerification.request(info)
|
200
|
+
info = {:data=>{:user_ref=>624, :bank_account=>{:account_number=>"9076546281", :id_number=>"4956965800383", :initials=>"JvA", :account_name=>"Jeffrey van Aswegen", :branch_code=>"632005", :account_type=>"savings"}}}
|
201
|
+
Bankserv::AccountHolderVerification.request(info)
|
202
|
+
info = {:data=>{:user_ref=>625, :bank_account=>{:account_number=>"070440213", :id_number=>"1116501771108", :initials=>"PDV", :account_name=>"Peter De Villiers", :branch_code=>"20009", :account_type=>"current"}}}
|
203
|
+
Bankserv::AccountHolderVerification.request(info)
|
204
|
+
end
|
186
205
|
end
|
187
206
|
|
data/spec/tmp/readme
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
For git.
|
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.2.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ date: 2012-04-10 00:00:00.000000000Z
|
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
17
|
-
requirement: &
|
17
|
+
requirement: &70116524139980 !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: *70116524139980
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: activerecord
|
28
|
-
requirement: &
|
28
|
+
requirement: &70116524139400 !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: *70116524139400
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: i18n
|
39
|
-
requirement: &
|
39
|
+
requirement: &70116524138840 !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: *70116524138840
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: absa-h2h
|
50
|
-
requirement: &
|
50
|
+
requirement: &70116524138220 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 0.1.1
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70116524138220
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: absa-esd
|
61
|
-
requirement: &
|
61
|
+
requirement: &70116524137520 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 0.0.2
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70116524137520
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: combustion
|
72
|
-
requirement: &
|
72
|
+
requirement: &70116524136940 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
@@ -77,7 +77,7 @@ dependencies:
|
|
77
77
|
version: 0.3.1
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *70116524136940
|
81
81
|
description: ! "This engine allows users to inject requests into a queue to be processed.
|
82
82
|
\n \n The queue handles bank account validations, credit payments,
|
83
83
|
debit orders\n and collecting bank statements. "
|
@@ -128,6 +128,7 @@ files:
|
|
128
128
|
- lib/core_extensions.rb
|
129
129
|
- lib/generators/active_record/bankserv_generator.rb
|
130
130
|
- lib/generators/active_record/templates/migration.rb
|
131
|
+
- spec/examples/INPUT.120410144410.txt
|
131
132
|
- spec/examples/ahv_input_file.txt
|
132
133
|
- spec/examples/ahv_output_file.txt
|
133
134
|
- spec/examples/credit_eft_input.txt
|
@@ -162,6 +163,7 @@ files:
|
|
162
163
|
- spec/lib/bankserv/transmission/statement_spec.rb
|
163
164
|
- spec/spec_helper.rb
|
164
165
|
- spec/support/helpers.rb
|
166
|
+
- spec/tmp/readme
|
165
167
|
homepage: ''
|
166
168
|
licenses: []
|
167
169
|
post_install_message:
|
@@ -187,6 +189,7 @@ signing_key:
|
|
187
189
|
specification_version: 3
|
188
190
|
summary: A rails 3 engine wrapped around the Absa Host 2 Host gem.
|
189
191
|
test_files:
|
192
|
+
- spec/examples/INPUT.120410144410.txt
|
190
193
|
- spec/examples/ahv_input_file.txt
|
191
194
|
- spec/examples/ahv_output_file.txt
|
192
195
|
- spec/examples/credit_eft_input.txt
|
@@ -221,3 +224,4 @@ test_files:
|
|
221
224
|
- spec/lib/bankserv/transmission/statement_spec.rb
|
222
225
|
- spec/spec_helper.rb
|
223
226
|
- spec/support/helpers.rb
|
227
|
+
- spec/tmp/readme
|