finicity 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|