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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6b540dd705f67ee046412efe09454288e47e65b63fab2755e00ce2e033968b5d
4
- data.tar.gz: 0610a568f7625bcfd258044b56e289cec5dcae8f3029ff256f36d071c9a27fe8
3
+ metadata.gz: d26cd694349766ab558131f9be0098611a52e419bb0457c032b9392e59fdeda0
4
+ data.tar.gz: 56dcfddce8ec118193d72b6a510f39b97945da7b12a869da57ecb46351d97f50
5
5
  SHA512:
6
- metadata.gz: 0c4ca8004fc2ef25f1c60776cdb87c652bfdf61b52ba69ed1fcdda1b2b16c98eb849670dc600f00d8c15ce44e2e59fec72ef9307f1ac8b52b948dabd6dba90f7
7
- data.tar.gz: 726ae4954e1a4e37e591a7312a3941320771731d5baace98b35a8f16d27458be2a7612d3b6a039d5252fe27afc61260718a67c5a811a92322dc4cd99ca9d9b81
6
+ metadata.gz: 17ce49de1da81c27fe4d766557b6f81e7ca0b406361a208817a6b179ef528d0f2a9edf99a86a948fb0c0fe2caec38d8abee2724e57abefa7ca903ee21e432f55
7
+ data.tar.gz: 55c277678bf95b47b0dadd7a2dbeab1c4df15cc7da3b27b43d1c69083573411ebb9437d2f1e65238a4b76bf57b9613b06b80960ce31f2057ed5aba4e5e30c8db
data/.gitlab-ci.yml ADDED
@@ -0,0 +1,2 @@
1
+ include:
2
+ template: Dependency-Scanning.gitlab-ci.yml
data/.rubocop.yml CHANGED
@@ -1,12 +1,6 @@
1
- Rails:
2
- Enabled: true
3
-
4
1
  AllCops:
5
2
  DisplayCopNames: true
6
3
  Exclude:
7
- - "vendor/**/*"
8
- - "db/schema.rb"
9
- - "bin/**/*"
10
4
  - "finapps_core.gemspec"
11
5
  UseCache: false
12
6
 
data/README.md CHANGED
@@ -2,11 +2,10 @@
2
2
  FinApps Ruby-Client
3
3
  ===================
4
4
 
5
- [![Gem Version](https://badge.fury.io/rb/finapps.svg)](https://badge.fury.io/rb/finapps)
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.16', '>= 1.16.6'
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.1'
28
- spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.1'
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.59', '>= 0.59.2'
31
- spec.add_development_dependency 'rubocop-rspec', '~> 1.30', '>= 1.30.0'
32
- spec.add_development_dependency 'sinatra', '~> 2.0', '>= 2.0.4'
33
- spec.add_development_dependency 'webmock', '~> 3.4', '>= 3.4.2'
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)
@@ -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
- merged_options = options.merge(tenant_token: tenant_token)
51
- super(merged_options, logger)
51
+ options[:tenant_token] = tenant_token
52
+ super(options, logger)
52
53
  end
53
54
 
54
55
  def method_missing(symbol, *arguments, &block)
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinApps
4
+ module REST
5
+ class PlaidWebhooks < FinAppsCore::REST::Resources # :nodoc:
6
+ def create
7
+ super({}, 'p/webhook')
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FinApps
4
- VERSION = '4.0.17'
4
+ VERSION = '5.0.1'
5
5
  end
@@ -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
@@ -2,8 +2,8 @@
2
2
 
3
3
  module SpecHelpers
4
4
  module Client
5
- def client
6
- FinApps::REST::Client.new :tenant_token, rashify: true
5
+ def client(tenant_token = :tenant_token)
6
+ FinApps::REST::Client.new tenant_token, rashify: true
7
7
  end
8
8
  end
9
9
  end
@@ -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
 
@@ -0,0 +1,3 @@
1
+ {
2
+ "url": "https://api.financialapps.com/v3/p/webhook/encodedTenantData"
3
+ }
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.0.16
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-06-11 00:00:00.000000000 Z
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.16'
39
+ version: '1.17'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 1.16.6
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.16'
49
+ version: '1.17'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 1.16.6
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.1
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.1
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.1
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.1
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.59'
139
+ version: '0.73'
140
140
  - - ">="
141
141
  - !ruby/object:Gem::Version
142
- version: 0.59.2
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.59'
149
+ version: '0.73'
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: 0.59.2
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.30'
179
+ version: '1.33'
160
180
  - - ">="
161
181
  - !ruby/object:Gem::Version
162
- version: 1.30.0
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.30'
189
+ version: '1.33'
170
190
  - - ">="
171
191
  - !ruby/object:Gem::Version
172
- version: 1.30.0
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.4
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.4
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.4'
219
+ version: '3.6'
200
220
  - - ">="
201
221
  - !ruby/object:Gem::Version
202
- version: 3.4.2
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.4'
229
+ version: '3.6'
210
230
  - - ">="
211
231
  - !ruby/object:Gem::Version
212
- version: 3.4.2
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