addRouter method

ServerService addRouter(
  1. RouterInfo routerInfo
)

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;
}