aq_banking 0.1.1 → 0.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 37e0c9634716c12e46c6d08dbc994d31b6937883
4
- data.tar.gz: b971e91d93635c789d92dde7b83074e0a73dc4a7
3
+ metadata.gz: cef0811dfdb94ed0b563fdda4d5ab651b13e4839
4
+ data.tar.gz: 6f19b1ecbf90f90a5c34d6281c57e9c88b7df487
5
5
  SHA512:
6
- metadata.gz: b6528e939651d57a2aae7ca9bb2f7f4131085b4deab5dbec1ae9db4956ee907bfd07bed3534642b6c057722b436590b66b0d7a4c9e5fc6074ff9a50a3e619981
7
- data.tar.gz: 3478fd205987fc55e7e5ca1b714f5b655ab111dd3dc66e0ac8fdc28087a0587dcbbc38db8f2d762d6079e14540bc6cd69f814008da5b42ffc66e81003118deb9
6
+ metadata.gz: f7e9465feccb2285121a5c60818d609c6d80af4fade8cd611d176378015970c1a530eae35b2a91416011ff45efa587d8a01a8b6df66d398e56633037c5303b68
7
+ data.tar.gz: 57ceacef7efcb7573538f23281fcd5d5f80ad0331e6bf77dfb873a89945149aaea45419e0157d9b36ec085aa477320964ff087652fa082f1ad537279a3cd8a1e
data/.dockerignore ADDED
@@ -0,0 +1,6 @@
1
+ README.md
2
+ .dockerignore
3
+ .travis.yml
4
+ coverage/
5
+ Dockerfile
6
+ .idea/
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ bin/
data/Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM ruby:2.2.2
1
+ FROM ruby:2.3.0
2
2
  MAINTAINER Robin Wenglewski, robin@wenglewski.de
3
3
 
4
4
  RUN apt-get update -qq && apt-get install -y \
@@ -6,10 +6,6 @@ RUN apt-get update -qq && apt-get install -y \
6
6
  aqbanking-tools \
7
7
  ktoblzcheck
8
8
 
9
- RUN mkdir /gem
10
- WORKDIR /gem
9
+ RUN gem install aq_banking
11
10
 
12
- COPY . /gem
13
- RUN bundle install
14
-
15
- CMD bundle exec rspec
11
+ ENTRYPOINT ["aq_banking"]
data/README.md CHANGED
@@ -3,8 +3,52 @@
3
3
  [![Travis Status](https://travis-ci.org/rweng/aq_banking.svg)](https://travis-ci.org/rweng/aq_banking)
4
4
  [![codecov.io](http://codecov.io/github/rweng/aq_banking/coverage.svg?branch=master)](http://codecov.io/github/rweng/aq_banking?branch=master)
5
5
 
6
+
7
+ This is a ruby library and command line tool to wrap around the more complex aqbanking cli tools.
8
+
9
+ Sample:
10
+
11
+ ```bash
12
+ $ aq_banking request --bank=diba BLZ ACCCOUNT_NUMBER LOGIN_ID PASSWORD --from=2016-04-18
13
+ {
14
+ "iban": "...",
15
+ "bic": "...",
16
+ "owner": "WENGLEWSKI, ROBIN",
17
+ "currency": "EUR",
18
+ "bank_code": "...",
19
+ "bank_name": "ING-DiBa",
20
+ "booked_balance": 123.45,
21
+ "noted_balance": 123.45,
22
+ "number": "...",
23
+ "name": "Girokonto",
24
+ "transactions": [
25
+ {
26
+ "amount": -22.0,
27
+ "currency": "EUR",
28
+ "date": "2016-04-18 12:00:00 UTC",
29
+ "valuta_date": "2016-04-18 12:00:00 UTC"
30
+ ...
31
+ },
32
+ ...
33
+ ],
34
+ ...
35
+ }
36
+ ```
37
+
38
+ It still requires the aq_banking command line tools to be present.
39
+ To avoid errors with versions etc, I recommend using the docker image:
40
+
41
+ docker run -it --rm rweng/aq_banking --help
42
+ docker run -it --rm rweng/aq_banking request --bank=diba BLZ ACCCOUNT_NUMBER LOGIN_ID PASSWORD --from=2016-04-18
43
+
6
44
  ## Installation
7
45
 
46
+ ### CLI
47
+
48
+ gem install aq_banking
49
+
50
+ ### Ruby
51
+
8
52
  Add this line to your application's Gemfile:
9
53
 
10
54
  ```ruby
@@ -15,15 +59,28 @@ And then execute:
15
59
 
16
60
  $ bundle
17
61
 
18
- ## Tests
62
+ ## Usage
19
63
 
20
- ### Docker
64
+ aq_banking --help
65
+ aq_banking request BLZ ACCCOUNT USER_ID PASSWORD --bank=diba
21
66
 
22
- docker build -t rweng/aq_banking .
23
- docker run -t --rm -v $(pwd):/gem rweng/aq_banking
67
+ ## Development
68
+
69
+ # log into container
70
+ docker-compose run dev
71
+
72
+ # run tests
73
+ rspec
74
+
75
+ ### Release
76
+
77
+ # publish gem
78
+ rake release
79
+
80
+ # publish docker container
81
+ docker-compose build release
82
+ docker push rweng/aq_banking
24
83
 
25
- # or to login and run tests manually
26
- docker run -it --rm -v $(pwd):/gem rweng/aq_banking bash
27
84
 
28
85
  ## Contributing
29
86
 
@@ -0,0 +1,26 @@
1
+ version: '2'
2
+
3
+ services:
4
+ release:
5
+ build: .
6
+ image: rweng/aq_banking
7
+
8
+ dev:
9
+ image: rweng/aq_banking
10
+ depends_on:
11
+ - release
12
+ volumes:
13
+ - .:/gem
14
+ volumes_from:
15
+ - cache
16
+ working_dir: /gem
17
+ entrypoint: []
18
+ command: "/bin/bash -c 'bundle install --binstubs bin; /bin/bash'"
19
+ environment:
20
+ PATH: "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:./bin"
21
+
22
+ cache:
23
+ image: busybox
24
+ volumes:
25
+ - /usr/local/bundle/cache
26
+
@@ -5,20 +5,26 @@ module AqBanking
5
5
  class_option :dry, :type => :boolean, default: false, aliases: '-d'
6
6
  class_option :verbose, :type => :boolean, default: false, aliases: '-v'
7
7
 
8
- option :bank
8
+ option :bank, aliases: '-b', banner: "NAME - one of: #{BANKS.keys.map(&:to_s).join(', ')}"
9
9
  option :server_url
10
10
  option :hbci_version
11
+ option :from, banner: 'FROM - e.g. 2016-01-01'
12
+ option :to, banner: 'TO - e.g. 2016-01-01'
11
13
  desc 'request BANK_CODE ACCOUNT_NUMBER USER_ID PASSWORD', 'requests balance and transactions for an account. you must either specify --bank= or (--server-url and maybe --hbci-version)'
12
14
  def request(bank_code, account_number, user_id, password)
13
- response = commander.send_request!({
14
- server_url: server_url,
15
- hbci_version: hbci_version,
16
- bank_code: bank_code,
17
- account_number: account_number,
18
- user_id: user_id,
19
- password: password
20
- })
21
-
15
+ request_options = {
16
+ server_url: server_url,
17
+ bank_code: bank_code,
18
+ account_number: account_number,
19
+ user_id: user_id,
20
+ password: password
21
+ }
22
+
23
+ request_options[:hbci_version] = hbci_version if hbci_version
24
+ request_options[:from] = options[:from] if options[:from]
25
+ request_options[:to] = options[:to] if options[:to]
26
+
27
+ response = commander.send_request!(request_options)
22
28
  account = parser.parse_account_list(response).first
23
29
 
24
30
  puts account.to_json
@@ -26,7 +32,7 @@ module AqBanking
26
32
 
27
33
  desc 'list_banks', 'shows valid values for the --bank flag'
28
34
  def list_banks
29
- puts BANKS.keys.map(&:to_s).join('\n')
35
+ BANKS.keys.map(&:to_s).each { |key| puts key }
30
36
  end
31
37
 
32
38
  private
@@ -13,12 +13,15 @@ module AqBanking
13
13
  # @param [String] bank_code
14
14
  # @param [String] account_number
15
15
  # @param [String] pin_file path to pin
16
- # @param [Date] from
17
- # @param [Date] to
16
+ # @param [Date,String] from
17
+ # @param [Date,String] to
18
18
  #
19
19
  # @return [String]
20
20
  # @raise [SystemCmdError]
21
21
  def send_request(bank_code, account_number, pin_file, from: nil, to: nil)
22
+ from = Date.parse(from) if from.is_a? String
23
+ to = Date.parse(to) if to.is_a? String
24
+
22
25
  cmd = "#{aq_cli} -P #{pin_file} request -b #{bank_code} -a #{account_number}"
23
26
  cmd << " --fromdate=#{from.strftime("%Y%m%d")}" if from
24
27
  cmd << " --todate=#{to.strftime("%Y%m%d")}" if to
@@ -94,7 +97,7 @@ module AqBanking
94
97
  # @return [AqBanking::Commander::Result]
95
98
  # @raise [Timeout::Error]
96
99
  def run(cmd, timeout: DEFAULT_TIMEOUT)
97
- logger.debug "run: #{cmd}"
100
+ logger.info "run: #{cmd}"
98
101
  result = nil
99
102
 
100
103
  Timeout::timeout(timeout) do
@@ -1,3 +1,3 @@
1
1
  module AqBanking
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/aq_banking.rb CHANGED
@@ -24,7 +24,9 @@ module AqBanking
24
24
  attr_writer :logger
25
25
 
26
26
  def logger
27
- @logger ||= Logger.new(STDOUT)
27
+ @logger ||= Logger.new(STDOUT).tap do |logger|
28
+ logger.level = Logger::WARN
29
+ end
28
30
  end
29
31
  end
30
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aq_banking
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robin Wenglewski
@@ -158,6 +158,7 @@ executables:
158
158
  extensions: []
159
159
  extra_rdoc_files: []
160
160
  files:
161
+ - ".dockerignore"
161
162
  - ".gitignore"
162
163
  - ".rspec"
163
164
  - ".ruby-version"
@@ -167,6 +168,7 @@ files:
167
168
  - README.md
168
169
  - Rakefile
169
170
  - aq_banking.gemspec
171
+ - docker-compose.yml
170
172
  - exe/aq_banking
171
173
  - lib/aq_banking.rb
172
174
  - lib/aq_banking/account_info_list.tt