restful-capabilities 0.0.2
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 +7 -0
- data/Rakefile +111 -0
- data/bin/razorrisk-microservice-capabilities +57 -0
- data/lib/razor_risk/cassini/applications/microservices/restful/capabilities/app.rb +306 -0
- data/lib/razor_risk/cassini/applications/microservices/restful/capabilities/version.rb +43 -0
- data/lib/razor_risk/cassini/applications/microservices/restful/capabilities.rb +17 -0
- data/lib/razor_risk/cassini/applications/route_verb_adaptors/capabilities/data_subject_get.rb +65 -0
- data/lib/razor_risk/cassini/applications/route_verb_adaptors/capabilities/data_subjects_get.rb +59 -0
- data/lib/razor_risk/cassini/applications/route_verb_adaptors/capabilities/get_handler_mixin.rb +159 -0
- data/lib/razor_risk/cassini/applications/route_verb_adaptors/capabilities/group_get.rb +65 -0
- data/lib/razor_risk/cassini/applications/route_verb_adaptors/capabilities/group_users_get.rb +65 -0
- data/lib/razor_risk/cassini/applications/route_verb_adaptors/capabilities/groups_get.rb +59 -0
- data/lib/razor_risk/cassini/applications/route_verb_adaptors/capabilities/subject_get.rb +65 -0
- data/lib/razor_risk/cassini/applications/route_verb_adaptors/capabilities/subjects_get.rb +59 -0
- data/lib/razor_risk/cassini/applications/route_verb_adaptors/capabilities/user_get.rb +65 -0
- data/lib/razor_risk/cassini/applications/route_verb_adaptors/capabilities/users_get.rb +59 -0
- data/lib/razor_risk/cassini/applications/route_verb_adaptors/capabilities.rb +24 -0
- data/test/unit/adapters/tc_get_handler_mixin.rb +342 -0
- data/test/unit/microservice/tc_app.rb +765 -0
- metadata +254 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: '0048aed0a1361bc29257358338c880a851895a2f'
|
4
|
+
data.tar.gz: 7f048793a7117749901399150f84922718e7ec49
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5893140789b1e154da19fdce0ab2057dc506515e66aa9c8f9a56b4b5a78ded55109d2ebed2cb38cf25dfac6113599270ccebbf2967454251e0c72237c9d15c0c
|
7
|
+
data.tar.gz: b540fddbd0a2c317bd250b3b8b7b27403a75278ec697270c08169a405a0aa2ac82e974dac47b272bf5a8f593f314c3da1800941a8a86a83182ca319c9c5a87c3
|
data/Rakefile
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: UTF-8
|
3
|
+
|
4
|
+
# ######################################################################## #
|
5
|
+
#
|
6
|
+
# Copyright (c) 2019 Razor Risk Technologies Pty Limited. All rights reserved.
|
7
|
+
#
|
8
|
+
# ######################################################################## #
|
9
|
+
|
10
|
+
$:.unshift File.join(File.dirname(__FILE__), 'lib')
|
11
|
+
|
12
|
+
|
13
|
+
# ##########################################################
|
14
|
+
# bundler
|
15
|
+
|
16
|
+
require 'rubygems'
|
17
|
+
require 'bundler/setup'
|
18
|
+
|
19
|
+
|
20
|
+
# ######################################################################## #
|
21
|
+
# requires
|
22
|
+
|
23
|
+
require 'razor_risk/razor/control/rake_helpers/diagnostic_tasks'
|
24
|
+
require 'razor_risk/razor/control/rake_helpers/gem_tasks'
|
25
|
+
require 'razor_risk/razor/control/rake_helpers/task_helpers'
|
26
|
+
|
27
|
+
require 'rake'
|
28
|
+
require 'rake/clean'
|
29
|
+
|
30
|
+
|
31
|
+
# ##########################################################
|
32
|
+
# includes
|
33
|
+
|
34
|
+
include ::RazorRisk::Razor::Control
|
35
|
+
include ::Pantheios
|
36
|
+
|
37
|
+
|
38
|
+
# ##########################################################
|
39
|
+
# Constants
|
40
|
+
|
41
|
+
Spec = ::Gem::Specification.load(Dir['*.gemspec'].first)
|
42
|
+
LogDir = 'log'
|
43
|
+
LogThresholds = [ :informational, :informational ]
|
44
|
+
|
45
|
+
|
46
|
+
# ##########################################################
|
47
|
+
# clean/clobber
|
48
|
+
|
49
|
+
Dir[
|
50
|
+
'log',
|
51
|
+
'doc',
|
52
|
+
'test/reports',
|
53
|
+
].each { |f| CLEAN << f }
|
54
|
+
Dir[
|
55
|
+
'.bundle',
|
56
|
+
'vendor',
|
57
|
+
'GEM_HOME',
|
58
|
+
'*.gem',
|
59
|
+
'*.zip',
|
60
|
+
].each { |f| CLOBBER << f }
|
61
|
+
|
62
|
+
|
63
|
+
# ##########################################################
|
64
|
+
# Tasks
|
65
|
+
|
66
|
+
desc 'Run tests'
|
67
|
+
task :test => [ :'gem:unit_test' ]
|
68
|
+
|
69
|
+
desc 'Build zip'
|
70
|
+
task :build_zip, [ :path ] do |task, args|
|
71
|
+
|
72
|
+
trace ParamNames[ :task, :args ], task, args
|
73
|
+
|
74
|
+
`build_zip.cmd #{args[:path]}`
|
75
|
+
end
|
76
|
+
|
77
|
+
desc 'Build gem'
|
78
|
+
task :build_gem, [ :path ] => :'gem:build'
|
79
|
+
|
80
|
+
desc 'Builds the Razor EntityConnector Gem'
|
81
|
+
task :build, [ :path ] => [
|
82
|
+
:build_gem,
|
83
|
+
:build_zip,
|
84
|
+
]
|
85
|
+
|
86
|
+
desc 'Push the gem to the gem server.'
|
87
|
+
task :deploy => :'gem:push'
|
88
|
+
|
89
|
+
|
90
|
+
# ##########################################################
|
91
|
+
# Hooks
|
92
|
+
|
93
|
+
task :default do
|
94
|
+
puts 'Run \'bundler exec rake --tasks\' to see available tasks'
|
95
|
+
end
|
96
|
+
|
97
|
+
task :first do
|
98
|
+
::Rake::Task[:'diagnostics:init'].execute(
|
99
|
+
name: Spec.name,
|
100
|
+
version: Spec.version.to_s,
|
101
|
+
directory: LogDir,
|
102
|
+
thresholds: LogThresholds,
|
103
|
+
)
|
104
|
+
end
|
105
|
+
|
106
|
+
RakeHelpers::TaskHelpers.add_hooks
|
107
|
+
|
108
|
+
|
109
|
+
# ############################## end of file ############################# #
|
110
|
+
|
111
|
+
|
@@ -0,0 +1,57 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: UTF-8
|
3
|
+
|
4
|
+
# ######################################################################## #
|
5
|
+
#
|
6
|
+
# Main module/entry file for the Capabilities Microservice
|
7
|
+
#
|
8
|
+
# Copyright (c) 2019 Razor Risk Technologies Pty Limited. All rights reserved.
|
9
|
+
#
|
10
|
+
# ######################################################################## #
|
11
|
+
|
12
|
+
# ##########################################################################
|
13
|
+
# requires
|
14
|
+
|
15
|
+
require 'razor_risk/cassini/diagnostics/zeroth_include'
|
16
|
+
|
17
|
+
require 'razor_risk/cassini/applications/microservices/restful/capabilities'
|
18
|
+
require 'razor_risk/cassini/main'
|
19
|
+
|
20
|
+
# Requires for compatibility check
|
21
|
+
require 'razor_risk/cassini/util/version_util'
|
22
|
+
require 'razor_risk/cassini/common/version'
|
23
|
+
require 'razor_risk/razor/connectivity/version'
|
24
|
+
require 'xqsr3/version'
|
25
|
+
|
26
|
+
|
27
|
+
# ##########################################################################
|
28
|
+
# includes
|
29
|
+
|
30
|
+
include ::RazorRisk::Cassini::Applications::Microservices::RESTful
|
31
|
+
include ::RazorRisk::Cassini::Util::VersionUtil
|
32
|
+
|
33
|
+
|
34
|
+
# ##########################################################################
|
35
|
+
# constants
|
36
|
+
|
37
|
+
PROGRAM_VERSION = Capabilities::VERSION
|
38
|
+
|
39
|
+
|
40
|
+
# ##########################################################################
|
41
|
+
# compatibility checks
|
42
|
+
|
43
|
+
check_version_compatibility ::RazorRisk::Cassini::Common, [ 0, 21 ], 'RazorRisk.Cassini.Common'
|
44
|
+
check_version_compatibility ::RazorRisk::Razor::Connectivity, [ 0, 11, 2 ], 'RazorRisk.Razor.Connectivity'
|
45
|
+
check_version_compatibility ::LibCLImate, '0.10'
|
46
|
+
check_version_compatibility ::Pantheios, '0.20'
|
47
|
+
check_version_compatibility ::Xqsr3::VERSION, '0.30'
|
48
|
+
|
49
|
+
|
50
|
+
# ##########################################################################
|
51
|
+
# main section
|
52
|
+
|
53
|
+
TheApp = Capabilities::CapabilitiesApp
|
54
|
+
|
55
|
+
# ############################## end of file ############################# #
|
56
|
+
|
57
|
+
|
@@ -0,0 +1,306 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
# ######################################################################## #
|
4
|
+
#
|
5
|
+
# Sinatra App for Capabilities microservice.
|
6
|
+
#
|
7
|
+
# Copyright (c) 2019 Razor Risk Technologies Pty Limited. All rights reserved.
|
8
|
+
#
|
9
|
+
# ######################################################################## #
|
10
|
+
|
11
|
+
|
12
|
+
# ##########################################################################
|
13
|
+
# requires
|
14
|
+
|
15
|
+
require 'razor_risk/cassini/applications/rest_framework/route_verb_dispatcher'
|
16
|
+
require 'razor_risk/cassini/applications/route_verb_adaptors/capabilities'
|
17
|
+
require 'razor_risk/cassini/applications/secured_microservice'
|
18
|
+
|
19
|
+
require 'pantheios'
|
20
|
+
|
21
|
+
require 'csv'
|
22
|
+
require 'json'
|
23
|
+
|
24
|
+
|
25
|
+
# ##########################################################################
|
26
|
+
# modules
|
27
|
+
|
28
|
+
module RazorRisk
|
29
|
+
module Cassini
|
30
|
+
module Applications
|
31
|
+
module Microservices
|
32
|
+
module RESTful
|
33
|
+
module Capabilities
|
34
|
+
|
35
|
+
|
36
|
+
# ##########################################################################
|
37
|
+
# includes
|
38
|
+
|
39
|
+
include ::RazorRisk::Cassini::Applications
|
40
|
+
|
41
|
+
|
42
|
+
# ##########################################################################
|
43
|
+
# application
|
44
|
+
|
45
|
+
# Sinatra Application for the Capabilities Microservice.
|
46
|
+
class CapabilitiesApp < SecuredMicroservice
|
47
|
+
|
48
|
+
include RouteVerbAdaptors::Capabilities
|
49
|
+
include RESTFramework::RouteVerbDispatch
|
50
|
+
|
51
|
+
include ::Pantheios
|
52
|
+
|
53
|
+
FULL_DESIGNATION = 'Capabilities'
|
54
|
+
SHORT_DESIGNATION = 'capabilities'
|
55
|
+
SERVICE_TYPE = :microservice
|
56
|
+
PROGRAM_FEATURES = {
|
57
|
+
has_web_server: true,
|
58
|
+
has_host_and_port: true,
|
59
|
+
has_razor_connectivity: true,
|
60
|
+
authentication: :with_credentials_algorithm,
|
61
|
+
copyright_year: 2019,
|
62
|
+
}
|
63
|
+
SUPPORTED_ROUTES = [
|
64
|
+
[ '/groups/?', :get, 'Get the capabilities of all groups.' ],
|
65
|
+
[ '/groups/:id/?', :get, 'Get the capabilities of a specified group.' ],
|
66
|
+
[ '/users/?', :get, 'Get the user specific capabilities of all users.' ],
|
67
|
+
[ '/users/:group_id/?', :get, 'Get the user specific capabilities of all users in a specific group.' ],
|
68
|
+
[ '/users/-/:id/?', :get, 'Get the user specific capabilities of a specific user.' ],
|
69
|
+
[ '/subjects/?', :get, 'Get all the capability subjects and their actions.' ],
|
70
|
+
[ '/subjects/:id/?', :get, 'Get the actions for a specific capability subject.' ],
|
71
|
+
[ '/data-subjects/?', :get, 'Get all the capability data subjects and their actions.', ],
|
72
|
+
[ '/data-subjects/:id/?', :get, 'Get all the capability data subjects and their actions.', ],
|
73
|
+
]
|
74
|
+
HTTP_ACCEPTS = %w{
|
75
|
+
text/html
|
76
|
+
application/json
|
77
|
+
application/xml
|
78
|
+
text/xml
|
79
|
+
text/csv
|
80
|
+
text/plain
|
81
|
+
text/tab-separated-values
|
82
|
+
text/tsv
|
83
|
+
}
|
84
|
+
|
85
|
+
|
86
|
+
def self.on_init_service options
|
87
|
+
|
88
|
+
trace ParamNames[ :options ], options
|
89
|
+
|
90
|
+
raise ArgumentError.new(
|
91
|
+
'missing keyword: razor_requester'
|
92
|
+
) unless options.has_key? :razor_requester
|
93
|
+
|
94
|
+
request_options = options[:request_options] || {
|
95
|
+
validate: true
|
96
|
+
}
|
97
|
+
|
98
|
+
set :razor_requester, options[:razor_requester]
|
99
|
+
set :request_options, request_options
|
100
|
+
end
|
101
|
+
|
102
|
+
private
|
103
|
+
def sec
|
104
|
+
return '' if credentials.empty?
|
105
|
+
" (for #{credentials.join(':')})"
|
106
|
+
end
|
107
|
+
public
|
108
|
+
|
109
|
+
|
110
|
+
# ##########################################################
|
111
|
+
# routes
|
112
|
+
|
113
|
+
get '/groups/:id/?' do
|
114
|
+
|
115
|
+
trace ParamNames[ :request, :params ], request, params
|
116
|
+
|
117
|
+
dispatch GroupGet
|
118
|
+
end
|
119
|
+
|
120
|
+
get '/groups/?' do
|
121
|
+
|
122
|
+
trace ParamNames[ :request, :params ], request, params
|
123
|
+
|
124
|
+
dispatch GroupsGet
|
125
|
+
end
|
126
|
+
|
127
|
+
get '/users/-/:id/?' do
|
128
|
+
|
129
|
+
trace ParamNames[ :request, :params ], request, params
|
130
|
+
|
131
|
+
dispatch UserGet
|
132
|
+
end
|
133
|
+
|
134
|
+
get '/users/:group_id/?' do
|
135
|
+
|
136
|
+
trace ParamNames[ :request, :params ], request, params
|
137
|
+
|
138
|
+
dispatch GroupUsersGet
|
139
|
+
end
|
140
|
+
|
141
|
+
get '/users/?' do
|
142
|
+
|
143
|
+
trace ParamNames[ :request, :params ], request, params
|
144
|
+
|
145
|
+
dispatch UsersGet
|
146
|
+
end
|
147
|
+
|
148
|
+
get '/subjects/:id/?' do
|
149
|
+
|
150
|
+
trace ParamNames[ :request, :params ], request, params
|
151
|
+
|
152
|
+
dispatch SubjectGet
|
153
|
+
end
|
154
|
+
|
155
|
+
get '/subjects/?' do
|
156
|
+
|
157
|
+
trace ParamNames[ :request, :params ], request, params
|
158
|
+
|
159
|
+
dispatch SubjectsGet
|
160
|
+
end
|
161
|
+
|
162
|
+
get '/data-subjects/:id/?' do
|
163
|
+
|
164
|
+
trace ParamNames[ :request, :params ], request, params
|
165
|
+
|
166
|
+
dispatch DataSubjectGet
|
167
|
+
end
|
168
|
+
|
169
|
+
get '/data-subjects/?' do
|
170
|
+
|
171
|
+
trace ParamNames[ :request, :params ], request, params
|
172
|
+
|
173
|
+
dispatch DataSubjectsGet
|
174
|
+
end
|
175
|
+
|
176
|
+
get '/' do
|
177
|
+
|
178
|
+
HTTP_ACCEPTS.each do |accept_type|
|
179
|
+
|
180
|
+
if request.accept? accept_type
|
181
|
+
|
182
|
+
content_type accept_type
|
183
|
+
|
184
|
+
case accept_type
|
185
|
+
when 'application/json'
|
186
|
+
r = make_JSON_routes SUPPORTED_ROUTES
|
187
|
+
when 'application/xml', 'text/xml'
|
188
|
+
r = make_XML_routes SUPPORTED_ROUTES
|
189
|
+
when 'text/csv'
|
190
|
+
r = make_CSV_routes SUPPORTED_ROUTES
|
191
|
+
when 'text/html'
|
192
|
+
r = make_HTML_routes SUPPORTED_ROUTES
|
193
|
+
when 'text/plain'
|
194
|
+
r = make_Plain_routes SUPPORTED_ROUTES
|
195
|
+
when 'text/tsv', 'text/tab-separated-values'
|
196
|
+
r = make_TSV_routes SUPPORTED_ROUTES
|
197
|
+
else
|
198
|
+
log :violation, "unrecognised accept type '#{accept_type}'"
|
199
|
+
halt(
|
200
|
+
500,
|
201
|
+
{},
|
202
|
+
'internal server failure'
|
203
|
+
)
|
204
|
+
end
|
205
|
+
|
206
|
+
return r
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
halt(
|
211
|
+
406,
|
212
|
+
{},
|
213
|
+
"supports only the Accept types #{HTTP_ACCEPTS.map do |t|
|
214
|
+
%Q<'#{t}'>
|
215
|
+
end.join(', ')}"
|
216
|
+
)
|
217
|
+
end
|
218
|
+
|
219
|
+
define_catch_all_handlers
|
220
|
+
|
221
|
+
|
222
|
+
# ##########################################################
|
223
|
+
# routes helpers
|
224
|
+
|
225
|
+
def make_CSV_routes routes
|
226
|
+
CSV.generate do |csv|
|
227
|
+
routes.each do |ar|
|
228
|
+
csv << ar
|
229
|
+
end
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
233
|
+
def make_HTML_routes routes, **options
|
234
|
+
routes = routes.map do |ar|
|
235
|
+
<<END_OF_tr
|
236
|
+
<tr>
|
237
|
+
<td>#{ar[0]}</td>
|
238
|
+
<td>#{ar[1]}</td>
|
239
|
+
<td>#{ar[2]}</td>
|
240
|
+
</tr>
|
241
|
+
END_OF_tr
|
242
|
+
end
|
243
|
+
|
244
|
+
<<END_OF_html
|
245
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.we.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
246
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
247
|
+
<head>
|
248
|
+
<title>Razor Risk Web Service API - Internal Microservice - Capabilities</title>
|
249
|
+
<meta name="revisit-after" content="24 hours" />
|
250
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
251
|
+
</head>
|
252
|
+
<body>
|
253
|
+
<h1>Routes</h1>
|
254
|
+
<table>
|
255
|
+
<tr>
|
256
|
+
<th>Route</th>
|
257
|
+
<th>Verb</th>
|
258
|
+
<th>Description</th>
|
259
|
+
</tr>
|
260
|
+
#{routes.map { |r| r.chomp("\n") }.join("\n")}
|
261
|
+
</table>
|
262
|
+
</body>
|
263
|
+
</html>
|
264
|
+
END_OF_html
|
265
|
+
end
|
266
|
+
|
267
|
+
def make_JSON_routes routes, **options
|
268
|
+
r = {
|
269
|
+
'routes' => []
|
270
|
+
}
|
271
|
+
r['routes'] = SUPPORTED_ROUTES.map { |ar| { route: ar[0], verb: ar[1].to_s.upcase, description: ar[2] } }
|
272
|
+
r.to_json
|
273
|
+
end
|
274
|
+
|
275
|
+
def make_Plain_routes routes
|
276
|
+
make_TSV_routes routes
|
277
|
+
end
|
278
|
+
|
279
|
+
def make_TSV_routes routes
|
280
|
+
routes.map { |ar| "#{ar[0]}\t#{ar[1]}\t#{ar[2]}\n" }
|
281
|
+
end
|
282
|
+
|
283
|
+
def make_XML_routes routes
|
284
|
+
<<END_OF_xml
|
285
|
+
<?xml version="1.0">
|
286
|
+
<routes>#{routes.map { |ar| %Q{ <route route="#{ar[0]}" verb="#{ar[1].to_s.upcase}" description="#{ar[2]}"/>}}.join(%Q{\n})}
|
287
|
+
</routes>
|
288
|
+
END_OF_xml
|
289
|
+
end
|
290
|
+
|
291
|
+
end # class App
|
292
|
+
|
293
|
+
|
294
|
+
# ##########################################################################
|
295
|
+
# modules
|
296
|
+
|
297
|
+
end # module Capabilities
|
298
|
+
end # module RESTful
|
299
|
+
end # module Microservices
|
300
|
+
end # module Applications
|
301
|
+
end # module Cassini
|
302
|
+
end # module RazorRisk
|
303
|
+
|
304
|
+
# ############################## end of file ############################# #
|
305
|
+
|
306
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
# ######################################################################## #
|
4
|
+
#
|
5
|
+
# Version for RazorRisk.Cassini.Microservices.RESTful.Capabilities library
|
6
|
+
#
|
7
|
+
# Copyright (c) 2019 Razor Risk Technologies Pty Limited. All rights reserved.
|
8
|
+
#
|
9
|
+
# ######################################################################## #
|
10
|
+
|
11
|
+
module RazorRisk
|
12
|
+
module Cassini
|
13
|
+
module Applications
|
14
|
+
module Microservices
|
15
|
+
module RESTful
|
16
|
+
|
17
|
+
module Capabilities
|
18
|
+
|
19
|
+
# Current version of the
|
20
|
+
# RazorRisk.Cassini.Microservices.RESTful.Capabilites library
|
21
|
+
VERSION = '0.0.2'
|
22
|
+
|
23
|
+
private
|
24
|
+
VERSION_PARTS_ = VERSION.split(/[.]/).collect { |n| n.to_i }
|
25
|
+
public
|
26
|
+
VERSION_MAJOR = VERSION_PARTS_[0]
|
27
|
+
VERSION_MINOR = VERSION_PARTS_[1]
|
28
|
+
VERSION_PATCH = VERSION_PARTS_[2]
|
29
|
+
VERSION_COMMIT = VERSION_PARTS_[3] || 0
|
30
|
+
|
31
|
+
# The description of the framework
|
32
|
+
DESCRIPTION = "Razor Risk's Cassini Web-framework's Capabilities RESTful microservice"
|
33
|
+
end # module Capabilities
|
34
|
+
|
35
|
+
end # module RESTful
|
36
|
+
end # module Microservices
|
37
|
+
end # module Applications
|
38
|
+
end # module Cassini
|
39
|
+
end # module RazorRisk
|
40
|
+
|
41
|
+
# ############################## end of file ############################# #
|
42
|
+
|
43
|
+
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# ##########################################################################
|
4
|
+
#
|
5
|
+
# Copyright (c) 2019 Razor Risk Technologies Pty Limited. All rights reserved.
|
6
|
+
#
|
7
|
+
# ##########################################################################
|
8
|
+
|
9
|
+
# ##########################################################
|
10
|
+
# requires
|
11
|
+
|
12
|
+
require 'razor_risk/cassini/applications/microservices/restful/capabilities/app'
|
13
|
+
require 'razor_risk/cassini/applications/microservices/restful/capabilities/version'
|
14
|
+
|
15
|
+
# ############################## end of file ############################# #
|
16
|
+
|
17
|
+
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
# ######################################################################## #
|
4
|
+
#
|
5
|
+
# Adaptor for Capabilities microservice's GET group.
|
6
|
+
#
|
7
|
+
# Copyright (c) 2019 Razor Risk Technologies Pty Limited. All rights reserved.
|
8
|
+
#
|
9
|
+
# ######################################################################## #
|
10
|
+
|
11
|
+
|
12
|
+
# ##########################################################################
|
13
|
+
# requires
|
14
|
+
|
15
|
+
require 'razor_risk/cassini/applications/rest_framework/verb_handler'
|
16
|
+
require 'razor_risk/cassini/applications/route_verb_adaptors/capabilities/get_handler_mixin'
|
17
|
+
|
18
|
+
require 'pantheios'
|
19
|
+
|
20
|
+
# ##########################################################################
|
21
|
+
# module
|
22
|
+
|
23
|
+
module RazorRisk
|
24
|
+
module Cassini
|
25
|
+
module Applications
|
26
|
+
module RouteVerbAdaptors
|
27
|
+
module Capabilities
|
28
|
+
|
29
|
+
|
30
|
+
# ##########################################################################
|
31
|
+
# DataSubjectGet
|
32
|
+
|
33
|
+
class DataSubjectGet < RESTFramework::VerbHandler
|
34
|
+
|
35
|
+
include GetHandlerMixin
|
36
|
+
|
37
|
+
ROUTE_VARIABLES = %w{
|
38
|
+
id
|
39
|
+
}
|
40
|
+
|
41
|
+
def handle env, params, request, response
|
42
|
+
|
43
|
+
trace ParamNames[ :env, :params, :request, :response ], env, params, request, response
|
44
|
+
|
45
|
+
id = params['id']
|
46
|
+
|
47
|
+
super do |ec|
|
48
|
+
ec.get_data_subject id, indicate_result_by: :qualified_result
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end # class DataSubjectGet
|
52
|
+
|
53
|
+
|
54
|
+
# ##########################################################################
|
55
|
+
# module
|
56
|
+
|
57
|
+
end # module Capabilities
|
58
|
+
end # module RouteVerbAdaptors
|
59
|
+
end # module Applications
|
60
|
+
end # module Cassini
|
61
|
+
end # module RazorRisk
|
62
|
+
|
63
|
+
# ############################## end of file ############################# #
|
64
|
+
|
65
|
+
|
data/lib/razor_risk/cassini/applications/route_verb_adaptors/capabilities/data_subjects_get.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
# ######################################################################## #
|
4
|
+
#
|
5
|
+
# Adaptor for Capabilities microservice's GET users.
|
6
|
+
#
|
7
|
+
# Copyright (c) 2019 Razor Risk Technologies Pty Limited. All rights reserved.
|
8
|
+
#
|
9
|
+
# ######################################################################## #
|
10
|
+
|
11
|
+
|
12
|
+
# ##########################################################################
|
13
|
+
# requires
|
14
|
+
|
15
|
+
require 'razor_risk/cassini/applications/rest_framework/verb_handler'
|
16
|
+
require 'razor_risk/cassini/applications/route_verb_adaptors/capabilities/get_handler_mixin'
|
17
|
+
|
18
|
+
require 'pantheios'
|
19
|
+
|
20
|
+
# ##########################################################################
|
21
|
+
# module
|
22
|
+
|
23
|
+
module RazorRisk
|
24
|
+
module Cassini
|
25
|
+
module Applications
|
26
|
+
module RouteVerbAdaptors
|
27
|
+
module Capabilities
|
28
|
+
|
29
|
+
|
30
|
+
# ##########################################################################
|
31
|
+
# DataSubjectsGet
|
32
|
+
|
33
|
+
class DataSubjectsGet < RESTFramework::VerbHandler
|
34
|
+
|
35
|
+
include GetHandlerMixin
|
36
|
+
|
37
|
+
def handle env, params, request, response
|
38
|
+
|
39
|
+
trace ParamNames[ :env, :params, :request, :response ], env, params, request, response
|
40
|
+
|
41
|
+
super do |ec|
|
42
|
+
ec.get_data_subjects indicate_result_by: :qualified_result
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end # class DataSubjectsGet
|
46
|
+
|
47
|
+
|
48
|
+
# ##########################################################################
|
49
|
+
# module
|
50
|
+
|
51
|
+
end # module Capabilities
|
52
|
+
end # module RouteVerbAdaptors
|
53
|
+
end # module Applications
|
54
|
+
end # module Cassini
|
55
|
+
end # module RazorRisk
|
56
|
+
|
57
|
+
# ############################## end of file ############################# #
|
58
|
+
|
59
|
+
|