diff --git a/src/middlewares/files/createFile.ts b/src/middlewares/files/createFile.ts index 6e0028ac3643991a0ee811feb303b590fed31599..3fa6062d3e9362660c95c4f2ad3c7f802bd71970 100644 --- a/src/middlewares/files/createFile.ts +++ b/src/middlewares/files/createFile.ts @@ -31,6 +31,7 @@ const createFile = () => async ( } res.data.value = newFile._id; + res.data.newObjectId = newFile._id; next(); } catch (err) { diff --git a/src/middlewares/files/updateTermCardBg.ts b/src/middlewares/files/updateTermCardBg.ts index 8e7e5c0cb565d86bc662f2438d35b27d1cf0f0ef..3bbf4e94f47a0f80ae507ed3e49230619abdf674 100644 --- a/src/middlewares/files/updateTermCardBg.ts +++ b/src/middlewares/files/updateTermCardBg.ts @@ -8,7 +8,7 @@ import fs from "fs"; /** * Upload a new profile picture */ -const uploadTermCardBg = () => async ( +const updateTermCardBg = () => async ( req: Request, res: Response, next: NextFunction @@ -34,4 +34,4 @@ const uploadTermCardBg = () => async ( } }; -export default uploadTermCardBg; +export default updateTermCardBg; diff --git a/src/routes/files.ts b/src/routes/files.ts index bc88876ab1bef27c1932163b875f4b78e81132e4..827e01689bf080422828d5f8adceef7094fdcfe3 100644 --- a/src/routes/files.ts +++ b/src/routes/files.ts @@ -5,8 +5,10 @@ import profilePictureStorage, { import { Application } from "express"; import cardImageStorage from "../middlewares/files/card/cardImageStorage"; import createFile from "../middlewares/files/createFile"; +import createdResponse from "../middlewares/utils/createdResponse"; import example from "../middlewares/example"; import getFieldValue from "../middlewares/utils/getFieldValue"; +import getTerm from "../middlewares/term/getTerm"; import getUser from "../middlewares/user/getUser"; import { imageFilter } from "../middlewares/files/imageFilter"; import isLoggedIn from "../middlewares/auth/isLoggedIn"; @@ -17,6 +19,7 @@ import noContentResponse from "../middlewares/utils/noContentResponse"; import sendFile from "../middlewares/files/sendFile"; import setOwnUserId from "../middlewares/user/setOwnUserId"; import updateProfilePicture from "../middlewares/files/updateProfilePicture"; +import updateTermCardBg from "../middlewares/files/updateTermCardBg"; const profilePictureUpload = multer({ storage: imageStorage("uploads/profile_pictures/"), @@ -78,7 +81,7 @@ const filesRoute = (prefix: string, app: Application): void => { profilePictureUpload.single("profile_picture"), createFile(), updateProfilePicture(), - noContentResponse() + createdResponse() ); // Add own profile picture app.post( @@ -89,14 +92,30 @@ const filesRoute = (prefix: string, app: Application): void => { profilePictureUpload.single("profile_picture"), createFile(), updateProfilePicture(), - noContentResponse() + createdResponse() ); // Get a Term's card background image - app.get(`${prefix}/card/bg/term/:termId`, example()); + app.get( + `${prefix}/card/bg/term/:termId`, + isRegistered(), + getTerm(), + getFieldValue("term", "backgroundFile"), + sendFile() + ); // Add a Term's card background image or update it - app.post(`${prefix}/card/bg/term/:termId`, example()); + app.post( + `${prefix}/card/bg/term/:termId`, + isRegistered(), + isStaffOrAdmin(), + getTerm(), + CardImageUpload.single("card_image"), + createFile(), + updateTermCardBg(), + createdResponse() + ); // Pdf with all accepted cards in a term - app.get(`${prefix}/cards/term/:termId/accepted`, example()); + // TODO + // app.get(`${prefix}/cards/term/:termId/accepted`, example()); }; export default filesRoute;