diff --git a/Server/controllers/checkController.js b/Server/controllers/checkController.js index 85bce0b54..ae0969e6e 100644 --- a/Server/controllers/checkController.js +++ b/Server/controllers/checkController.js @@ -31,7 +31,8 @@ const createCheck = async (req, res, next) => { .status(200) .json({ success: true, msg: successMessages.CHECK_CREATE, data: check }); } catch (error) { - error.service = SERVICE_NAME; + error.service === undefined ? (error.serivce = SERVICE_NAME) : null; + error.method === undefined ? (error.method = "createCheck") : null; next(error); } }; @@ -58,7 +59,8 @@ const getChecks = async (req, res, next) => { data: { checksCount, checks }, }); } catch (error) { - error.service = SERVICE_NAME; + error.service === undefined ? (error.serivce = SERVICE_NAME) : null; + error.method === undefined ? (error.method = "getChecks") : null; next(error); } }; @@ -83,7 +85,8 @@ const getTeamChecks = async (req, res, next) => { data: checkData, }); } catch (error) { - error.service = SERVICE_NAME; + error.service === undefined ? (error.serivce = SERVICE_NAME) : null; + error.method === undefined ? (error.method = "getTeamChecks") : null; next(error); } }; @@ -108,7 +111,8 @@ const deleteChecks = async (req, res, next) => { data: { deletedCount }, }); } catch (error) { - error.service = SERVICE_NAME; + error.service === undefined ? (error.serivce = SERVICE_NAME) : null; + error.method === undefined ? (error.method = "deleteChecks") : null; next(error); } }; @@ -117,8 +121,8 @@ const deleteChecksByTeamId = async (req, res, next) => { try { await deleteChecksByTeamIdParamValidation.validateAsync(req.params); } catch (error) { - error.service = SERVICE_NAME; - error.method = "deleteChecksByTeam"; + error.service === undefined ? (error.service = SERVICE_NAME) : null; + error.method === undefined ? (error.method = "deleteChecksByTeam") : null; error.status = 422; next(error); } @@ -131,8 +135,22 @@ const deleteChecksByTeamId = async (req, res, next) => { data: { deletedCount }, }); } catch (error) { - error.service = SERVICE_NAME; - error.method = "deleteChecksByTeamId"; + error.service === undefined ? (error.service = SERVICE_NAME) : null; + error.method === undefined ? (error.method = "deleteChecksByTeamId") : null; + next(error); + } +}; + +const updateChecksTTL = async (req, res, next) => { + try { + await req.db.updateChecksTTL(1); + return res.status(200).json({ + success: true, + msg: successMessages.CHECK_UPDATE_TTL, + }); + } catch (error) { + error.service === undefined ? (error.service = SERVICE_NAME) : null; + error.method === undefined ? (error.method = "updateTTL") : null; next(error); } }; @@ -143,4 +161,5 @@ module.exports = { getTeamChecks, deleteChecks, deleteChecksByTeamId, + updateChecksTTL, }; diff --git a/Server/db/mongo/MongoDB.js b/Server/db/mongo/MongoDB.js index 73d55d509..ebc50f7da 100644 --- a/Server/db/mongo/MongoDB.js +++ b/Server/db/mongo/MongoDB.js @@ -97,6 +97,7 @@ const { getTeamChecks, deleteChecks, deleteChecksByTeamId, + updateChecksTTL, } = require("./modules/checkModule"); //**************************************** @@ -161,6 +162,7 @@ module.exports = { getTeamChecks, deleteChecks, deleteChecksByTeamId, + updateChecksTTL, createAlert, getAlertsByUserId, getAlertsByMonitorId, diff --git a/Server/db/mongo/modules/checkModule.js b/Server/db/mongo/modules/checkModule.js index da3ccb8f3..9f5c687df 100644 --- a/Server/db/mongo/modules/checkModule.js +++ b/Server/db/mongo/modules/checkModule.js @@ -239,6 +239,20 @@ const deleteChecksByTeamId = async (teamId) => { } }; +const updateChecksTTL = async (teamId) => { + try { + await Check.collection.dropIndex("expiry_1"); + await Check.collection.createIndex( + { expiry: 1 }, // Field to index + { expireAfterSeconds: 60 } // TTL in seconds, adjust as necessary + ); + } catch (error) { + error.service = SERVICE_NAME; + error.method = updateTTL; + throw error; + } +}; + module.exports = { createCheck, getChecksCount, @@ -246,4 +260,5 @@ module.exports = { getTeamChecks, deleteChecks, deleteChecksByTeamId, + updateChecksTTL, }; diff --git a/Server/routes/checkRoute.js b/Server/routes/checkRoute.js index 649a68ccf..a26e9eb94 100644 --- a/Server/routes/checkRoute.js +++ b/Server/routes/checkRoute.js @@ -26,4 +26,10 @@ router.delete( checkController.deleteChecksByTeamId ); +router.put( + "/ttl", + isAllowed(["admin", "superadmin"]), + checkController.updateChecksTTL +); + module.exports = router; diff --git a/Server/utils/messages.js b/Server/utils/messages.js index e67e4e7e7..04da91491 100644 --- a/Server/utils/messages.js +++ b/Server/utils/messages.js @@ -73,6 +73,7 @@ const successMessages = { CHECK_CREATE: "Check created successfully", CHECK_GET: "Got checks successfully", CHECK_DELETE: "Checks deleted successfully", + CHECK_UPDATE_TTL: "Checks TTL updated successfully", //Monitor Controller MONITOR_GET_ALL: "Got all monitors successfully",