finapps 2.2.13 → 2.2.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/finapps.rb +1 -0
- data/lib/finapps/rest/operators.rb +6 -3
- data/lib/finapps/rest/orders.rb +6 -13
- data/lib/finapps/utils/query_builder.rb +14 -0
- data/lib/finapps/version.rb +1 -1
- data/spec/utils/query_builder_spec.rb +26 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf5f0601a67422163160e5df827d28996565c17a
|
4
|
+
data.tar.gz: 3377656058a00af66d5d8a9be2b5bf5f8e40ef05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a019a8f4a409566a26fa73bee5b928f437b88d20be84d1b18842d48a11dd3c93612b7b4009bb3a344e24838afb0abf1df70812d0103b9eab6bd015a075c1d46
|
7
|
+
data.tar.gz: 4ed6c7b2925748098e1182e9ffc59543384f9bc5a07aebcaa313410023b9c8a5399b8570bfef8f6b8de10ea17dbf546f91b2e1e91d1d569cd1fe969aac81585e
|
data/lib/finapps.rb
CHANGED
@@ -23,6 +23,7 @@ require 'finapps/rest/order_statuses'
|
|
23
23
|
require 'finapps/rest/password_resets'
|
24
24
|
require 'finapps/rest/operators'
|
25
25
|
require 'finapps/rest/operators_password_resets'
|
26
|
+
require 'finapps/utils/query_builder'
|
26
27
|
|
27
28
|
# require 'finapps/rest/configuration'
|
28
29
|
# require 'finapps/rest/credentials'
|
@@ -1,12 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
require_relative '../utils/query_builder'
|
3
|
+
|
2
4
|
module FinApps
|
3
5
|
module REST
|
4
6
|
class Operators < FinAppsCore::REST::Resources
|
7
|
+
include FinApps::Utils::QueryBuilder
|
8
|
+
|
5
9
|
def list(params=nil)
|
6
10
|
return super if params.nil?
|
7
|
-
|
8
|
-
|
9
|
-
super path
|
11
|
+
raise FinAppsCore::InvalidArgumentsError.new 'Invalid argument: params' unless params.is_a? Hash
|
12
|
+
super build_query_path(end_point, params)
|
10
13
|
end
|
11
14
|
|
12
15
|
def show(id)
|
data/lib/finapps/rest/orders.rb
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
require_relative '../utils/query_builder'
|
3
|
+
|
2
4
|
module FinApps
|
3
5
|
module REST
|
4
6
|
class Orders < FinAppsCore::REST::Resources # :nodoc:
|
7
|
+
include FinApps::Utils::QueryBuilder
|
8
|
+
|
5
9
|
def show(id)
|
6
10
|
not_blank(id, :id)
|
7
11
|
super
|
@@ -16,14 +20,12 @@ module FinApps
|
|
16
20
|
# :page - page number requested
|
17
21
|
# :requested - number of results per page requested
|
18
22
|
# :sort - sort order
|
19
|
-
#
|
20
|
-
# date - the date of the order
|
21
|
-
# status - the status of the order
|
23
|
+
# :filter - mongo object to filter
|
22
24
|
# descending - append "-" before option for descending sort
|
23
25
|
def list(params=nil) # params hash with optional keys [:page, :sort, :requested]
|
24
26
|
return super if params.nil?
|
25
27
|
raise FinAppsCore::InvalidArgumentsError.new 'Invalid argument: params' unless params.is_a? Hash
|
26
|
-
super
|
28
|
+
super build_query_path(end_point, params)
|
27
29
|
end
|
28
30
|
|
29
31
|
def update(id, params)
|
@@ -37,15 +39,6 @@ module FinApps
|
|
37
39
|
|
38
40
|
super params, path
|
39
41
|
end
|
40
|
-
|
41
|
-
private
|
42
|
-
|
43
|
-
def build_path(p)
|
44
|
-
page = p[:page] ? "page=#{ERB::Util.url_encode(p[:page])}" : ''
|
45
|
-
requested = p[:requested] ? "&requested=#{ERB::Util.url_encode(p[:requested])}" : ''
|
46
|
-
sort = p[:sort] ? "&sort=#{ERB::Util.url_encode(p[:sort])}" : ''
|
47
|
-
"#{end_point}?#{page}#{requested}#{sort}"
|
48
|
-
end
|
49
42
|
end
|
50
43
|
end
|
51
44
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module FinApps
|
3
|
+
module Utils
|
4
|
+
module QueryBuilder
|
5
|
+
def build_query_path(root_url, params)
|
6
|
+
page = params[:page] ? "page=#{params[:page]}" : ''
|
7
|
+
requested = params[:requested] ? "&requested=#{params[:requested]}" : ''
|
8
|
+
sort = params[:sort] ? "&sort=#{ERB::Util.url_encode(params[:sort])}" : ''
|
9
|
+
filter = params[:filter] ? "&filter=#{ERB::Util.url_encode(params[:filter])}" : ''
|
10
|
+
"#{root_url}?#{page}#{requested}#{sort}#{filter}"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/finapps/version.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class FakeClass
|
3
|
+
include FinApps::Utils::QueryBuilder
|
4
|
+
end
|
5
|
+
|
6
|
+
RSpec.describe FinApps::Utils::QueryBuilder do
|
7
|
+
describe '#build_query_path' do
|
8
|
+
subject { FakeClass.new }
|
9
|
+
let(:end_point) { 'orders' }
|
10
|
+
|
11
|
+
context 'with full params' do
|
12
|
+
let(:params) { {page: '1', requested: '20', sort: '-date', filter: '{"role": "1"}'} }
|
13
|
+
it 'returns correct string' do
|
14
|
+
correct_string = 'orders?page=1&requested=20&sort=-date&filter=%7B%22role%22%3A%20%221%22%7D'
|
15
|
+
expect(subject.build_query_path(end_point, params)).to eq(correct_string)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'with partial params' do
|
20
|
+
let(:params) { {page: '1', filter: '{"role": "1"}'} }
|
21
|
+
it 'returns correct string' do
|
22
|
+
expect(subject.build_query_path(end_point, params)).to eq('orders?page=1&filter=%7B%22role%22%3A%20%221%22%7D')
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
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.2.
|
4
|
+
version: 2.2.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erich Quintero
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: finapps_core
|
@@ -249,6 +249,7 @@ files:
|
|
249
249
|
- lib/finapps/rest/user_institutions_forms.rb
|
250
250
|
- lib/finapps/rest/user_institutions_statuses.rb
|
251
251
|
- lib/finapps/rest/version.rb
|
252
|
+
- lib/finapps/utils/query_builder.rb
|
252
253
|
- lib/finapps/version.rb
|
253
254
|
- lib/tasks/releaser.rake
|
254
255
|
- spec/rest/client_spec.rb
|
@@ -298,6 +299,7 @@ files:
|
|
298
299
|
- spec/support/fixtures/user_institution_status.json
|
299
300
|
- spec/support/fixtures/user_institutions_list.json
|
300
301
|
- spec/support/fixtures/user_institutions_show.json
|
302
|
+
- spec/utils/query_builder_spec.rb
|
301
303
|
homepage: https://github.com/finapps/ruby-client
|
302
304
|
licenses:
|
303
305
|
- MIT
|
@@ -346,5 +348,6 @@ test_files:
|
|
346
348
|
- spec/rest/order_statuses_spec.rb
|
347
349
|
- spec/rest/sessions_spec.rb
|
348
350
|
- spec/support/fake_api.rb
|
351
|
+
- spec/utils/query_builder_spec.rb
|
349
352
|
- spec/spec_helpers/client.rb
|
350
353
|
- spec/spec_helper.rb
|