Class: Hbci::Dialog

Inherits:
Object
  • Object
show all
Defined in:
lib/hbci/dialog.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(connector, system_id: 0) ⇒ Dialog

Returns a new instance of Dialog.



19
20
21
22
23
24
25
26
27
# File 'lib/hbci/dialog.rb', line 19

def initialize(connector, system_id: 0)
  @connector = connector
  @initiated = false
  @hbci_version = '3.0'
  @system_id = system_id
  @tan_mechanism = nil
  @id = 0
  @response = nil
end

Instance Attribute Details

#connectorObject (readonly)

Returns the value of attribute connector.



10
11
12
# File 'lib/hbci/dialog.rb', line 10

def connector
  @connector
end

#hbci_versionObject (readonly)

Returns the value of attribute hbci_version.



6
7
8
# File 'lib/hbci/dialog.rb', line 6

def hbci_version
  @hbci_version
end

#idObject (readonly)

Returns the value of attribute id.



5
6
7
# File 'lib/hbci/dialog.rb', line 5

def id
  @id
end

#responseObject (readonly)

Returns the value of attribute response.



9
10
11
# File 'lib/hbci/dialog.rb', line 9

def response
  @response
end

#system_idObject (readonly)

Returns the value of attribute system_id.



7
8
9
# File 'lib/hbci/dialog.rb', line 7

def system_id
  @system_id
end

#tan_mechanismObject (readonly)

Returns the value of attribute tan_mechanism.



8
9
10
# File 'lib/hbci/dialog.rb', line 8

def tan_mechanism
  @tan_mechanism
end

Class Method Details

.open(connector, system_id: 0) {|dialog| ... } ⇒ Object

Yields:

  • (dialog)


12
13
14
15
16
17
# File 'lib/hbci/dialog.rb', line 12

def self.open(connector, system_id: 0)
  dialog = Dialog.new(connector, system_id: system_id)
  dialog.initiate
  yield dialog
  dialog.finish
end

Instance Method Details

#credentialsObject



29
30
31
# File 'lib/hbci/dialog.rb', line 29

def credentials
  @connector.credentials
end

#finishObject



53
54
55
56
57
58
59
60
61
62
# File 'lib/hbci/dialog.rb', line 53

def finish
  request_message = MessageFactory.build(@connector, self) do |hnvsd|
    hnvsd.add_segment(Segments::HKENDv1.new)
  end
  request_message.compile

  Response.new(@connector.post(request_message))

  @connector.reset_message_number
end

#initiateObject

Raises:



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/hbci/dialog.rb', line 37

def initiate
  request_message = MessageFactory.build(@connector, self) do |hnvsd|
    hnvsd.add_segment(Segments::HKIDNv2.new)
    hnvsd.add_segment(Segments::HKVVBv3.new)
  end
  request_message.compile

  @response = Response.new(@connector.post(request_message))

  raise DialogError.new('Initialization failed', @response.to_s) unless initialization_successful?

  @id            = @response.find('HNHBK').dialog_id
  @tan_mechanism = @response.find('HNVSD').find('HIRMS').allowed_tan_mechanism
  @initiated     = true
end

#initiated?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/hbci/dialog.rb', line 33

def initiated?
  @initiated
end