finicity 0.1.2 → 0.1.3
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/README.md +8 -8
- data/lib/finicity/client.rb +7 -1
- data/lib/finicity/version.rb +1 -1
- data/spec/finicity/client_spec.rb +18 -0
- 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: 9b3be7fb06d75de49e424102c9294f0af58ef843
|
4
|
+
data.tar.gz: 34082cab8784ccebff332c8257d4c6223a49aa6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67a7c6663069a3ee002bc994ff6015cced7f2d3412e7e2ff2b08defe187c3b8c3e77cbf9d0c9bfd913304f1e11063bf1f277d6bedcf86061040300fe93c881b4
|
7
|
+
data.tar.gz: 3157c40b03bde2c3c3922017d4b2857c80f23bd16458c084280b48ea847ba5fc69c7ec3f08c5ddf95a00d6221ace27bf2f76762f2f70250aa56b404f530f32eb
|
data/README.md
CHANGED
@@ -19,10 +19,10 @@ You can configure the finicity gem with the following initializer
|
|
19
19
|
|
20
20
|
```Ruby
|
21
21
|
Finicity::V1.configure do |config|
|
22
|
-
config.base_url = "https://finicity.com"
|
23
|
-
config.
|
24
|
-
config.
|
25
|
-
config.
|
22
|
+
config.base_url = "https://api.finicity.com/aggregation/"
|
23
|
+
config.partner_id = 1
|
24
|
+
config.partner_secret = "1234"
|
25
|
+
config.app_key = "5678"
|
26
26
|
end
|
27
27
|
```
|
28
28
|
|
@@ -42,28 +42,28 @@ will contain a token that is valid for a limited time.
|
|
42
42
|
Creating a session can be done by making a new client and then authenticating
|
43
43
|
|
44
44
|
```Ruby
|
45
|
-
client = Finicity::
|
45
|
+
client = Finicity::Client.new
|
46
46
|
client.authenticate!
|
47
47
|
```
|
48
48
|
|
49
49
|
If you have an existing session, you can re-open your existing session
|
50
50
|
|
51
51
|
```Ruby
|
52
|
-
client = Finicity::
|
52
|
+
client = Finicity::Client.new("token-123")
|
53
53
|
```
|
54
54
|
|
55
55
|
If you have an existing session, and also need to re-open a mfa session,
|
56
56
|
you can pass both tokens into the client when you create it
|
57
57
|
|
58
58
|
```Ruby
|
59
|
-
client = Finicity::
|
59
|
+
client = Finicity::Client.new("token-123", "mfa_session-123")
|
60
60
|
```
|
61
61
|
|
62
62
|
Once you have established a session, you can begin to issue commands to the API
|
63
63
|
using your finicity client
|
64
64
|
|
65
65
|
```Ruby
|
66
|
-
client.
|
66
|
+
client.get_institutions("Chase")
|
67
67
|
```
|
68
68
|
|
69
69
|
TODO: link to docs to list all API commands we support
|
data/lib/finicity/client.rb
CHANGED
@@ -374,7 +374,13 @@ module Finicity
|
|
374
374
|
error_code = nil
|
375
375
|
end
|
376
376
|
|
377
|
-
|
377
|
+
# Finicity API uses 500 status code, with a 103 code in the body to communicate
|
378
|
+
# that the credentials are invalid.
|
379
|
+
if response.status_code == 500 && error_code == 103
|
380
|
+
fail ::Finicity::InvalidCredentialsError.new(103)
|
381
|
+
else
|
382
|
+
fail ::Finicity::GenericError.new(error_message, response.status_code, error_code)
|
383
|
+
end
|
378
384
|
end
|
379
385
|
|
380
386
|
end
|
data/lib/finicity/version.rb
CHANGED
@@ -22,6 +22,15 @@ describe ::Finicity::Client do
|
|
22
22
|
:content_type => "text/plain"
|
23
23
|
)
|
24
24
|
}
|
25
|
+
let(:aggregation_error) {
|
26
|
+
instance_double(
|
27
|
+
::HTTP::Message,
|
28
|
+
:ok? => false,
|
29
|
+
:status_code => 500,
|
30
|
+
:body => '<?xml version="1.0" encoding="UTF-8" standalone="yes"?><error><code>103</code><message>Aggregation error.</message></error>',
|
31
|
+
:content_type => "application/xml"
|
32
|
+
)
|
33
|
+
}
|
25
34
|
|
26
35
|
describe "#activate_accounts" do
|
27
36
|
context "when the response is successful" do
|
@@ -222,6 +231,15 @@ describe ::Finicity::Client do
|
|
222
231
|
expect { subject.discover_accounts(123, 1, []) }.to raise_error(::Finicity::GenericError)
|
223
232
|
end
|
224
233
|
end
|
234
|
+
|
235
|
+
context "when the response is an aggregation error" do
|
236
|
+
it "fails with InvalidCredentials" do
|
237
|
+
allow_any_instance_of(::Finicity::V1::Request::DiscoverAccounts).to(
|
238
|
+
receive(:discover_accounts).and_return(aggregation_error)
|
239
|
+
)
|
240
|
+
expect { subject.discover_accounts(123, 1, []) }.to raise_error(::Finicity::InvalidCredentialsError)
|
241
|
+
end
|
242
|
+
end
|
225
243
|
end
|
226
244
|
|
227
245
|
describe "#discover_accounts_with_mfa" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: finicity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Moneydesktop
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpclient
|