Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
OGC
node-3DPS
Commits
4591308a
Commit
4591308a
authored
Jul 14, 2020
by
Athanasios
Browse files
redirect requests
parent
ecb9234f
Changes
3
Hide whitespace changes
Inline
Side-by-side
routes/v1.js
View file @
4591308a
const
express
=
require
(
"
express
"
);
const
{
check
,
validationResult
,
oneOf
}
=
require
(
"
express-validator
"
)
const
{
toLower
}
=
require
(
"
../src/customSanitizers
"
);
const
{
toLower
}
=
require
(
"
../src/customSanitizers
"
);
const
{
errorHandler
}
=
require
(
"
../src/errorHandler
"
);
const
checkFactory
=
require
(
"
../src/validationCheckFactory
"
);
const
requestHandlerFactory
=
require
(
"
../src/requestHandlerFactory
"
);
const
{
getSceneHandler
}
=
require
(
"
../src/getSceneHandler
"
);
const
{
getCapabilitiesHandler
}
=
require
(
"
../src/getCapabilitiesHandler
"
);
const
redirectTo
=
require
(
"
../src/redirectTo
"
);
const
assets
=
require
(
"
../src/assets
"
);
const
bb
=
require
(
"
../src/boundingbox
"
);
let
router
=
express
.
Router
();
...
...
@@ -12,30 +16,64 @@ const checks = [
check
(
"
request
"
)
.
exists
().
withMessage
(
"
MissingParameterValue
"
)
.
customSanitizer
(
toLower
)
.
isIn
([
"
getscene
"
,
"
getcapabilities
"
]).
withMessage
(
"
InvalidParameterValue
"
),
oneOf
([[
check
(
"
request
"
).
customSanitizer
(
toLower
).
equals
(
"
getscene
"
),
...
checkFactory
.
specificChecks
(
"
getscene
"
)
],
[
check
(
"
request
"
).
customSanitizer
(
toLower
).
equals
(
"
getcapabilities
"
),
...
checkFactory
.
specificChecks
(
"
getcapabilities
"
)
]])
.
isIn
([
"
getscene
"
,
"
getcapabilities
"
]).
withMessage
(
"
InvalidParameterValue
"
)
];
router
.
route
(
"
/
"
)
.
get
(
checks
,
(
req
,
res
)
=>
{
router
.
route
(
"
/
"
).
get
(
checks
,
(
req
,
res
)
=>
{
const
errors
=
validationResult
(
req
)
if
(
!
errors
.
isEmpty
())
{
let
exception
=
errorHandler
(
errors
);
res
.
set
(
"
Content-Type
"
,
"
application/xml
"
);
return
res
.
status
(
400
).
send
(
exception
);
}
const
errors
=
validationResult
(
req
)
;
if
(
!
errors
.
isEmpty
())
{
let
exception
=
errorHandler
(
errors
);
res
.
set
(
"
Content-Type
"
,
"
application/xml
"
);
return
res
.
status
(
400
).
send
(
exception
);
}
let
requestHandler
=
requestHandlerFactory
.
createHandler
(
req
.
query
.
request
);
redirectTo
(
req
.
query
.
request
,
req
,
res
);
requestHandler
(
req
,
res
);
});
const
capabilitiesChecks
=
[
check
(
"
request
"
)
.
exists
().
withMessage
(
"
MissingParameterValue
"
)
.
customSanitizer
(
toLower
)
.
equals
(
"
getcapabilities
"
).
withMessage
(
"
InvalidParameterValue
"
)
];
router
.
route
(
"
/capabilities
"
).
get
(
capabilitiesChecks
,
(
req
,
res
)
=>
{
const
errors
=
validationResult
(
req
);
if
(
!
errors
.
isEmpty
())
{
let
exception
=
errorHandler
(
errors
);
res
.
set
(
"
Content-Type
"
,
"
application/xml
"
);
return
res
.
status
(
400
).
send
(
exception
);
}
getCapabilitiesHandler
(
req
,
res
);
});
const
sceneChecks
=
[
check
(
"
boundingbox
"
)
.
exists
().
withMessage
(
"
MissingParameterValue
"
)
.
matches
(
/^
((\-?\d
+
(\.\d
+
)?)
,
){3}(\-?\d
+
(\.\d
+
)?)
$/
).
withMessage
(
"
InvalidParameterValue
"
)
.
custom
(
value
=>
bb
.
isValid
(
value
)).
withMessage
(
"
InvalidParameterValue
"
),
check
(
"
layers
"
)
.
exists
().
withMessage
(
"
MissingParameterValue
"
)
.
custom
(
value
=>
assets
.
allLayersExist
(
value
)).
withMessage
(
"
UnknownLayer
"
)
];
router
.
route
(
"
/scene
"
).
get
(
sceneChecks
,
(
req
,
res
)
=>
{
const
errors
=
validationResult
(
req
);
if
(
!
errors
.
isEmpty
())
{
let
exception
=
errorHandler
(
errors
);
res
.
set
(
"
Content-Type
"
,
"
application/xml
"
);
return
res
.
status
(
400
).
send
(
exception
);
}
getSceneHandler
(
req
,
res
);
});
});
module
.
exports
=
router
;
\ No newline at end of file
src/customSanitizers.js
View file @
4591308a
const
toLower
=
(
value
)
=>
{
if
(
!
value
)
return
;
return
value
.
toLowerCase
();
}
...
...
src/redirectTo.js
0 → 100644
View file @
4591308a
const
url
=
require
(
'
url
'
);
const
redirectTo
=
(
request
,
req
,
res
)
=>
{
switch
(
request
.
toLowerCase
())
{
case
"
getscene
"
:
{
res
.
redirect
(
url
.
format
({
pathname
:
`
${
req
.
baseUrl
}
/scene`
,
query
:
req
.
query
,
})
);
break
;
}
case
"
getcapabilities
"
:
{
res
.
redirect
(
url
.
format
({
pathname
:
`
${
req
.
baseUrl
}
/capabilities`
,
query
:
req
.
query
,
})
);
break
;
}
}
}
module
.
exports
=
redirectTo
;
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment