hbci 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ce916948b36a1f61620a4b24e65427e49a03ba97e023564089b746d7bd401e4d
4
- data.tar.gz: c37152dfaa3c4c780d15b4e26fa12823bea19ba62a54561fa0ee6121f079f6c2
3
+ metadata.gz: 6d8863eaee26a37c3a6abe14db9196ffdded7a0c556ba1f16e96b9359b7c208a
4
+ data.tar.gz: 2384b7d356861ba1100e0ffe94da7818d209e06d380882a11b25e6e6c6b7c340
5
5
  SHA512:
6
- metadata.gz: 7525c7cd7bbd0172a0ecf21c16833d92dbc16355eee232a1cde22eaa039578cd54a723046765dbf36ed68da97cb021ec91574ce09e742e19fd272095c204b890
7
- data.tar.gz: 269ac9f6aed0b1238bc2eeb54ddd52d6501169cdc94f6f94215c9d1f260044dfd6091e822ad632c7ebdef20b403870718ddc0ebe391dc2d09d0c84772419334e
6
+ metadata.gz: 6aa8166bb31112f62d23eeca4f43df2d3fe700885559b613444459f07d0efca42d091e5612b87f2b44394b652cc9a4fcbd7e5e4421744077a86ff80f5f1a02ac
7
+ data.tar.gz: 5e18b33710be68bba1b1688c02ad86ee2e46aba6a807671c9227d8f80c7137738c189260bfc4fe782ed3d6831217e0c111d78f7b208e781989bb0c0166098647
data/README.md CHANGED
@@ -37,9 +37,6 @@ credentials = BankCredentials::Hbci.new({
37
37
  user_id: 'user_id',
38
38
  pin: 'pin'
39
39
  })
40
-
41
- connector = Hbci::Connector.instance
42
- connector.credentials = credentials
43
40
  ```
44
41
 
45
42
  Now, you can receive your balances, accounts and transactions:
@@ -51,10 +48,12 @@ iban = 'DE05740900000011111111'
51
48
  start_date = 3.day.ago
52
49
  end_date = Time.now
53
50
 
54
- Hbci::Dialog.open do |dialog|
55
- transactions = Hbci::Services::TransactionsReceiver.new(dialog, iban).perform(start_date, end_date)
56
- transactions.each do |transaction|
57
- puts transaction
51
+ Hbci::Connector.open(credentials) do |connector|
52
+ Hbci::Dialog.open(connector) do |dialog|
53
+ transactions = Hbci::Services::TransactionsReceiver.new(connector, dialog, iban).perform(start_date, end_date)
54
+ transactions.each do |transaction|
55
+ puts transaction
56
+ end
58
57
  end
59
58
  end
60
59
  ```
@@ -64,20 +63,25 @@ end
64
63
  ```ruby
65
64
  iban = 'DE05740900000011111111'
66
65
 
67
- Hbci::Dialog.open do |dialog|
68
- puts Hbci::Services::BalanceReceiver.new(dialog, iban).perform
66
+ Hbci::Connector.open(credentials) do |connector|
67
+ Hbci::Dialog.open(connector) do |dialog|
68
+ puts Hbci::Services::BalanceReceiver.new(connector, dialog, iban).perform
69
+ end
69
70
  end
70
71
  ```
71
72
 
72
73
  ### Receiving the accounts
73
74
 
74
75
  ```ruby
75
- Hbci::Dialog.open do |dialog|
76
- accounts = Hbci::Services::AccountsReceiver.new(dialog).perform
77
- accounts.each do |account|
78
- puts account
76
+ Hbci::Connector.open(credentials) do |connector|
77
+ Hbci::Dialog.open(connector) do |dialog|
78
+ accounts = Hbci::Services::AccountsReceiver.new(dialog).perform
79
+ accounts.each do |account|
80
+ puts account
81
+ end
79
82
  end
80
83
  end
84
+
81
85
  ```
82
86
  ## Banks tested
83
87
 
@@ -51,7 +51,3 @@ raise 'missing iban' unless @iban
51
51
  user_id: @options[:user_id],
52
52
  pin: @options[:pin]
53
53
  )
54
-
55
- connector = Hbci::Connector.instance
56
- connector.credentials = @credentials
57
-
@@ -3,9 +3,11 @@
3
3
  require_relative '../lib/hbci'
4
4
  require_relative 'credentials'
5
5
 
6
- Hbci::Dialog.open(system_id: @options[:system_id]) do |dialog|
7
- accounts = Hbci::Services::AccountsReceiver.new(dialog).perform
8
- accounts.each do |account|
9
- puts account
6
+ Hbci::Connector.open(@credentials) do |connector|
7
+ Hbci::Dialog.open(connector, system_id: @options[:system_id]) do |dialog|
8
+ accounts = Hbci::Services::AccountsReceiver.new(dialog).perform
9
+ accounts.each do |account|
10
+ puts account
11
+ end
10
12
  end
11
13
  end
@@ -3,6 +3,8 @@
3
3
  require_relative '../lib/hbci'
4
4
  require_relative 'credentials'
5
5
 
6
- Hbci::Dialog.open(system_id: @options[:system_id]) do |dialog|
7
- puts Hbci::Services::BalanceReceiver.new(dialog, @iban).perform
6
+ Hbci::Connector.open(@credentials) do |connector|
7
+ Hbci::Dialog.open(connector, system_id: @options[:system_id]) do |dialog|
8
+ puts Hbci::Services::BalanceReceiver.new(connector, dialog, @iban).perform
9
+ end
8
10
  end
@@ -3,4 +3,6 @@
3
3
  require_relative '../lib/hbci'
4
4
  require_relative 'credentials'
5
5
 
6
- puts Hbci::Services::SystemIdReceiver.new.perform
6
+ Hbci::Connector.open(@credentials) do |connector|
7
+ puts Hbci::Services::SystemIdReceiver.new(connector).perform
8
+ end
@@ -6,10 +6,12 @@ require_relative 'credentials'
6
6
  start_date = 3.day.ago
7
7
  end_date = Time.now
8
8
 
9
- Hbci::Dialog.open(system_id: @options[:system_id]) do |dialog|
10
- transactions = Hbci::Services::TransactionsReceiver.new(dialog, @iban, @hbci_version).perform(start_date, end_date)
11
- transactions.each do |transaction|
12
- puts transaction
9
+ Hbci::Connector.open(@credentials) do |connector|
10
+ Hbci::Dialog.open(connector, system_id: @options[:system_id]) do |dialog|
11
+ transactions = Hbci::Services::TransactionsReceiver.new(connector, dialog, @iban, @hbci_version).perform(start_date, end_date)
12
+ transactions.each do |transaction|
13
+ puts transaction
14
+ end
13
15
  end
14
16
  end
15
17
 
@@ -1,15 +1,16 @@
1
- # frozen_string_literal: true
2
-
3
- require 'singleton'
4
-
5
1
  module Hbci
6
2
  class Connector
7
- include Singleton
8
-
9
3
  attr_accessor :message_number
10
4
  attr_reader :credentials
11
5
 
12
- def initialize
6
+ def self.open(credentials)
7
+ connector = new(credentials)
8
+ yield connector
9
+ connector.reset_message_number
10
+ end
11
+
12
+ def initialize(credentials)
13
+ self.credentials = credentials
13
14
  reset_message_number
14
15
  end
15
16
 
@@ -9,15 +9,15 @@ module Hbci
9
9
  attr_reader :response
10
10
  attr_reader :connector
11
11
 
12
- def self.open(system_id: 0)
13
- dialog = Dialog.new(system_id: system_id)
12
+ def self.open(connector, system_id: 0)
13
+ dialog = Dialog.new(connector, system_id: system_id)
14
14
  dialog.initiate
15
15
  yield dialog
16
16
  dialog.finish
17
17
  end
18
18
 
19
- def initialize(system_id: 0)
20
- @connector = Connector.instance
19
+ def initialize(connector, system_id: 0)
20
+ @connector = connector
21
21
  @initiated = false
22
22
  @hbci_version = '3.0'
23
23
  @system_id = system_id
@@ -35,7 +35,7 @@ module Hbci
35
35
  end
36
36
 
37
37
  def initiate
38
- request_message = MessageFactory.build(self) do |hnvsd|
38
+ request_message = MessageFactory.build(@connector, self) do |hnvsd|
39
39
  hnvsd.add_segment(Segments::HKIDNv2.new)
40
40
  hnvsd.add_segment(Segments::HKVVBv3.new)
41
41
  end
@@ -51,7 +51,7 @@ module Hbci
51
51
  end
52
52
 
53
53
  def finish
54
- request_message = MessageFactory.build(self) do |hnvsd|
54
+ request_message = MessageFactory.build(@connector, self) do |hnvsd|
55
55
  hnvsd.add_segment(Segments::HKENDv1.new)
56
56
  end
57
57
  request_message.compile
@@ -2,10 +2,11 @@
2
2
 
3
3
  module Hbci
4
4
  class Message
5
- attr_reader :dialog, :segments, :sec_ref
5
+ attr_reader :connector, :dialog, :segments, :sec_ref
6
6
  attr_accessor :next_position
7
7
 
8
- def initialize(dialog = nil)
8
+ def initialize(connector, dialog = nil)
9
+ @connector = connector
9
10
  @dialog = dialog
10
11
  @sec_ref = generate_security_reference
11
12
  @segments = []
@@ -1,7 +1,7 @@
1
1
  module Hbci
2
2
  module MessageFactory
3
- def self.build(dialog)
4
- request_message = Message.new(dialog)
3
+ def self.build(connector, dialog)
4
+ request_message = Message.new(connector, dialog)
5
5
  request_message.add_segment(Segments::HNHBKv3.new)
6
6
  request_message.add_segment(Segments::HNVSKv3.new)
7
7
  hnvsd = Segments::HNVSDv1.new do |s|
@@ -13,8 +13,8 @@ module Hbci
13
13
  element :state, default: 1
14
14
 
15
15
  def compile
16
- self.bank.code = Connector.instance.credentials.bank_code
17
- self.user_id = Connector.instance.credentials.user_id
16
+ self.bank.code = request_message.connector.credentials.bank_code
17
+ self.user_id = request_message.connector.credentials.user_id
18
18
  self.system_id = request_message.dialog ? request_message.dialog.system_id : 0
19
19
  end
20
20
  end
@@ -16,7 +16,7 @@ module Hbci
16
16
  def compile
17
17
  self.message_size = '000000000000'
18
18
  self.dialog_id = request_message.dialog ? request_message.dialog.id : 0
19
- self.message_number = Connector.instance.message_number
19
+ self.message_number = request_message.connector.message_number
20
20
  end
21
21
 
22
22
  def after_compile
@@ -7,7 +7,7 @@ module Hbci
7
7
  element :message_number
8
8
 
9
9
  def compile
10
- self.message_number = Connector.instance.message_number
10
+ self.message_number = request_message.connector.message_number
11
11
  end
12
12
  end
13
13
  end
@@ -24,7 +24,7 @@ module Hbci
24
24
 
25
25
  def compile
26
26
  self.security_reference = request_message.sec_ref
27
- signature.pin = Connector.instance.credentials.pin
27
+ signature.pin = request_message.connector.credentials.pin
28
28
  end
29
29
  end
30
30
  end
@@ -71,8 +71,8 @@ module Hbci
71
71
  private
72
72
 
73
73
  def set_credentials
74
- key.bank_code = Connector.instance.credentials.bank_code
75
- key.user_id = Connector.instance.credentials.user_id
74
+ key.bank_code = request_message.connector.credentials.bank_code
75
+ key.user_id = request_message.connector.credentials.user_id
76
76
  end
77
77
  end
78
78
  end
@@ -52,8 +52,8 @@ module Hbci
52
52
  def compile
53
53
  head.position = 998
54
54
  security_identification_details.party_identification = request_message.dialog ? request_message.dialog.system_id : 0
55
- key.bank_code = Connector.instance.credentials.bank_code
56
- key.user_id = Connector.instance.credentials.user_id
55
+ key.bank_code = request_message.connector.credentials.bank_code
56
+ key.user_id = request_message.connector.credentials.user_id
57
57
  end
58
58
  end
59
59
  end
@@ -4,12 +4,12 @@ module Hbci
4
4
  module Services
5
5
  class BalanceReceiver < BaseReceiver
6
6
  def perform
7
- request_message = MessageFactory.build(dialog) do |hnvsd|
7
+ request_message = MessageFactory.build(connector, dialog) do |hnvsd|
8
8
  hnvsd.add_segment(build_hksal)
9
9
  end
10
10
  request_message.compile
11
11
 
12
- @response = Response.new(Connector.instance.post(request_message))
12
+ @response = Response.new(connector.post(request_message))
13
13
 
14
14
  raise @response.to_s unless request_successful?
15
15
 
@@ -3,10 +3,12 @@
3
3
  module Hbci
4
4
  module Services
5
5
  class BaseReceiver
6
+ attr_reader :connector
6
7
  attr_reader :dialog
7
8
  attr_reader :iban
8
9
 
9
- def initialize(dialog, iban, version = nil)
10
+ def initialize(connector, dialog, iban, version = nil)
11
+ @connector = connector
10
12
  @dialog = dialog
11
13
  @iban = Ibanizator.iban_from_string(iban)
12
14
  @version = version
@@ -3,15 +3,21 @@
3
3
  module Hbci
4
4
  module Services
5
5
  class SystemIdReceiver
6
+ attr_reader :connector
7
+
8
+ def initialize(connector)
9
+ @connector = connector
10
+ end
11
+
6
12
  def perform
7
- request_message = MessageFactory.build(nil) do |hnvsd|
13
+ request_message = MessageFactory.build(connector, nil) do |hnvsd|
8
14
  hnvsd.add_segment(Segments::HKIDNv2.new)
9
15
  hnvsd.add_segment(Segments::HKVVBv3.new)
10
16
  hnvsd.add_segment(Segments::HKSYNv3.new)
11
17
  end
12
18
  request_message.compile
13
19
 
14
- @response = Response.new(Connector.instance.post(request_message))
20
+ @response = Response.new(connector.post(request_message))
15
21
 
16
22
  raise @response.to_s unless request_successful?
17
23
 
@@ -11,12 +11,12 @@ module Hbci
11
11
 
12
12
  transactions = []
13
13
  loop do
14
- request_message = MessageFactory.build(dialog) do |hnvsd|
14
+ request_message = MessageFactory.build(connector, dialog) do |hnvsd|
15
15
  hnvsd.add_segment(build_hkkaz)
16
16
  end
17
17
  request_message.compile
18
18
 
19
- @response = Response.new(Connector.instance.post(request_message))
19
+ @response = Response.new(connector.post(request_message))
20
20
 
21
21
  raise @response.to_s unless request_successful?
22
22
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Hbci
4
- VERSION = '0.3.0'
4
+ VERSION = '0.3.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hbci
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Lehnert
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-07-30 00:00:00.000000000 Z
12
+ date: 2018-08-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bank_credentials