restful-riskpointdata-domains 0.6.13

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.
@@ -0,0 +1,155 @@
1
+ # encoding: UTF-8
2
+
3
+ # ######################################################################## #
4
+ # File: razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/item_put.rb
5
+ #
6
+ # Purpose: Adaptor for RPD microservice's item PUT verb
7
+ #
8
+ # Author: Matthew Wilson
9
+ #
10
+ # Copyright (c) 2018, Razor Risk Technologies Pty Ltd
11
+ # All rights reserved.
12
+ #
13
+ # ######################################################################## #
14
+
15
+
16
+ # ##########################################################################
17
+ # requires
18
+
19
+ require 'razor_risk/cassini/applications/route_verb_adaptors/utilities/risk_point_data/domains'
20
+
21
+ require 'razor_risk/cassini/applications/rest_framework/verb_handler'
22
+
23
+ require 'razor_risk/razor/connectivity/razor_3/entity_connectors/risk_point_data/domains_connector'
24
+
25
+ require 'razor_risk/core/diagnostics/logger'
26
+
27
+ require 'pantheios'
28
+
29
+ # ##########################################################################
30
+ # module
31
+
32
+ module RazorRisk
33
+ module Cassini
34
+ module Applications
35
+ module RouteVerbAdaptors
36
+ module RiskPointData
37
+ module Domains
38
+
39
+ # ##########################################################################
40
+ # classes
41
+
42
+ class ItemPut < RESTFramework::VerbHandler
43
+
44
+ include ::RazorRisk::Cassini::Applications::RouteVerbAdaptors::Utilities::RiskPointData::Domains
45
+
46
+ include ::RazorRisk::Razor::Connectivity::Razor3::EntityConnectors::RiskPointData
47
+
48
+ include ::RazorRisk::Core::Diagnostics::Logger
49
+
50
+ include ::Pantheios
51
+
52
+ HTTP_VERB = :put
53
+
54
+ HTTP_CONTENT_TYPES = %w{ application/xml text/xml }
55
+
56
+ HTTP_ACCEPTS = %w{ application/xml application/json text/xml }
57
+
58
+ ROUTE_VARIABLES = %w{
59
+
60
+ domain
61
+ id
62
+ }
63
+
64
+ QUERY_PARAMETERS = []
65
+
66
+ def handle env, params, request, response
67
+
68
+ # trace
69
+
70
+ trace ParamNames[ :env, :params, :request, :response ], env, params, request, response
71
+
72
+ # parameters
73
+
74
+ dom = infer_domain(params)
75
+
76
+ id = infer_id(params)
77
+
78
+ # read request body (XML)
79
+ #
80
+ # NOTE: For this handler, the input is required to be XML, and it
81
+ # is required that the document has a single top-level node
82
+ # 'updateRiskPointDomainRecords'
83
+
84
+ request.body.rewind
85
+
86
+ body_text = request.body.read
87
+ rq_body = nil
88
+
89
+ case request.content_type
90
+ when 'application/xml', 'text/xml'
91
+
92
+ rq_body = ::Nokogiri.XML body_text
93
+ else
94
+
95
+ log :violation, "unexpected content-type '#{request.content_type}'"
96
+ end
97
+
98
+ case rq_body.children.count
99
+ when 0
100
+
101
+ halt *[ 400, {}, 'not a valid body' ]
102
+ when 1
103
+ else
104
+
105
+ halt *[ 400, {}, 'too many children' ]
106
+ end
107
+
108
+ # get credentials
109
+
110
+ cr = get_required_credentials
111
+
112
+ # get requester
113
+
114
+ rr = settings.razor_requester
115
+
116
+ # get connector
117
+
118
+ ec = DomainsConnector.new(rr, credentials: cr)
119
+
120
+ # issue request
121
+
122
+ qr = ec.update_record dom, id, rq_body, indicate_result_by: :qualified_result
123
+
124
+ unless qr.succeeded?
125
+
126
+ log :warning, "failed to update risk point data with domain '#{dom}' and id '#{id}'"
127
+
128
+ if r = qr.failure_qualifier.reasons.lookup?('RZ0011')
129
+
130
+ halt *[ 404, {}, "#{r.message}: #{r.details}" ]
131
+ else
132
+
133
+ halt *[ 422, {}, "failed to update risk point data with domain '#{dom}'" ]
134
+ =begin
135
+
136
+ halt *[ 500, {}, qr.failure_qualifier.reasons.join("\n") ]
137
+ =end
138
+ end
139
+ end
140
+ end
141
+ end # class ItemPut
142
+
143
+ # ##########################################################################
144
+ # module
145
+
146
+ end # module Domains
147
+ end # module RiskPointData
148
+ end # module RouteVerbAdaptors
149
+ end # module Applications
150
+ end # module Cassini
151
+ end # module RazorRisk
152
+
153
+ # ############################## end of file ############################# #
154
+
155
+
@@ -0,0 +1,9 @@
1
+
2
+ require 'razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/collection_get'
3
+ require 'razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/item_delete'
4
+ require 'razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/item_get'
5
+ require 'razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/item_post'
6
+ require 'razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/item_put'
7
+ require 'razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/hierarchy_item_get'
8
+ require 'razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/item_audit_get'
9
+ require 'razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/collection_riskpoint_get'
@@ -0,0 +1,95 @@
1
+ # encoding: UTF-8
2
+
3
+ # ######################################################################## #
4
+ # File: razor_risk/cassini/applications/route_verb_adaptors/utilities/risk_point_data/domains.rb
5
+ #
6
+ # Purpose: Utility functions for RiskPointData::Domains Adaptors
7
+ #
8
+ # Author: Matthew Wilson
9
+ #
10
+ # Copyright (c) 2018, Razor Risk Technologies Pty Ltd
11
+ # All rights reserved.
12
+ #
13
+ # ######################################################################## #
14
+
15
+
16
+ # ##########################################################################
17
+ # requires
18
+
19
+ require 'pantheios'
20
+
21
+ require 'base64'
22
+
23
+ require 'razor_risk/core/diagnostics/logger'
24
+
25
+ # ##########################################################################
26
+ # module
27
+
28
+ module RazorRisk
29
+ module Cassini
30
+ module Applications
31
+ module RouteVerbAdaptors
32
+ module Utilities
33
+
34
+ # ##########################################################################
35
+ # classes
36
+
37
+ module RiskPointData
38
+ module Domains
39
+
40
+ include ::Pantheios
41
+ include ::RazorRisk::Core::Diagnostics::Logger
42
+
43
+ def infer_route_element params, element_name
44
+
45
+ trace ParamNames[ :params, :element_name ], params, element_name
46
+
47
+ rtel = params[element_name]
48
+
49
+ return nil if rtel.nil?
50
+
51
+ rtel = rtel.to_s.strip
52
+
53
+ if /^===(.+)===$/ =~ rtel
54
+
55
+ rtel64 = $1
56
+
57
+ begin
58
+
59
+ rtel = Base64.strict_decode64(rtel64).chomp
60
+
61
+ rescue ::ArgumentError => x
62
+
63
+ log :warning, "failed to parse Base-64 in #{element_name} '#{rtel}'"
64
+ end
65
+ end
66
+
67
+ rtel
68
+ end
69
+
70
+ def infer_domain params
71
+
72
+ infer_route_element params, 'domain'
73
+ end
74
+
75
+ def infer_id params
76
+
77
+ infer_route_element params, 'id'
78
+ end
79
+
80
+ end # module Domains
81
+ end # module RiskPointData
82
+
83
+ # ##########################################################################
84
+ # module
85
+
86
+ end # module Utilities
87
+ end # module RouteVerbAdaptors
88
+ end # module Applications
89
+ end # module Cassini
90
+ end # module RazorRisk
91
+
92
+ # ############################## end of file ############################# #
93
+
94
+
95
+
metadata ADDED
@@ -0,0 +1,269 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: restful-riskpointdata-domains
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.13
5
+ platform: ruby
6
+ authors:
7
+ - Razor Risk
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-07-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: razorrisk-cassini-common
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.24'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.24.0.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.24'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.24.0.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: razorrisk-razor-connectivity
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 0.14.9
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '1.0'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 0.14.9
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '1.0'
53
+ - !ruby/object:Gem::Dependency
54
+ name: razorrisk-razor-connectivity-entityconnectors
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 0.26.22
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '1.0'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 0.26.22
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '1.0'
73
+ - !ruby/object:Gem::Dependency
74
+ name: razorrisk-razor-connectivity-search
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: 0.1.0
80
+ - - "<"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.0'
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 0.1.0
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '1.0'
93
+ - !ruby/object:Gem::Dependency
94
+ name: razorrisk-core-diagnostics-extensions
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '0.2'
100
+ type: :runtime
101
+ prerelease: false
102
+ version_requirements: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - "~>"
105
+ - !ruby/object:Gem::Version
106
+ version: '0.2'
107
+ - !ruby/object:Gem::Dependency
108
+ name: activesupport
109
+ requirement: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: '4.0'
114
+ type: :runtime
115
+ prerelease: false
116
+ version_requirements: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: '4.0'
121
+ - !ruby/object:Gem::Dependency
122
+ name: clasp-ruby
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: '0.14'
128
+ type: :runtime
129
+ prerelease: false
130
+ version_requirements: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: '0.14'
135
+ - !ruby/object:Gem::Dependency
136
+ name: json
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: '1.8'
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: 1.8.3
145
+ type: :runtime
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '1.8'
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: 1.8.3
155
+ - !ruby/object:Gem::Dependency
156
+ name: libclimate-ruby
157
+ requirement: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - "~>"
160
+ - !ruby/object:Gem::Version
161
+ version: '0.10'
162
+ type: :runtime
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "~>"
167
+ - !ruby/object:Gem::Version
168
+ version: '0.10'
169
+ - !ruby/object:Gem::Dependency
170
+ name: nokogiri
171
+ requirement: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - "~>"
174
+ - !ruby/object:Gem::Version
175
+ version: '1.6'
176
+ type: :runtime
177
+ prerelease: false
178
+ version_requirements: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - "~>"
181
+ - !ruby/object:Gem::Version
182
+ version: '1.6'
183
+ - !ruby/object:Gem::Dependency
184
+ name: pantheios-ruby
185
+ requirement: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: 0.20.2
190
+ type: :runtime
191
+ prerelease: false
192
+ version_requirements: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - "~>"
195
+ - !ruby/object:Gem::Version
196
+ version: 0.20.2
197
+ - !ruby/object:Gem::Dependency
198
+ name: sinatra
199
+ requirement: !ruby/object:Gem::Requirement
200
+ requirements:
201
+ - - "~>"
202
+ - !ruby/object:Gem::Version
203
+ version: 1.4.8
204
+ type: :runtime
205
+ prerelease: false
206
+ version_requirements: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - "~>"
209
+ - !ruby/object:Gem::Version
210
+ version: 1.4.8
211
+ - !ruby/object:Gem::Dependency
212
+ name: xqsr3
213
+ requirement: !ruby/object:Gem::Requirement
214
+ requirements:
215
+ - - "~>"
216
+ - !ruby/object:Gem::Version
217
+ version: '0.30'
218
+ type: :runtime
219
+ prerelease: false
220
+ version_requirements: !ruby/object:Gem::Requirement
221
+ requirements:
222
+ - - "~>"
223
+ - !ruby/object:Gem::Version
224
+ version: '0.30'
225
+ description: Razor Risk's Cassini Web-framework's RiskPointData.Domains RESTful microservice
226
+ email: operations@razor-risk.com
227
+ executables:
228
+ - razorrisk-microservice-riskpointdata-domains
229
+ extensions: []
230
+ extra_rdoc_files: []
231
+ files:
232
+ - bin/razorrisk-microservice-riskpointdata-domains
233
+ - lib/razor_risk/cassini/applications/microservices/restful/risk_point_data/domains.rb
234
+ - lib/razor_risk/cassini/applications/microservices/restful/risk_point_data/domains/version.rb
235
+ - lib/razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains.rb
236
+ - lib/razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/collection_get.rb
237
+ - lib/razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/collection_riskpoint_get.rb
238
+ - lib/razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/hierarchy_item_get.rb
239
+ - lib/razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/item_audit_get.rb
240
+ - lib/razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/item_delete.rb
241
+ - lib/razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/item_get.rb
242
+ - lib/razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/item_post.rb
243
+ - lib/razor_risk/cassini/applications/route_verb_adaptors/risk_point_data/domains/item_put.rb
244
+ - lib/razor_risk/cassini/applications/route_verb_adaptors/utilities/risk_point_data/domains.rb
245
+ homepage: https://razor-risk.com/
246
+ licenses:
247
+ - Nonstandard
248
+ metadata: {}
249
+ post_install_message:
250
+ rdoc_options: []
251
+ require_paths:
252
+ - lib
253
+ required_ruby_version: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - "~>"
256
+ - !ruby/object:Gem::Version
257
+ version: '2.0'
258
+ required_rubygems_version: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ version: '0'
263
+ requirements: []
264
+ rubyforge_project:
265
+ rubygems_version: 2.6.14
266
+ signing_key:
267
+ specification_version: 4
268
+ summary: Razor Risk Cassini RiskPointData.Domains RESTful microservice
269
+ test_files: []