finapps 2.1.2 → 2.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/finapps.gemspec +0 -2
- data/lib/finapps.rb +1 -0
- data/lib/finapps/rest/client.rb +4 -0
- data/lib/finapps/rest/password_resets.rb +24 -0
- data/lib/finapps/version.rb +1 -1
- data/spec/rest/client_spec.rb +6 -2
- data/spec/rest/orders_spec.rb +1 -1
- data/spec/rest/password_resets_spec.rb +68 -0
- data/spec/rest/timeout_spec.rb +9 -0
- data/spec/support/fake_api.rb +18 -1
- data/spec/support/fixtures/password_reset_token.json +3 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e4f49ad1b81bbda2b1e9173e85b6fd614e28ec8
|
4
|
+
data.tar.gz: 24c47741bbc17e16cb06f870b776b5fc2876d720
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02e35aece506016bf18afc6fe57323d79b1b025f5ff7e95b5cd76691ea107b2bf2cb2a76a03375f95178ac1cc78e0fc724e9f0b4928092f11ac6f0cecfc014dd
|
7
|
+
data.tar.gz: 6fceaf4699078d7afa4716d854f6b0b559ae4b173f6a345844bb62048e9f396ccb71911bdea02f761bc006656b5dc9c445660a4ea0120139648deb152845c960
|
data/finapps.gemspec
CHANGED
data/lib/finapps.rb
CHANGED
@@ -35,6 +35,7 @@ require 'finapps/rest/user_institutions'
|
|
35
35
|
require 'finapps/rest/user_institutions_forms'
|
36
36
|
require 'finapps/rest/order_reports'
|
37
37
|
require 'finapps/rest/order_statuses'
|
38
|
+
require 'finapps/rest/password_resets'
|
38
39
|
|
39
40
|
require 'finapps/rest/configuration'
|
40
41
|
require 'finapps/rest/credentials'
|
data/lib/finapps/rest/client.rb
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module FinApps
|
3
|
+
module REST
|
4
|
+
class PasswordResets < FinApps::REST::Resources # :nodoc:
|
5
|
+
using ObjectExtensions
|
6
|
+
using StringExtensions
|
7
|
+
|
8
|
+
def create(id)
|
9
|
+
raise MissingArgumentsError.new 'Missing argument: id.' if id.blank?
|
10
|
+
|
11
|
+
path = "tenant/#{ERB::Util.url_encode(id)}/password"
|
12
|
+
super nil, path
|
13
|
+
end
|
14
|
+
|
15
|
+
def update(id, params)
|
16
|
+
raise MissingArgumentsError.new 'Missing argument: id.' if id.blank?
|
17
|
+
raise MissingArgumentsError.new 'Missing argument: params.' if params.blank?
|
18
|
+
|
19
|
+
path = "tenant/#{ERB::Util.url_encode(id)}/password"
|
20
|
+
super params, path
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/finapps/version.rb
CHANGED
data/spec/rest/client_spec.rb
CHANGED
@@ -14,7 +14,7 @@ RSpec.describe FinApps::REST::Client do
|
|
14
14
|
subject { FinApps::REST::Client.new(:company_identifier, :company_token) }
|
15
15
|
|
16
16
|
%i(users sessions orders order_tokens order_reports order_statuses institutions institutions_forms
|
17
|
-
user_institutions_statuses user_institutions user_institutions_forms).each do |method|
|
17
|
+
user_institutions_statuses user_institutions user_institutions_forms password_resets).each do |method|
|
18
18
|
it "responds to #{method}" do
|
19
19
|
expect(subject).to respond_to(method)
|
20
20
|
end
|
@@ -64,11 +64,15 @@ RSpec.describe FinApps::REST::Client do
|
|
64
64
|
it { expect(subject.user_institutions_forms).to be_an_instance_of(FinApps::REST::UserInstitutionsForms) }
|
65
65
|
end
|
66
66
|
|
67
|
+
describe '#password_resets' do
|
68
|
+
it { expect(subject.password_resets).to be_an_instance_of(FinApps::REST::PasswordResets) }
|
69
|
+
end
|
70
|
+
|
67
71
|
# [:users, :institutions, :user_institutions, :transactions, :categories,
|
68
72
|
# :budget_models, :budget_calculation, :budgets, :cashflows,
|
69
73
|
# :alert, :alert_definition, :alert_preferences, :alert_settings, :rule_sets]
|
70
74
|
%i(users sessions orders order_tokens order_reports order_statuses institutions institutions_forms
|
71
|
-
user_institutions_statuses user_institutions user_institutions_forms).each do |method|
|
75
|
+
user_institutions_statuses user_institutions user_institutions_forms password_resets).each do |method|
|
72
76
|
it "memoizes the result of #{method}" do
|
73
77
|
first = subject.send(method)
|
74
78
|
second = subject.send(method)
|
data/spec/rest/orders_spec.rb
CHANGED
@@ -8,7 +8,7 @@ RSpec.describe FinApps::REST::Orders do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
context 'when valid params are provided' do
|
11
|
-
subject { FinApps::REST::Orders.new(client).show(:
|
11
|
+
subject { FinApps::REST::Orders.new(client).show(:valid_id) }
|
12
12
|
|
13
13
|
it { expect { subject }.not_to raise_error }
|
14
14
|
it('returns an array') { expect(subject).to be_a(Array) }
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
RSpec.describe FinApps::REST::PasswordResets do
|
3
|
+
let(:client) { FinApps::REST::Client.new(:company_identifier, :company_token) }
|
4
|
+
|
5
|
+
describe '#create' do
|
6
|
+
context 'when missing id' do
|
7
|
+
subject { FinApps::REST::PasswordResets.new(client).create(nil) }
|
8
|
+
it { expect { subject }.to raise_error(FinApps::MissingArgumentsError) }
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'when invalid id is provided' do
|
12
|
+
subject { FinApps::REST::PasswordResets.new(client).create(:invalid_user_id) }
|
13
|
+
|
14
|
+
it { expect { subject }.not_to raise_error }
|
15
|
+
it('results is nil') { expect(subject[0]).to be_nil }
|
16
|
+
it('error messages array is populated') { expect(subject[1]).not_to be_nil }
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'when valid id is provided' do
|
20
|
+
subject { FinApps::REST::PasswordResets.new(client).create(:valid_user_id) }
|
21
|
+
|
22
|
+
it { expect { subject }.not_to raise_error }
|
23
|
+
it('returns an array') { expect(subject).to be_a(Array) }
|
24
|
+
it('performs a post and returns the response') { expect(subject[0]).to respond_to(:token) }
|
25
|
+
it('returns no error messages') { expect(subject[1]).to be_empty }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe '#update' do
|
30
|
+
let(:valid_params) { {token: 'valid_token'} }
|
31
|
+
let(:invalid_params) { {token: 'invalid_token'} }
|
32
|
+
|
33
|
+
context 'when missing id' do
|
34
|
+
subject { FinApps::REST::PasswordResets.new(client).update(nil, :params) }
|
35
|
+
it { expect { subject }.to raise_error(FinApps::MissingArgumentsError) }
|
36
|
+
end
|
37
|
+
|
38
|
+
context 'when missing params' do
|
39
|
+
subject { FinApps::REST::PasswordResets.new(client).update(:valid_user_id, nil) }
|
40
|
+
it { expect { subject }.to raise_error(FinApps::MissingArgumentsError) }
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'when invalid id is provided' do
|
44
|
+
subject { FinApps::REST::PasswordResets.new(client).update(:invalid_user_id, valid_params) }
|
45
|
+
|
46
|
+
it { expect { subject }.not_to raise_error }
|
47
|
+
it('results is nil') { expect(subject[0]).to be_nil }
|
48
|
+
it('error messages array is populated') { expect(subject[1]).not_to be_nil }
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'when invalid params are provided' do
|
52
|
+
subject { FinApps::REST::PasswordResets.new(client).update(:valid_user_id, invalid_params) }
|
53
|
+
|
54
|
+
it { expect { subject }.not_to raise_error }
|
55
|
+
it('results is nil') { expect(subject[0]).to be_nil }
|
56
|
+
it('error messages array is populated') { expect(subject[1]).not_to be_nil }
|
57
|
+
end
|
58
|
+
|
59
|
+
context 'when valid params are provided' do
|
60
|
+
subject { FinApps::REST::PasswordResets.new(client).update(:valid_user_id, valid_params) }
|
61
|
+
|
62
|
+
it { expect { subject }.not_to raise_error }
|
63
|
+
it('returns an array') { expect(subject).to be_a(Array) }
|
64
|
+
it('performs a post and returns the response') { expect(subject[0]).to respond_to(:token) }
|
65
|
+
it('returns no error messages') { expect(subject[1]).to be_empty }
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
RSpec.describe FinApps::REST::Orders do
|
3
|
+
let(:client) { FinApps::REST::Client.new(:company_identifier, :company_token) }
|
4
|
+
|
5
|
+
describe 'timeout' do
|
6
|
+
subject { FinApps::REST::Orders.new(client).show(:timeout) }
|
7
|
+
it { expect { subject }.to raise_error(FinApps::ApiSessionTimeoutError) }
|
8
|
+
end
|
9
|
+
end
|
data/spec/support/fake_api.rb
CHANGED
@@ -13,7 +13,7 @@ class FakeApi < Sinatra::Base
|
|
13
13
|
# orders
|
14
14
|
post('/v2/orders/valid_token') { json_response 200, 'order_token.json' }
|
15
15
|
post('/v2/orders/invalid_token') { json_response 404, 'resource_not_found.json' }
|
16
|
-
get('/v2/orders
|
16
|
+
get('/v2/orders/valid_id') { json_response 200, 'resource.json' }
|
17
17
|
get('/v2/list/orders/:page/:requested/:sort/:asc') { json_response 200, 'orders.json' }
|
18
18
|
get('/v2/orders/valid_id/report.:format') { json_response 200, 'order_report.json' }
|
19
19
|
get('/v2/orders/invalid_id/report.:format') { json_response 404, 'resource_not_found.json' }
|
@@ -83,6 +83,20 @@ class FakeApi < Sinatra::Base
|
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
86
|
+
# password resets
|
87
|
+
post('/v2/tenant/valid_user_id/password') { json_response 200, 'password_reset_token.json' }
|
88
|
+
post('/v2/tenant/invalid_user_id/password') { json_response 404, 'resource_not_found.json' }
|
89
|
+
put('/v2/tenant/valid_user_id/password') do
|
90
|
+
request.body.rewind
|
91
|
+
request_payload = JSON.parse request.body.read
|
92
|
+
if request_payload['token'] == 'valid_token'
|
93
|
+
json_response(200, 'user.json')
|
94
|
+
else
|
95
|
+
json_response(400, 'invalid_request_body.json')
|
96
|
+
end
|
97
|
+
end
|
98
|
+
put('/v2/tenant/invalid_user_id/password') { json_response 404, 'resource_not_found.json' }
|
99
|
+
|
86
100
|
# relevance
|
87
101
|
get('/v2/relevance/ruleset/names') { json_response 200, 'relevance_ruleset_names.json' }
|
88
102
|
|
@@ -91,6 +105,9 @@ class FakeApi < Sinatra::Base
|
|
91
105
|
get('/v2/server_error') { status 500 }
|
92
106
|
get('/v2/proxy_error') { status 407 }
|
93
107
|
|
108
|
+
# timeout
|
109
|
+
get('/v2/orders/timeout') { status 419 }
|
110
|
+
|
94
111
|
private
|
95
112
|
|
96
113
|
def json_response(response_code, file_name)
|
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: 2.1.
|
4
|
+
version: 2.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erich Quintero
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -271,6 +271,7 @@ files:
|
|
271
271
|
- lib/finapps/rest/order_statuses.rb
|
272
272
|
- lib/finapps/rest/order_tokens.rb
|
273
273
|
- lib/finapps/rest/orders.rb
|
274
|
+
- lib/finapps/rest/password_resets.rb
|
274
275
|
- lib/finapps/rest/resources.rb
|
275
276
|
- lib/finapps/rest/sessions.rb
|
276
277
|
- lib/finapps/rest/user_institutions.rb
|
@@ -298,8 +299,10 @@ files:
|
|
298
299
|
- spec/rest/order_statuses_spec.rb
|
299
300
|
- spec/rest/order_tokens_spec.rb
|
300
301
|
- spec/rest/orders_spec.rb
|
302
|
+
- spec/rest/password_resets_spec.rb
|
301
303
|
- spec/rest/resources_spec.rb
|
302
304
|
- spec/rest/sessions_spec.rb
|
305
|
+
- spec/rest/timeout_spec.rb
|
303
306
|
- spec/rest/user_institutions_forms_spec.rb
|
304
307
|
- spec/rest/user_institutions_spec.rb
|
305
308
|
- spec/rest/user_institutions_statuses_spec.rb
|
@@ -319,6 +322,7 @@ files:
|
|
319
322
|
- spec/support/fixtures/order_status.json
|
320
323
|
- spec/support/fixtures/order_token.json
|
321
324
|
- spec/support/fixtures/orders.json
|
325
|
+
- spec/support/fixtures/password_reset_token.json
|
322
326
|
- spec/support/fixtures/relevance_ruleset_names.json
|
323
327
|
- spec/support/fixtures/resource.json
|
324
328
|
- spec/support/fixtures/resource_not_found.json
|
@@ -374,6 +378,7 @@ test_files:
|
|
374
378
|
- spec/spec_helpers/client.rb
|
375
379
|
- spec/spec_helper.rb
|
376
380
|
- spec/rest/credentials_spec.rb
|
381
|
+
- spec/rest/password_resets_spec.rb
|
377
382
|
- spec/rest/order_tokens_spec.rb
|
378
383
|
- spec/rest/institutions_spec.rb
|
379
384
|
- spec/rest/users_spec.rb
|
@@ -383,6 +388,7 @@ test_files:
|
|
383
388
|
- spec/rest/user_institutions_statuses_spec.rb
|
384
389
|
- spec/rest/user_institutions_spec.rb
|
385
390
|
- spec/rest/client_spec.rb
|
391
|
+
- spec/rest/timeout_spec.rb
|
386
392
|
- spec/rest/orders_spec.rb
|
387
393
|
- spec/rest/order_statuses_spec.rb
|
388
394
|
- spec/rest/configuration_spec.rb
|