finapps 4.0.16 → 5.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitlab-ci.yml +2 -0
- data/.rubocop.yml +0 -6
- data/README.md +1 -2
- data/finapps.gemspec +8 -7
- data/lib/finapps.rb +1 -0
- data/lib/finapps/rest/client.rb +3 -2
- data/lib/finapps/rest/plaid/plaid_webhooks.rb +11 -0
- data/lib/finapps/version.rb +1 -1
- data/spec/rest/client_spec.rb +4 -0
- data/spec/rest/plaid/plaid_webhooks_spec.rb +36 -0
- data/spec/spec_helpers/client.rb +2 -2
- data/spec/support/fake_api.rb +10 -0
- data/spec/support/fixtures/plaid/webhook.json +3 -0
- metadata +49 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d26cd694349766ab558131f9be0098611a52e419bb0457c032b9392e59fdeda0
|
4
|
+
data.tar.gz: 56dcfddce8ec118193d72b6a510f39b97945da7b12a869da57ecb46351d97f50
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17ce49de1da81c27fe4d766557b6f81e7ca0b406361a208817a6b179ef528d0f2a9edf99a86a948fb0c0fe2caec38d8abee2724e57abefa7ca903ee21e432f55
|
7
|
+
data.tar.gz: 55c277678bf95b47b0dadd7a2dbeab1c4df15cc7da3b27b43d1c69083573411ebb9437d2f1e65238a4b76bf57b9613b06b80960ce31f2057ed5aba4e5e30c8db
|
data/.gitlab-ci.yml
ADDED
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
@@ -2,11 +2,10 @@
|
|
2
2
|
FinApps Ruby-Client
|
3
3
|
===================
|
4
4
|
|
5
|
-
[![Gem Version](https://
|
5
|
+
[![Gem Version](https://img.shields.io/gem/v/finapps.svg)](https://rubygems.org/gems/finapps)
|
6
6
|
[![Build Status](https://travis-ci.org/finapps/ruby-client.svg?branch=master)](https://travis-ci.org/finapps/ruby-client)
|
7
7
|
[![Code Climate](https://codeclimate.com/github/finapps/ruby-client/badges/gpa.svg)](https://codeclimate.com/github/finapps/ruby-client)
|
8
8
|
[![Test Coverage](https://codeclimate.com/github/finapps/ruby-client/badges/coverage.svg)](https://codeclimate.com/github/finapps/ruby-client/coverage)
|
9
|
-
[![Dependency Status](https://gemnasium.com/badges/github.com/finapps/ruby-client.svg)](https://gemnasium.com/github.com/finapps/ruby-client)
|
10
9
|
[![License](http://img.shields.io/:license-mit-blue.svg?style=flat-square)](http://finapps.mit-license.org)
|
11
10
|
|
12
11
|
|
data/finapps.gemspec
CHANGED
@@ -22,15 +22,16 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.add_runtime_dependency 'finapps_core', '~> 4.0', '>= 4.0.7'
|
24
24
|
|
25
|
-
spec.add_development_dependency 'bundler', '~> 1.
|
25
|
+
spec.add_development_dependency 'bundler', '~> 1.17', '>= 1.17.3'
|
26
26
|
spec.add_development_dependency 'codeclimate-test-reporter', '~> 1.0', '>= 1.0.9'
|
27
|
-
spec.add_development_dependency 'gem-release', '~> 2.0', '>= 2.0.
|
28
|
-
spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.
|
27
|
+
spec.add_development_dependency 'gem-release', '~> 2.0', '>= 2.0.3'
|
28
|
+
spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.2'
|
29
29
|
spec.add_development_dependency 'rspec', '~> 3.8', '>= 3.8.0'
|
30
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
31
|
-
spec.add_development_dependency 'rubocop-
|
32
|
-
spec.add_development_dependency '
|
33
|
-
spec.add_development_dependency '
|
30
|
+
spec.add_development_dependency 'rubocop', '~> 0.73', '>= 0.73.0'
|
31
|
+
spec.add_development_dependency 'rubocop-performance', '~> 1.4', '>= 1.4.0'
|
32
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 1.33', '>= 1.33.0'
|
33
|
+
spec.add_development_dependency 'sinatra', '~> 2.0', '>= 2.0.5'
|
34
|
+
spec.add_development_dependency 'webmock', '~> 3.6', '>= 3.6.0'
|
34
35
|
|
35
36
|
spec.extra_rdoc_files = %w[README.md LICENSE.txt]
|
36
37
|
spec.rdoc_options = %w[--line-numbers --inline-source --title finapps-ruby --main README.md]
|
data/lib/finapps.rb
CHANGED
@@ -37,6 +37,7 @@ require 'finapps/rest/portfolios_alerts'
|
|
37
37
|
require 'finapps/rest/portfolios_consumers'
|
38
38
|
require 'finapps/rest/consumers_portfolios'
|
39
39
|
require 'finapps/rest/portfolio_reports'
|
40
|
+
require 'finapps/rest/plaid/plaid_webhooks'
|
40
41
|
|
41
42
|
require 'finapps/utils/query_builder'
|
42
43
|
require 'finapps/version' unless defined?(FinApps::VERSION)
|
data/lib/finapps/rest/client.rb
CHANGED
@@ -39,6 +39,7 @@ module FinApps
|
|
39
39
|
user_institutions_forms
|
40
40
|
user_institutions_statuses
|
41
41
|
version
|
42
|
+
plaid_webhooks
|
42
43
|
].freeze
|
43
44
|
|
44
45
|
# @param [String] tenant_token
|
@@ -47,8 +48,8 @@ module FinApps
|
|
47
48
|
def initialize(tenant_token, options = {}, logger = nil)
|
48
49
|
not_blank(tenant_token, :tenant_token)
|
49
50
|
|
50
|
-
|
51
|
-
super(
|
51
|
+
options[:tenant_token] = tenant_token
|
52
|
+
super(options, logger)
|
52
53
|
end
|
53
54
|
|
54
55
|
def method_missing(symbol, *arguments, &block)
|
data/lib/finapps/version.rb
CHANGED
data/spec/rest/client_spec.rb
CHANGED
@@ -153,5 +153,9 @@ RSpec.describe FinApps::REST::Client do
|
|
153
153
|
describe '#tenant_app_settings' do
|
154
154
|
it { expect(subject.tenant_app_settings).to be_an_instance_of(FinApps::REST::TenantAppSettings) }
|
155
155
|
end
|
156
|
+
|
157
|
+
describe '#plaid_webhooks' do
|
158
|
+
it { expect(subject.plaid_webhooks).to be_an_instance_of(FinApps::REST::PlaidWebhooks) }
|
159
|
+
end
|
156
160
|
end
|
157
161
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helpers/client'
|
4
|
+
|
5
|
+
RSpec.describe FinApps::REST::PlaidWebhooks do
|
6
|
+
include SpecHelpers::Client
|
7
|
+
|
8
|
+
let(:api_client) { client }
|
9
|
+
subject(:create) { FinApps::REST::PlaidWebhooks.new(api_client).create }
|
10
|
+
|
11
|
+
describe '#create' do
|
12
|
+
RSpec.shared_examples 'an API request' do |_parameter|
|
13
|
+
it { expect { create }.not_to raise_error }
|
14
|
+
it('returns an array') { expect(create).to be_a(Array) }
|
15
|
+
end
|
16
|
+
|
17
|
+
context 'when valid tenant token is provided' do
|
18
|
+
it_behaves_like 'an API request'
|
19
|
+
|
20
|
+
it('performs a post and returns the webhook url') do
|
21
|
+
expect(create[RESULTS]).to respond_to(:url)
|
22
|
+
end
|
23
|
+
it('returns no error messages') { expect(create[ERROR_MESSAGES]).to be_empty }
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'when invalid tenant token is provided' do
|
27
|
+
let(:api_client) { client(:invalid_tenant_token) }
|
28
|
+
|
29
|
+
it_behaves_like 'an API request'
|
30
|
+
it('results is nil') { expect(create[RESULTS]).to be_nil }
|
31
|
+
it('error messages array is populated') do
|
32
|
+
expect(create[ERROR_MESSAGES].first.downcase).to eq('resource not found')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/spec/spec_helpers/client.rb
CHANGED
data/spec/support/fake_api.rb
CHANGED
@@ -11,6 +11,16 @@ class FakeApi < Sinatra::Base
|
|
11
11
|
put('/v3/resources') { json_response 201, 'resource.json' }
|
12
12
|
delete('/v3/resources/:id') { status 202 }
|
13
13
|
|
14
|
+
# plaid
|
15
|
+
post('/v3/p/webhook') do
|
16
|
+
tenant_token = request.env['HTTP_X_TENANT_TOKEN']
|
17
|
+
if tenant_token == 'invalid_tenant_token'
|
18
|
+
json_response 404, 'resource_not_found.json'
|
19
|
+
else
|
20
|
+
json_response 200, 'plaid/webhook.json'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
14
24
|
# version
|
15
25
|
get('/v3/version') { 'Version => 2.1.29-.20161208.172810' }
|
16
26
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: finapps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erich Quintero
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-07-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: finapps_core
|
@@ -36,20 +36,20 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '1.
|
39
|
+
version: '1.17'
|
40
40
|
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 1.
|
42
|
+
version: 1.17.3
|
43
43
|
type: :development
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: '1.
|
49
|
+
version: '1.17'
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: 1.
|
52
|
+
version: 1.17.3
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: codeclimate-test-reporter
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -79,7 +79,7 @@ dependencies:
|
|
79
79
|
version: '2.0'
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 2.0.
|
82
|
+
version: 2.0.3
|
83
83
|
type: :development
|
84
84
|
prerelease: false
|
85
85
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -89,7 +89,7 @@ dependencies:
|
|
89
89
|
version: '2.0'
|
90
90
|
- - ">="
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version: 2.0.
|
92
|
+
version: 2.0.3
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
94
|
name: rake
|
95
95
|
requirement: !ruby/object:Gem::Requirement
|
@@ -99,7 +99,7 @@ dependencies:
|
|
99
99
|
version: '12.3'
|
100
100
|
- - ">="
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: 12.3.
|
102
|
+
version: 12.3.2
|
103
103
|
type: :development
|
104
104
|
prerelease: false
|
105
105
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
version: '12.3'
|
110
110
|
- - ">="
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: 12.3.
|
112
|
+
version: 12.3.2
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: rspec
|
115
115
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,40 +136,60 @@ dependencies:
|
|
136
136
|
requirements:
|
137
137
|
- - "~>"
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: '0.
|
139
|
+
version: '0.73'
|
140
140
|
- - ">="
|
141
141
|
- !ruby/object:Gem::Version
|
142
|
-
version: 0.
|
142
|
+
version: 0.73.0
|
143
143
|
type: :development
|
144
144
|
prerelease: false
|
145
145
|
version_requirements: !ruby/object:Gem::Requirement
|
146
146
|
requirements:
|
147
147
|
- - "~>"
|
148
148
|
- !ruby/object:Gem::Version
|
149
|
-
version: '0.
|
149
|
+
version: '0.73'
|
150
150
|
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
152
|
+
version: 0.73.0
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rubocop-performance
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '1.4'
|
160
|
+
- - ">="
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: 1.4.0
|
163
|
+
type: :development
|
164
|
+
prerelease: false
|
165
|
+
version_requirements: !ruby/object:Gem::Requirement
|
166
|
+
requirements:
|
167
|
+
- - "~>"
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '1.4'
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: 1.4.0
|
153
173
|
- !ruby/object:Gem::Dependency
|
154
174
|
name: rubocop-rspec
|
155
175
|
requirement: !ruby/object:Gem::Requirement
|
156
176
|
requirements:
|
157
177
|
- - "~>"
|
158
178
|
- !ruby/object:Gem::Version
|
159
|
-
version: '1.
|
179
|
+
version: '1.33'
|
160
180
|
- - ">="
|
161
181
|
- !ruby/object:Gem::Version
|
162
|
-
version: 1.
|
182
|
+
version: 1.33.0
|
163
183
|
type: :development
|
164
184
|
prerelease: false
|
165
185
|
version_requirements: !ruby/object:Gem::Requirement
|
166
186
|
requirements:
|
167
187
|
- - "~>"
|
168
188
|
- !ruby/object:Gem::Version
|
169
|
-
version: '1.
|
189
|
+
version: '1.33'
|
170
190
|
- - ">="
|
171
191
|
- !ruby/object:Gem::Version
|
172
|
-
version: 1.
|
192
|
+
version: 1.33.0
|
173
193
|
- !ruby/object:Gem::Dependency
|
174
194
|
name: sinatra
|
175
195
|
requirement: !ruby/object:Gem::Requirement
|
@@ -179,7 +199,7 @@ dependencies:
|
|
179
199
|
version: '2.0'
|
180
200
|
- - ">="
|
181
201
|
- !ruby/object:Gem::Version
|
182
|
-
version: 2.0.
|
202
|
+
version: 2.0.5
|
183
203
|
type: :development
|
184
204
|
prerelease: false
|
185
205
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -189,27 +209,27 @@ dependencies:
|
|
189
209
|
version: '2.0'
|
190
210
|
- - ">="
|
191
211
|
- !ruby/object:Gem::Version
|
192
|
-
version: 2.0.
|
212
|
+
version: 2.0.5
|
193
213
|
- !ruby/object:Gem::Dependency
|
194
214
|
name: webmock
|
195
215
|
requirement: !ruby/object:Gem::Requirement
|
196
216
|
requirements:
|
197
217
|
- - "~>"
|
198
218
|
- !ruby/object:Gem::Version
|
199
|
-
version: '3.
|
219
|
+
version: '3.6'
|
200
220
|
- - ">="
|
201
221
|
- !ruby/object:Gem::Version
|
202
|
-
version: 3.
|
222
|
+
version: 3.6.0
|
203
223
|
type: :development
|
204
224
|
prerelease: false
|
205
225
|
version_requirements: !ruby/object:Gem::Requirement
|
206
226
|
requirements:
|
207
227
|
- - "~>"
|
208
228
|
- !ruby/object:Gem::Version
|
209
|
-
version: '3.
|
229
|
+
version: '3.6'
|
210
230
|
- - ">="
|
211
231
|
- !ruby/object:Gem::Version
|
212
|
-
version: 3.
|
232
|
+
version: 3.6.0
|
213
233
|
description: A simple library for communicating with the FinApps REST API.
|
214
234
|
email:
|
215
235
|
- erich@financialapps.com
|
@@ -221,6 +241,7 @@ extra_rdoc_files:
|
|
221
241
|
files:
|
222
242
|
- ".codeclimate.yml"
|
223
243
|
- ".gitignore"
|
244
|
+
- ".gitlab-ci.yml"
|
224
245
|
- ".hound.yml"
|
225
246
|
- ".rake_tasks~"
|
226
247
|
- ".rspec"
|
@@ -253,6 +274,7 @@ files:
|
|
253
274
|
- lib/finapps/rest/order_tokens.rb
|
254
275
|
- lib/finapps/rest/orders.rb
|
255
276
|
- lib/finapps/rest/password_resets.rb
|
277
|
+
- lib/finapps/rest/plaid/plaid_webhooks.rb
|
256
278
|
- lib/finapps/rest/portfolio_reports.rb
|
257
279
|
- lib/finapps/rest/portfolios.rb
|
258
280
|
- lib/finapps/rest/portfolios_alerts.rb
|
@@ -289,6 +311,7 @@ files:
|
|
289
311
|
- spec/rest/order_tokens_spec.rb
|
290
312
|
- spec/rest/orders_spec.rb
|
291
313
|
- spec/rest/password_resets_spec.rb
|
314
|
+
- spec/rest/plaid/plaid_webhooks_spec.rb
|
292
315
|
- spec/rest/portfolio_reports_spec.rb
|
293
316
|
- spec/rest/portfolios_alerts_spec.rb
|
294
317
|
- spec/rest/portfolios_available_consumers_spec.rb
|
@@ -331,6 +354,7 @@ files:
|
|
331
354
|
- spec/support/fixtures/order_token.json
|
332
355
|
- spec/support/fixtures/orders.json
|
333
356
|
- spec/support/fixtures/password_reset_token.json
|
357
|
+
- spec/support/fixtures/plaid/webhook.json
|
334
358
|
- spec/support/fixtures/portfolio.json
|
335
359
|
- spec/support/fixtures/portfolio_reports.json
|
336
360
|
- spec/support/fixtures/portfolios.json
|
@@ -413,6 +437,7 @@ test_files:
|
|
413
437
|
- spec/rest/portfolios_spec.rb
|
414
438
|
- spec/rest/institutions_spec.rb
|
415
439
|
- spec/rest/order_statuses_spec.rb
|
440
|
+
- spec/rest/plaid/plaid_webhooks_spec.rb
|
416
441
|
- spec/rest/order_refreshes_spec.rb
|
417
442
|
- spec/rest/order_notifications_spec.rb
|
418
443
|
- spec/rest/portfolios_alerts_spec.rb
|