diff --git a/src/app.ts b/src/app.ts index d16e885..657e519 100644 --- a/src/app.ts +++ b/src/app.ts @@ -37,25 +37,23 @@ if (!Config.TEST) { // Automatically convert requests from json app.use(express.json()); -// Initialize database (IMPORTANT: must be before all routers) -app.use(database); - // Add routers for each sub-service -app.use("/admission/", admissionRouter); -app.use("/auth/", authRouter); -app.use("/event/", eventRouter); -app.use("/mail/", mailRouter); -app.use("/mentor/", mentorRouter); -app.use("/newsletter/", newsletterRouter); -app.use("/notification/", notificationRouter); -app.use("/profile/", profileRouter); -app.use("/puzzle/", puzzleRouter); -app.use("/registration/", registrationRouter); +// NOTE: only include database middleware if needed +app.use("/admission/", database, admissionRouter); +app.use("/auth/", database, authRouter); +app.use("/event/", database, eventRouter); +app.use("/mail/", database, mailRouter); +app.use("/mentor/", database, mentorRouter); +app.use("/newsletter/", database, newsletterRouter); +app.use("/notification/", database, notificationRouter); +app.use("/profile/", database, profileRouter); +app.use("/puzzle/", database, puzzleRouter); +app.use("/registration/", database, registrationRouter); app.use("/s3/", s3Router); -app.use("/shop/", shopRouter); -app.use("/staff/", staffRouter); +app.use("/shop/", database, shopRouter); +app.use("/staff/", database, staffRouter); app.use("/version/", versionRouter); -app.use("/user/", userRouter); +app.use("/user/", database, userRouter); // Ensure that API is running app.get("/", (_: Request, res: Response) => { diff --git a/src/services/shop/shop-router.ts b/src/services/shop/shop-router.ts index 2fa76fe..d7a111b 100644 --- a/src/services/shop/shop-router.ts +++ b/src/services/shop/shop-router.ts @@ -18,6 +18,8 @@ import { FilteredShopItemFormat, isValidItemFormat } from "./shop-formats.js"; * @apiGroup Shop * @apiDescription Get item details for all items in point shop. * + * TODO: Rename back from /shop/v2/ to /shop/ + * * @apiSuccess (200: Success) {Json} items The items details. * @apiSuccessExample Example Success Response * HTTP/1.1 200 OK @@ -43,7 +45,7 @@ import { FilteredShopItemFormat, isValidItemFormat } from "./shop-formats.js"; * */ const shopRouter: Router = Router(); -shopRouter.get("/", weakJwtVerification, async (_1: Request, res: Response, _2: NextFunction) => { +shopRouter.get("/v2/", weakJwtVerification, async (_1: Request, res: Response, _2: NextFunction) => { const shopItems: ShopItem[] = await Models.ShopItem.find(); const filteredData: FilteredShopItemFormat[] = shopItems.map((item: ShopItem) => ({ @@ -58,8 +60,6 @@ shopRouter.get("/", weakJwtVerification, async (_1: Request, res: Response, _2: return res.status(StatusCode.SuccessOK).send(filteredData); }); -shopRouter.get("/v2/", (_: Request, res: Response) => res.redirect("/shop/")); - /** * @api {post} /shop/item POST /shop/item * @apiGroup Shop diff --git a/src/services/user/user-router.ts b/src/services/user/user-router.ts index 1b779e4..eec3500 100644 --- a/src/services/user/user-router.ts +++ b/src/services/user/user-router.ts @@ -22,6 +22,8 @@ const userRouter: Router = Router(); * @apiGroup User * @apiDescription Get a QR code with a pre-defined expiration for the user provided in the JWT token. Since expiry is set to 20 seconds, * we recommend that the results from this endpoint are not stored, but instead used immediately. + * + * TODO: Rename back from /v2-qr/ to /qr/ * * @apiSuccess (200: Success) {String} userId User to generate a QR code for * @apiSuccess (200: Success) {String} qrInfo Stringified QR code for the given user @@ -35,14 +37,6 @@ const userRouter: Router = Router(); * * @apiUse strongVerifyErrors */ -userRouter.get("/qr/", strongJwtVerification, (_: Request, res: Response) => { - // Return the same payload, but with a shorter expiration time - const payload: JwtPayload = res.locals.payload as JwtPayload; - const token: string = generateJwtToken(payload, false, Config.QR_EXPIRY_TIME); - const uri: string = `hackillinois://user?userToken=${token}`; - return res.status(StatusCode.SuccessOK).send({ userId: payload.id, qrInfo: uri }); -}); - userRouter.get("/v2-qr/", strongJwtVerification, (_: Request, res: Response) => { const payload: JwtPayload = res.locals.payload as JwtPayload; const token: string = generateJwtToken(payload, false, Config.QR_EXPIRY_TIME);