plaid 1.2.2 → 1.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/plaid/user/user.rb +11 -2
- data/lib/plaid/util.rb +0 -1
- data/lib/plaid/version.rb +1 -1
- data/spec/plaid_spec.rb +36 -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: 00be434d6e58902d9c47db517d0907f668fe620c
|
4
|
+
data.tar.gz: c60a4d95dc87cbff07092a77af43e03bc4f7c1f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0d01df929e6ea2c7a3c3329304814189d78a6074e07507c07124f8c54e60cf1cfc6c2fd8740d35fef964fec26003996576792ddc905ce29ae992b5a4b8c457a
|
7
|
+
data.tar.gz: c90dc4c04e8f953c197a8838984cb53a584ce33325c48112fee5972719179195f153f3f3fb3010e70b76353ae00662feded4ad6a37dd0f653aae73493a05aa7e
|
data/lib/plaid/user/user.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require_relative 'account/account'
|
2
2
|
require_relative 'transaction/transaction'
|
3
3
|
require 'plaid/util'
|
4
|
+
require 'json'
|
4
5
|
module Plaid
|
5
6
|
class Plaid::User
|
6
7
|
include Plaid::Util
|
@@ -30,6 +31,12 @@ module Plaid
|
|
30
31
|
build_user(res)
|
31
32
|
end
|
32
33
|
|
34
|
+
def select_mfa_method(selection,type)
|
35
|
+
auth_path = self.permissions.last + '/step'
|
36
|
+
res = Plaid.post(auth_path,{options:{send_method: selection}.to_json, access_token:self.access_token,type:type})
|
37
|
+
build_user(res,self.permissions.last)
|
38
|
+
end
|
39
|
+
|
33
40
|
def get_auth
|
34
41
|
if self.permissions.include? 'auth'
|
35
42
|
res = Plaid.post('auth/get',{access_token:self.access_token})
|
@@ -79,6 +86,7 @@ module Plaid
|
|
79
86
|
api_level = 'connect' unless self.permissions.include? 'connect'
|
80
87
|
end
|
81
88
|
res = Plaid.post('upgrade',{access_token:self.access_token,upgrade_to:api_level})
|
89
|
+
self.accounts = [], self.transactions = []
|
82
90
|
build_user(res)
|
83
91
|
end
|
84
92
|
|
@@ -107,16 +115,17 @@ module Plaid
|
|
107
115
|
self.transactions << new_transaction(transaction)
|
108
116
|
end
|
109
117
|
end if res['transactions']
|
110
|
-
self.permissions << api_level unless self.permissions.include? api_level
|
118
|
+
self.permissions << api_level unless self.permissions.include? api_level && api_level.nil?
|
111
119
|
self.api_res = 'success'
|
112
120
|
self.pending_mfa_questions = ''
|
121
|
+
self.info.merge!(res['info']) if res['info']
|
113
122
|
self.access_token = res['access_token']
|
114
123
|
clean_up_user(self)
|
115
124
|
else
|
116
125
|
self.access_token = res[:body]['access_token']
|
117
126
|
self.pending_mfa_questions = res[:body]
|
118
127
|
self.api_res = res[:msg]
|
119
|
-
self.permissions << api_level
|
128
|
+
self.permissions << api_level unless self.permissions.include? api_level && api_level.nil?
|
120
129
|
end
|
121
130
|
rescue => e
|
122
131
|
error_handler(e)
|
data/lib/plaid/util.rb
CHANGED
@@ -31,7 +31,6 @@ module Plaid
|
|
31
31
|
req.body = URI.encode_www_form(options) if options
|
32
32
|
req.content_type = 'multipart/form-data'
|
33
33
|
res = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https') { |http| http.request(req) }
|
34
|
-
puts res
|
35
34
|
end
|
36
35
|
|
37
36
|
def error_handler(err,res=nil)
|
data/lib/plaid/version.rb
CHANGED
data/spec/plaid_spec.rb
CHANGED
@@ -373,6 +373,42 @@ describe Plaid do
|
|
373
373
|
mfa_user = Plaid.add_user('connect','plaid_selections', 'plaid_good','bofa')
|
374
374
|
it { expect { mfa_user.mfa_authentication('bad','bofa') }.to raise_error }
|
375
375
|
end
|
376
|
+
|
377
|
+
context 'requests list of MFA credentials' do
|
378
|
+
Plaid.config do |p|
|
379
|
+
p.customer_id = 'test_id'
|
380
|
+
p.secret = 'test_secret'
|
381
|
+
p.environment_location = 'https://tartan.plaid.com/'
|
382
|
+
end
|
383
|
+
|
384
|
+
new_mfa_user = Plaid.add_user('auth','plaid_test','plaid_good','chase',nil,'{"list":true}')
|
385
|
+
it { expect(new_mfa_user.pending_mfa_questions).to eq({"type"=>"list", "mfa"=>[{"mask"=>"xxx-xxx-5309", "type"=>"phone"}, {"mask"=>"t..t@plaid.com", "type"=>"email"}], "access_token"=>"test"}) }
|
386
|
+
end
|
387
|
+
|
388
|
+
context 'selects MFA method and returns successful response' do
|
389
|
+
Plaid.config do |p|
|
390
|
+
p.customer_id = 'test_id'
|
391
|
+
p.secret = 'test_secret'
|
392
|
+
p.environment_location = 'https://tartan.plaid.com/'
|
393
|
+
end
|
394
|
+
|
395
|
+
new_mfa_user = Plaid.add_user('auth','plaid_test','plaid_good','chase',nil,'{"list":true}')
|
396
|
+
new_mfa_user.select_mfa_method({mask:'xxx-xxx-5309'},'chase')
|
397
|
+
it { expect(new_mfa_user.pending_mfa_questions).to eq({"type"=>"device", "mfa"=>{"message"=>"Code sent to xxx-xxx-5309"}, "access_token"=>"test"}) }
|
398
|
+
end
|
399
|
+
|
400
|
+
context 'selects MFA method, and delivers correct payload to authenticate user' do
|
401
|
+
Plaid.config do |p|
|
402
|
+
p.customer_id = 'test_id'
|
403
|
+
p.secret = 'test_secret'
|
404
|
+
p.environment_location = 'https://tartan.plaid.com/'
|
405
|
+
end
|
406
|
+
|
407
|
+
new_mfa_user = Plaid.add_user('auth','plaid_test','plaid_good','chase',nil,'{"list":true}')
|
408
|
+
new_mfa_user.select_mfa_method({mask:'xxx-xxx-5309'},'chase')
|
409
|
+
new_mfa_user.mfa_authentication(1234,'chase')
|
410
|
+
it { expect(new_mfa_user.accounts).to be_truthy }
|
411
|
+
end
|
376
412
|
end
|
377
413
|
|
378
414
|
# Auth specs
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plaid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Crites
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|