fractal_api 0.1.1 → 0.1.2
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 +4 -4
- data/Gemfile.lock +7 -3
- data/lib/fractal_api.rb +4 -0
- data/lib/fractal_api/client.rb +6 -4
- data/lib/fractal_api/errors.rb +2 -0
- data/lib/fractal_api/forecasting/balance.rb +32 -0
- data/lib/fractal_api/forecasting/forecast.rb +32 -0
- data/lib/fractal_api/forecasting/transaction.rb +33 -0
- data/lib/fractal_api/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f69db059dd2de004347bdda6abab14f73c54a42e1977d6443daca3dc39cf8ea
|
4
|
+
data.tar.gz: 7bd7622a2f7a8771de1ba1aff2fee460115b30f46375d88535e204e0a22f22e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7ce8cd567a6268bc854f41cf163f8f98ac0919fe41e1369025dfac13a4ce3e41fd87f1d0ae71037003f9b12de1fc6fba38cf9ffa892d92b31281f1953b183dc
|
7
|
+
data.tar.gz: d6411a3228f4d22eef65e90dbbdb0fb03138ed797e565c82d3159118e09c56b6be340140393bdef76898c08f5afb52c037e33a5ed381b69c4336d0677345ebbe
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
fractal_api (0.1.
|
4
|
+
fractal_api (0.1.2)
|
5
5
|
faraday
|
6
6
|
faraday_middleware
|
7
7
|
faraday_middleware-multi_json
|
@@ -17,11 +17,15 @@ GEM
|
|
17
17
|
rexml
|
18
18
|
diff-lcs (1.4.4)
|
19
19
|
dotenv (2.7.6)
|
20
|
-
faraday (1.
|
20
|
+
faraday (1.4.1)
|
21
|
+
faraday-excon (~> 1.1)
|
21
22
|
faraday-net_http (~> 1.0)
|
23
|
+
faraday-net_http_persistent (~> 1.1)
|
22
24
|
multipart-post (>= 1.2, < 3)
|
23
|
-
ruby2_keywords
|
25
|
+
ruby2_keywords (>= 0.0.4)
|
26
|
+
faraday-excon (1.1.0)
|
24
27
|
faraday-net_http (1.0.1)
|
28
|
+
faraday-net_http_persistent (1.1.0)
|
25
29
|
faraday_middleware (1.0.0)
|
26
30
|
faraday (~> 1.0)
|
27
31
|
faraday_middleware-multi_json (0.0.6)
|
data/lib/fractal_api.rb
CHANGED
@@ -10,6 +10,9 @@ require 'fractal_api/consent'
|
|
10
10
|
require 'fractal_api/bank_account'
|
11
11
|
require 'fractal_api/balance'
|
12
12
|
require 'fractal_api/transaction'
|
13
|
+
require 'fractal_api/forecasting/forecast'
|
14
|
+
require 'fractal_api/forecasting/balance'
|
15
|
+
require 'fractal_api/forecasting/transaction'
|
13
16
|
|
14
17
|
module FractalApi
|
15
18
|
module_function
|
@@ -38,6 +41,7 @@ module FractalApi
|
|
38
41
|
|
39
42
|
yield
|
40
43
|
|
44
|
+
ensure
|
41
45
|
Thread.current[:fractal_api_token] = nil
|
42
46
|
end
|
43
47
|
|
data/lib/fractal_api/client.rb
CHANGED
@@ -49,13 +49,15 @@ module FractalApi
|
|
49
49
|
|
50
50
|
case response.status
|
51
51
|
when 400
|
52
|
-
raise InvalidRequestError, response.body
|
52
|
+
raise InvalidRequestError, response.body.inspect
|
53
53
|
when 401
|
54
|
-
raise APIKeyError, response.body
|
54
|
+
raise APIKeyError, response.body.inspect
|
55
55
|
when 403
|
56
|
-
raise UnauthorizedError, response.body
|
56
|
+
raise UnauthorizedError, response.body.inspect
|
57
|
+
when 404
|
58
|
+
raise NotFoundError, response.body.inspect
|
57
59
|
else
|
58
|
-
raise GenericError, response.body
|
60
|
+
raise GenericError, "#{response.status}: #{response.body.inspect}"
|
59
61
|
end
|
60
62
|
end
|
61
63
|
end
|
data/lib/fractal_api/errors.rb
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'time'
|
4
|
+
require 'fractal_api/base_model'
|
5
|
+
require 'fractal_api/paginator'
|
6
|
+
|
7
|
+
module FractalApi
|
8
|
+
module Forecasting
|
9
|
+
class Balance < BaseModel
|
10
|
+
attributes :id, :bank_id, :forecast_id, :account_id,
|
11
|
+
:amount, :currency, :date, :type, :source
|
12
|
+
|
13
|
+
def self.all(company_id, filters = {})
|
14
|
+
filters = filters.transform_keys { |key| key_transformer.transform(key) }
|
15
|
+
|
16
|
+
Paginator.new('/forecasting/v2/balances', self) do |url|
|
17
|
+
get(
|
18
|
+
url,
|
19
|
+
params: filters,
|
20
|
+
headers: { 'X-Company-Id' => company_id }
|
21
|
+
)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.build(json:)
|
26
|
+
super.tap do |record|
|
27
|
+
record.date = Time.parse(record.date) if record.date
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'time'
|
4
|
+
require 'fractal_api/base_model'
|
5
|
+
require 'fractal_api/paginator'
|
6
|
+
|
7
|
+
module FractalApi
|
8
|
+
module Forecasting
|
9
|
+
class Forecast < BaseModel
|
10
|
+
attributes :id, :bank_id, :account_id,
|
11
|
+
:name, :date, :type, :source
|
12
|
+
|
13
|
+
def self.all(company_id, filters = {})
|
14
|
+
filters = filters.transform_keys { |key| key_transformer.transform(key) }
|
15
|
+
|
16
|
+
Paginator.new('/forecasting/v2/forecasts', self) do |url|
|
17
|
+
get(
|
18
|
+
url,
|
19
|
+
params: filters,
|
20
|
+
headers: { 'X-Company-Id' => company_id }
|
21
|
+
)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.build(json:)
|
26
|
+
super.tap do |record|
|
27
|
+
record.date = Time.parse(record.date) if record.date
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'time'
|
4
|
+
require 'fractal_api/base_model'
|
5
|
+
require 'fractal_api/paginator'
|
6
|
+
|
7
|
+
module FractalApi
|
8
|
+
module Forecasting
|
9
|
+
class Transaction < BaseModel
|
10
|
+
attributes :id, :bank_id, :forecast_id, :account_id,
|
11
|
+
:value_date, :amount, :currency,
|
12
|
+
:type, :merchant, :category, :reasons, :source
|
13
|
+
|
14
|
+
def self.all(company_id, filters = {})
|
15
|
+
filters = filters.transform_keys { |key| key_transformer.transform(key) }
|
16
|
+
|
17
|
+
Paginator.new('/forecasting/v2/transactions', self) do |url|
|
18
|
+
get(
|
19
|
+
url,
|
20
|
+
params: filters,
|
21
|
+
headers: { 'X-Company-Id' => company_id }
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.build(json:)
|
27
|
+
super.tap do |record|
|
28
|
+
record.value_date = Time.parse(record.value_date) if record.value_date
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/fractal_api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fractal_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Finpoint
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
11
|
+
date: 2021-04-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -197,6 +197,9 @@ files:
|
|
197
197
|
- lib/fractal_api/consent.rb
|
198
198
|
- lib/fractal_api/errors.rb
|
199
199
|
- lib/fractal_api/faraday_auth.rb
|
200
|
+
- lib/fractal_api/forecasting/balance.rb
|
201
|
+
- lib/fractal_api/forecasting/forecast.rb
|
202
|
+
- lib/fractal_api/forecasting/transaction.rb
|
200
203
|
- lib/fractal_api/merchant.rb
|
201
204
|
- lib/fractal_api/paged_response.rb
|
202
205
|
- lib/fractal_api/paginator.rb
|