Page Menu
Home
Sealhub
Search
Configure Global Search
Log In
Files
F9582185
handle-request.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
handle-request.js
View Options
"use strict"
;
const
get_request_body
=
require
(
"./get-request-body.js"
);
const
http_to_subject_method
=
require
(
"./http-to-method-name.js"
);
const
extract_context
=
require
(
"./extract-context.js"
);
const
handle_response
=
require
(
"./handle-response.js"
);
const
handle_error
=
require
(
"./handle-error.js"
);
const
SealiousResponse
=
require
(
"../../common_lib/response/sealious-response.js"
);
const
ID_INDEX
=
2
;
async
function
handle_request
(
app
,
request
,
h
)
{
try
{
const
path_elements
=
parsePathElements
(
request
);
const
action_name
=
http_to_subject_method
[
request
.
method
.
toUpperCase
()];
const
context
=
await
extract_context
(
app
,
request
);
const
body
=
get_request_body
(
context
,
request
);
return
app
.
run_action
(
context
,
path_elements
,
action_name
,
body
)
.
then
(
response
=>
response
instanceof
SealiousResponse
?
response
.
toObject
()
:
response
)
.
then
(
result
=>
handle_response
(
app
,
context
,
h
)(
result
))
.
catch
(
result
=>
handle_error
(
app
,
h
)(
result
));
}
catch
(
error
)
{
app
.
Logger
.
error
(
error
);
return
error
;
}
}
function
parsePathElements
(
request
)
{
const
path_elements
=
request
.
params
.
elements
.
split
(
"/"
);
if
(
path_elements
[
ID_INDEX
]
&&
path_elements
[
ID_INDEX
].
includes
(
"+"
))
{
path_elements
[
ID_INDEX
]
=
path_elements
[
ID_INDEX
].
split
(
"+"
);
}
return
path_elements
;
}
module
.
exports
=
handle_request
;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Oct 11, 06:15 (4 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
964393
Default Alt Text
handle-request.js (1 KB)
Attached To
Mode
rS Sealious
Attached
Detach File
Event Timeline
Log In to Comment