addRouter method
Implementation
ServerService addRouter(RouterInfo routerInfo) {
bool jwtSecured = routerInfo.jwtSecured;
bool emailMustBeVerified = routerInfo.emailMustBeVerified;
Router router = routerInfo.router;
if (disableCORS) {
router.addUpperMiddleware(null, HttpMethods.all, _corsMiddleWare);
}
// this middleware will check for db auto reconnecting
router.addUpperMiddleware(null, HttpMethods.all,
(request, response, pathArgs) async {
if (dbService.connected) return request;
await dbService.reconnect();
return request;
});
//? run checks here
if (!jwtSecured && emailMustBeVerified) {
throw Exception(
'emailMustBeVerified && !jwtSecured, to check if email must be verified user must be logged in first');
}
//? adding middlewares here
// checking for app id for every
// checking if jwt is added and user logged in
if (jwtSecured) {
router
.addUpperMiddleware(
null,
HttpMethods.all,
authServerSettings.authServerMiddlewares.checkJwtInHeaders,
signature: 'checkJwtInHeadersFromUserCustomRoutes',
)
.addUpperMiddleware(
null,
HttpMethods.all,
authServerSettings.authServerMiddlewares.checkJwtForUserId,
signature: 'checkJwtForUserId',
);
}
// checking if email is verified
if (emailMustBeVerified) {
router.addUpperMiddleware(
null,
HttpMethods.all,
authServerSettings.authServerMiddlewares.checkUserEmailVerified,
);
}
//?
_pipeline = _pipeline.addRouter(router);
return this;
}