From cbe50bc14d634124e160333b493155baaf8e107b Mon Sep 17 00:00:00 2001 From: elangptra Date: Thu, 21 Nov 2024 08:14:50 +0700 Subject: [PATCH] refactor: media fixing --- controllers/contentControllers/exercise.js | 14 ++++++-- controllers/contentControllers/level.js | 36 +++++++++++++++---- controllers/contentControllers/section.js | 17 +++++++-- .../exerciseTypesControllers/matchingPairs.js | 2 ++ .../multipleChoices.js | 2 ++ .../exerciseTypesControllers/trueFalse.js | 2 ++ controllers/usersControllers/user.js | 6 +++- middlewares/Level/uploadLevel.js | 6 ++-- middlewares/Level/uploadLevelFile.js | 6 ++-- middlewares/User/uploadUser.js | 2 +- middlewares/uploadExercise.js | 6 ++-- middlewares/uploadExerciseSingle.js | 6 ++-- middlewares/uploadSection.js | 2 +- 13 files changed, 81 insertions(+), 26 deletions(-) diff --git a/controllers/contentControllers/exercise.js b/controllers/contentControllers/exercise.js index f597621..054edce 100644 --- a/controllers/contentControllers/exercise.js +++ b/controllers/contentControllers/exercise.js @@ -713,6 +713,7 @@ export const updateExerciseById = async (req, res) => { if (AUDIO) { if (exercise.AUDIO) { const oldAudioPath = path.join( + process.cwd(), "media/uploads/exercise/audio", exercise.AUDIO ); @@ -731,6 +732,7 @@ export const updateExerciseById = async (req, res) => { if (IMAGE) { if (exercise.IMAGE) { const oldImagePath = path.join( + process.cwd(), "media/uploads/exercise/image", exercise.IMAGE ); @@ -988,11 +990,19 @@ export const deleteExerciseFileById = async (req, res) => { if (fileType === "audio" && exercise.AUDIO) { fileName = exercise.AUDIO; - filePath = path.join("media/uploads/exercise/audio", fileName); + filePath = path.join( + process.cwd(), + "media/uploads/exercise/audio", + fileName + ); exercise.AUDIO = null; } else if (fileType === "image" && exercise.IMAGE) { fileName = exercise.IMAGE; - filePath = path.join("media/uploads/exercise/image", fileName); + filePath = path.join( + process.cwd(), + "media/uploads/exercise/image", + fileName + ); exercise.IMAGE = null; } else if (fileType === "video" && exercise.VIDEO) { exercise.VIDEO = null; diff --git a/controllers/contentControllers/level.js b/controllers/contentControllers/level.js index 6970863..0f22643 100644 --- a/controllers/contentControllers/level.js +++ b/controllers/contentControllers/level.js @@ -577,6 +577,7 @@ export const updateLevelById = async (req, res, next) => { if (AUDIO) { if (level.AUDIO) { const oldAudioPath = path.join( + process.cwd(), "media/uploads/level/audio", level.AUDIO ); @@ -594,6 +595,7 @@ export const updateLevelById = async (req, res, next) => { if (IMAGE) { if (level.IMAGE) { const oldImagePath = path.join( + process.cwd(), "media/uploads/level/image", level.IMAGE ); @@ -677,11 +679,19 @@ export const deleteLevelFileById = async (req, res) => { if (fileType === "audio" && level.AUDIO) { fileName = level.AUDIO; - filePath = path.join("media/uploads/level/audio", fileName); + filePath = path.join( + process.cwd(), + "media/uploads/level/audio", + fileName + ); level.AUDIO = null; } else if (fileType === "image" && level.IMAGE) { fileName = level.IMAGE; - filePath = path.join("media/uploads/level/image", fileName); + filePath = path.join( + process.cwd(), + "media/uploads/level/image", + fileName + ); level.IMAGE = null; } else if (fileType === "video" && level.VIDEO) { level.VIDEO = null; @@ -745,9 +755,17 @@ export const deleteLevelFilesById = async (req, res) => { let filePath; if (fileType === "AUDIO") { - filePath = path.join("media/uploads/level/audio", fileName); + filePath = path.join( + process.cwd(), + "media/uploads/level/audio", + fileName + ); } else if (fileType === "IMAGE") { - filePath = path.join("media/uploads/level/image", fileName); + filePath = path.join( + process.cwd(), + "media/uploads/level/image", + fileName + ); } else { return response(400, null, "Invalid file type", res); } @@ -984,8 +1002,14 @@ export const getLevelFiles = async (req, res) => { const { levelId } = req.params; try { - const audioFolderPath = path.join("media/uploads/level/audio"); - const imageFolderPath = path.join("media/uploads/level/image"); + const audioFolderPath = path.join( + process.cwd(), + "media/uploads/level/audio" + ); + const imageFolderPath = path.join( + process.cwd(), + "media/uploads/level/image" + ); const getFilesByLevelId = (folderPath, fileType) => { if (fs.existsSync(folderPath)) { diff --git a/controllers/contentControllers/section.js b/controllers/contentControllers/section.js index 5d40ae7..8ac8540 100644 --- a/controllers/contentControllers/section.js +++ b/controllers/contentControllers/section.js @@ -59,7 +59,13 @@ export const getSectionForAdmin = async (req, res) => { ], }), }, - attributes: ["ID_SECTION", "NAME_SECTION", "DESCRIPTION_SECTION", "THUMBNAIL", "TIME_SECTION"], + attributes: [ + "ID_SECTION", + "NAME_SECTION", + "DESCRIPTION_SECTION", + "THUMBNAIL", + "TIME_SECTION", + ], distinct: true, }); @@ -72,9 +78,13 @@ export const getSectionForAdmin = async (req, res) => { })); if (sort === "section") { - formattedSections.sort((a, b) => a.NAME_SECTION.localeCompare(b.NAME_SECTION)); + formattedSections.sort((a, b) => + a.NAME_SECTION.localeCompare(b.NAME_SECTION) + ); } else if (sort === "description") { - formattedSections.sort((a, b) => a.DESCRIPTION_SECTION.localeCompare(b.DESCRIPTION_SECTION)); + formattedSections.sort((a, b) => + a.DESCRIPTION_SECTION.localeCompare(b.DESCRIPTION_SECTION) + ); } else { formattedSections.sort( (a, b) => new Date(b.TIME_SECTION) - new Date(a.TIME_SECTION) @@ -200,6 +210,7 @@ export const updateSectionById = async (req, res) => { if (THUMBNAIL) { if (section.THUMBNAIL) { const oldThumbnailPath = path.join( + process.cwd(), "media/uploads/section", section.THUMBNAIL ); diff --git a/controllers/exerciseTypesControllers/matchingPairs.js b/controllers/exerciseTypesControllers/matchingPairs.js index 8f88494..941c91b 100644 --- a/controllers/exerciseTypesControllers/matchingPairs.js +++ b/controllers/exerciseTypesControllers/matchingPairs.js @@ -163,6 +163,7 @@ export const updateMatchingPairsExerciseById = async (req, res) => { if (AUDIO) { if (exercise.AUDIO) { const oldAudioPath = path.join( + process.cwd(), "media/uploads/exercise/audio", exercise.AUDIO ); @@ -181,6 +182,7 @@ export const updateMatchingPairsExerciseById = async (req, res) => { if (IMAGE) { if (exercise.IMAGE) { const oldImagePath = path.join( + process.cwd(), "media/uploads/exercise/image", exercise.IMAGE ); diff --git a/controllers/exerciseTypesControllers/multipleChoices.js b/controllers/exerciseTypesControllers/multipleChoices.js index a95e99c..7c9761e 100644 --- a/controllers/exerciseTypesControllers/multipleChoices.js +++ b/controllers/exerciseTypesControllers/multipleChoices.js @@ -173,6 +173,7 @@ export const updateMultipleChoicesExerciseById = async (req, res) => { if (AUDIO) { if (exercise.AUDIO) { const oldAudioPath = path.join( + process.cwd(), "media/uploads/exercise/audio", exercise.AUDIO ); @@ -191,6 +192,7 @@ export const updateMultipleChoicesExerciseById = async (req, res) => { if (IMAGE) { if (exercise.IMAGE) { const oldImagePath = path.join( + process.cwd(), "media/uploads/exercise/image", exercise.IMAGE ); diff --git a/controllers/exerciseTypesControllers/trueFalse.js b/controllers/exerciseTypesControllers/trueFalse.js index b0bab0f..bc55949 100644 --- a/controllers/exerciseTypesControllers/trueFalse.js +++ b/controllers/exerciseTypesControllers/trueFalse.js @@ -139,6 +139,7 @@ export const updateTrueFalseExerciseById = async (req, res) => { if (AUDIO) { if (exercise.AUDIO) { const oldAudioPath = path.join( + process.cwd(), "media/uploads/exercise/audio", exercise.AUDIO ); @@ -157,6 +158,7 @@ export const updateTrueFalseExerciseById = async (req, res) => { if (IMAGE) { if (exercise.IMAGE) { const oldImagePath = path.join( + process.cwd(), "media/uploads/exercise/image", exercise.IMAGE ); diff --git a/controllers/usersControllers/user.js b/controllers/usersControllers/user.js index 49a0c36..802ff9e 100644 --- a/controllers/usersControllers/user.js +++ b/controllers/usersControllers/user.js @@ -473,7 +473,11 @@ export const updateUserById = async (req, res) => { if (PICTURE) { if (user.PICTURE) { - const oldPicturePath = path.join("media/uploads/avatar", user.PICTURE); + const oldPicturePath = path.join( + process.cwd(), + "media/uploads/avatar", + user.PICTURE + ); if (fs.existsSync(oldPicturePath)) { fs.unlinkSync(oldPicturePath); } diff --git a/middlewares/Level/uploadLevel.js b/middlewares/Level/uploadLevel.js index 1e09778..95977e3 100644 --- a/middlewares/Level/uploadLevel.js +++ b/middlewares/Level/uploadLevel.js @@ -116,13 +116,13 @@ export const saveFileToDisk = (file, type, topicId, sectionId, levelId) => { let folderPath; switch (type) { case "AUDIO": - folderPath = path.join("media/uploads/level/audio"); + folderPath = path.join(process.cwd(), "media/uploads/level/audio"); break; case "IMAGE": - folderPath = path.join("media/uploads/level/image"); + folderPath = path.join(process.cwd(), "media/uploads/level/image"); break; default: - folderPath = path.join("media/uploads/level"); + folderPath = path.join(process.cwd(), "media/uploads/level"); } if (!fs.existsSync(folderPath)) { diff --git a/middlewares/Level/uploadLevelFile.js b/middlewares/Level/uploadLevelFile.js index 08d3bdc..063a163 100644 --- a/middlewares/Level/uploadLevelFile.js +++ b/middlewares/Level/uploadLevelFile.js @@ -116,13 +116,13 @@ export const saveFileToDisk = (file, type, topicId, sectionId, levelId) => { let folderPath; switch (type) { case "AUDIO": - folderPath = path.join("media/uploads/level/audio"); + folderPath = path.join(process.cwd(), "media/uploads/level/audio"); break; case "IMAGE": - folderPath = path.join("media/uploads/level/image"); + folderPath = path.join(process.cwd(), "media/uploads/level/image"); break; default: - folderPath = path.join("media/uploads/level"); + folderPath = path.join(process.cwd(), "media/uploads/level"); } if (!fs.existsSync(folderPath)) { diff --git a/middlewares/User/uploadUser.js b/middlewares/User/uploadUser.js index a8a734d..2a9b0e3 100644 --- a/middlewares/User/uploadUser.js +++ b/middlewares/User/uploadUser.js @@ -77,7 +77,7 @@ export const saveFileToDisk = (file, userId, userName) => { ) .digest("hex"); const filename = `user-${hash}${ext}`; - const folderPath = path.join("media/uploads/avatar"); + const folderPath = path.join(process.cwd(), "media/uploads/avatar"); if (!fs.existsSync(folderPath)) { fs.mkdirSync(folderPath, { recursive: true }); diff --git a/middlewares/uploadExercise.js b/middlewares/uploadExercise.js index e0784f3..94ea7ab 100644 --- a/middlewares/uploadExercise.js +++ b/middlewares/uploadExercise.js @@ -104,13 +104,13 @@ export const saveFileToDisk = (file, type, levelId, exerciseId) => { let folderPath; switch (type) { case "AUDIO": - folderPath = path.join("media/uploads/exercise/audio"); + folderPath = path.join(process.cwd(), "media/uploads/exercise/audio"); break; case "IMAGE": - folderPath = path.join("media/uploads/exercise/image"); + folderPath = path.join(process.cwd(), "media/uploads/exercise/image"); break; default: - folderPath = path.join("media/uploads/exercise"); + folderPath = path.join(process.cwd(), "media/uploads/exercise"); } if (!fs.existsSync(folderPath)) { diff --git a/middlewares/uploadExerciseSingle.js b/middlewares/uploadExerciseSingle.js index 39710e3..d8b56da 100644 --- a/middlewares/uploadExerciseSingle.js +++ b/middlewares/uploadExerciseSingle.js @@ -116,13 +116,13 @@ export const saveFileToDisk = (file, type, levelId, exerciseId) => { let folderPath; switch (type) { case "AUDIO": - folderPath = path.join("media/uploads/exercise/audio"); + folderPath = path.join(process.cwd(), "media/uploads/exercise/audio"); break; case "IMAGE": - folderPath = path.join("media/uploads/exercise/image"); + folderPath = path.join(process.cwd(), "media/uploads/exercise/image"); break; default: - folderPath = path.join("media/uploads/exercise"); + folderPath = path.join(process.cwd(), "media/uploads/exercise"); } if (!fs.existsSync(folderPath)) { diff --git a/middlewares/uploadSection.js b/middlewares/uploadSection.js index 1d5cb03..6f12465 100644 --- a/middlewares/uploadSection.js +++ b/middlewares/uploadSection.js @@ -75,7 +75,7 @@ export const saveFileToDisk = (file, fieldName, idSection) => { .update(file.originalname + file.buffer.length.toString()) .digest("hex"); const filename = `${fieldName}-${idSection}-${hash}${ext}`; - const folderPath = path.join("media/uploads/section"); + const folderPath = path.join(process.cwd(), "media/uploads/section"); if (!fs.existsSync(folderPath)) { fs.mkdirSync(folderPath, { recursive: true });