bank_scrap 0.0.13 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bank_scrap/banks/bbva.rb +14 -3
- data/lib/bank_scrap/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 032037fabd4f7fdb19e19a15c284f1f4d81ebd98
|
4
|
+
data.tar.gz: 0084c4701ff1ceb0e498c173e63819ce4a8d9404
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30a368317e1cc336e7d179ce2119d4937ef666eef1ef3603e159b9a273414c49e57734d100f7ac2882ade92520d294358162b9745497342b3936a99f9af5f30c
|
7
|
+
data.tar.gz: a73e6cf9b6cc440d37c3bee5edb9e54418eed33b668ff96cf3d44f7b28717ab4b99cec78dbc36a513190061e43b41dc1f160fe006c822c60097e39450e39393b
|
@@ -57,7 +57,6 @@ module BankScrap
|
|
57
57
|
# Returns an array of BankScrap::Transaction objects
|
58
58
|
def fetch_transactions_for(account, start_date: Date.today - 1.month, end_date: Date.today)
|
59
59
|
from_date = start_date.strftime('%Y-%m-%d')
|
60
|
-
to_date = end_date.strftime('%Y-%m-%d')
|
61
60
|
|
62
61
|
# Misteriously we need a specific content-type here
|
63
62
|
funny_headers = {
|
@@ -65,24 +64,36 @@ module BankScrap
|
|
65
64
|
'BBVA-Method' => 'GET'
|
66
65
|
}
|
67
66
|
|
67
|
+
# The API accepts a toDate param that we could pass the end_date argument,
|
68
|
+
# however when we pass the toDate param, the API stops returning the account balance.
|
69
|
+
# Therefore we need to take a workaround: only filter with fromDate and loop
|
70
|
+
# over all the available pages, filtering out the movements that doesn't match
|
71
|
+
# the end_date argument.
|
68
72
|
url = BASE_ENDPOINT +
|
69
73
|
ACCOUNT_ENDPOINT +
|
70
74
|
account.id +
|
71
|
-
"/movements/v1?fromDate=#{from_date}
|
75
|
+
"/movements/v1?fromDate=#{from_date}"
|
76
|
+
|
72
77
|
offset = nil
|
78
|
+
pagination_balance = nil
|
73
79
|
transactions = []
|
74
80
|
|
75
81
|
with_headers(funny_headers) do
|
76
82
|
# Loop over pagination
|
77
83
|
loop do
|
78
84
|
new_url = offset ? (url + "&offset=#{offset}") : url
|
85
|
+
new_url = pagination_balance ? (new_url + "&paginationBalance=#{pagination_balance}") : new_url
|
79
86
|
json = JSON.parse(post(new_url, {}))
|
80
87
|
|
81
88
|
unless json['movements'].blank?
|
82
|
-
|
89
|
+
# As explained before, we have to discard records newer than end_date.
|
90
|
+
filtered_movements = json['movements'].select { |m| Date.parse(m['operationDate']) <= end_date }
|
91
|
+
|
92
|
+
transactions += filtered_movements.map do |data|
|
83
93
|
build_transaction(data, account)
|
84
94
|
end
|
85
95
|
offset = json['offset']
|
96
|
+
pagination_balance = json['paginationBalance']
|
86
97
|
end
|
87
98
|
|
88
99
|
break unless json['thereAreMoreMovements'] == true
|
data/lib/bank_scrap/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bank_scrap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ismael Sánchez
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2015-
|
14
|
+
date: 2015-06-17 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|