Class: FinTS::Dialog
- Inherits:
-
Object
- Object
- FinTS::Dialog
- Defined in:
- lib/fints/dialog.rb
Instance Attribute Summary collapse
-
#dialog_id ⇒ Object
Returns the value of attribute dialog_id.
-
#hkkazversion ⇒ Object
Returns the value of attribute hkkazversion.
-
#hksalversion ⇒ Object
Returns the value of attribute hksalversion.
-
#msg_no ⇒ Object
Returns the value of attribute msg_no.
-
#system_id ⇒ Object
Returns the value of attribute system_id.
-
#tan_mechs ⇒ Object
Returns the value of attribute tan_mechs.
Instance Method Summary collapse
- #init ⇒ Object
-
#initialize(blz, username, pin, system_id, connection) ⇒ Dialog
constructor
A new instance of Dialog.
- #send_end ⇒ Object
- #send_msg(msg) ⇒ Object
- #sync ⇒ Object
Constructor Details
#initialize(blz, username, pin, system_id, connection) ⇒ Dialog
Returns a new instance of Dialog.
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/fints/dialog.rb', line 12 def initialize(blz, username, pin, system_id, connection) @blz = blz @username = username @pin = pin @system_id = system_id @connection = connection @msg_no = 1 @dialog_id = 0 @hksalversion = 6 @hkkazversion = 6 @tan_mechs = [] end |
Instance Attribute Details
#dialog_id ⇒ Object
Returns the value of attribute dialog_id.
6 7 8 |
# File 'lib/fints/dialog.rb', line 6 def dialog_id @dialog_id end |
#hkkazversion ⇒ Object
Returns the value of attribute hkkazversion.
9 10 11 |
# File 'lib/fints/dialog.rb', line 9 def hkkazversion @hkkazversion end |
#hksalversion ⇒ Object
Returns the value of attribute hksalversion.
10 11 12 |
# File 'lib/fints/dialog.rb', line 10 def hksalversion @hksalversion end |
#msg_no ⇒ Object
Returns the value of attribute msg_no.
7 8 9 |
# File 'lib/fints/dialog.rb', line 7 def msg_no @msg_no end |
#system_id ⇒ Object
Returns the value of attribute system_id.
5 6 7 |
# File 'lib/fints/dialog.rb', line 5 def system_id @system_id end |
#tan_mechs ⇒ Object
Returns the value of attribute tan_mechs.
8 9 10 |
# File 'lib/fints/dialog.rb', line 8 def tan_mechs @tan_mechs end |
Instance Method Details
#init ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/fints/dialog.rb', line 57 def init FinTS::Client.logger.info('Initialize Dialog') seg_identification = Segment::HKIDN.new(3, @blz, @username, @system_id) seg_prepare = Segment::HKVVB.new(4) msg_init = Message.new(@blz, @username, @pin, @system_id, @dialog_id, @msg_no, [ seg_identification, seg_prepare, ], @tan_mechs) FinTS::Client.logger.debug("Sending INIT: #{msg_init}") resp = send_msg(msg_init) FinTS::Client.logger.debug("Got INIT response: #{resp}") @dialog_id = resp.get_dialog_id FinTS::Client.logger.info("Received dialog ID: #{@dialog_id}") @dialog_id end |
#send_end ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/fints/dialog.rb', line 89 def send_end FinTS::Client.logger.info('Initialize END') msg_end = Message.new(@blz, @username, @pin, @system_id, @dialog_id, @msg_no, [ Segment::HKEND.new(3, @dialog_id) ]) FinTS::Client.logger.debug("Sending END: #{msg_end}") resp = send_msg(msg_end) FinTS::Client.logger.debug("Got END response: #{resp}") FinTS::Client.logger.info('Resetting dialog ID and message number count') @dialog_id = 0 @msg_no = 1 resp end |
#send_msg(msg) ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/fints/dialog.rb', line 76 def send_msg(msg) FinTS::Client.logger.info('Sending Message') msg.msg_no = @msg_no msg.dialog_id = @dialog_id resp = Response.new(@connection.send_msg(msg)) if !resp.successful? raise DialogError, resp.get_summary_by_segment('HIRMG') end @msg_no += 1 resp end |
#sync ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/fints/dialog.rb', line 25 def sync FinTS::Client.logger.info('Initialize SYNC') seg_identification = Segment::HKIDN.new(3, @blz, @username, 0) seg_prepare = Segment::HKVVB.new(4) seg_sync = Segment::HKSYN.new(5) msg_sync = Message.new(@blz, @username, @pin, @system_id, @dialog_id, @msg_no, [ seg_identification, seg_prepare, seg_sync ]) FinTS::Client.logger.debug("Sending SYNC: #{msg_sync}") resp = send_msg(msg_sync) FinTS::Client.logger.debug("Got SYNC response: #{resp}") @system_id = resp.get_system_id @dialog_id = resp.get_dialog_id @bankname = resp.get_bank_name @hksalversion = resp.get_hksal_max_version @hkkazversion = resp.get_hkkaz_max_version @tan_mechs = resp.get_supported_tan_mechanisms FinTS::Client.logger.debug("Bank name: #{@bankname}") FinTS::Client.logger.debug("System ID: #{@system_id}") FinTS::Client.logger.debug("Dialog ID: #{@dialog_id}") FinTS::Client.logger.debug("HKKAZ max version: #{@hkkazversion}") FinTS::Client.logger.debug("HKSAL max version: #{@hksalversion}") FinTS::Client.logger.debug("TAN mechanisms: #{@tan_mechs}") send_end end |