mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2026-01-10 19:59:39 -06:00
Add endpoints and route for all user checks
This commit is contained in:
@@ -60,6 +60,20 @@ const getChecks = async (req, res, next) => {
|
||||
}
|
||||
};
|
||||
|
||||
const getUserChecks = async (req, res, next) => {
|
||||
try {
|
||||
const checks = req.db.getUserChecks(req);
|
||||
return res.status(200).json({
|
||||
success: true,
|
||||
msg: successMessages.CHECK_GET,
|
||||
data: { checksCount, checks },
|
||||
});
|
||||
} catch (error) {
|
||||
error.service = SERVICE_NAME;
|
||||
next(error);
|
||||
}
|
||||
};
|
||||
|
||||
const deleteChecks = async (req, res, next) => {
|
||||
try {
|
||||
await deleteChecksParamValidation.validateAsync(req.params);
|
||||
@@ -88,5 +102,6 @@ const deleteChecks = async (req, res, next) => {
|
||||
module.exports = {
|
||||
createCheck,
|
||||
getChecks,
|
||||
getUserChecks,
|
||||
deleteChecks,
|
||||
};
|
||||
|
||||
@@ -90,6 +90,7 @@ const {
|
||||
createCheck,
|
||||
getChecksCount,
|
||||
getChecks,
|
||||
getUserChecks,
|
||||
deleteChecks,
|
||||
} = require("./modules/checkModule");
|
||||
|
||||
@@ -148,6 +149,7 @@ module.exports = {
|
||||
createCheck,
|
||||
getChecksCount,
|
||||
getChecks,
|
||||
getUserChecks,
|
||||
deleteChecks,
|
||||
createAlert,
|
||||
getAlertsByUserId,
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
const Check = require("../../../models/Check");
|
||||
const Monitor = require("../../../models/Monitor");
|
||||
const mongoose = require("mongoose");
|
||||
const filterLookup = {
|
||||
day: new Date(new Date().setDate(new Date().getDate() - 1)),
|
||||
week: new Date(new Date().setDate(new Date().getDate() - 7)),
|
||||
@@ -92,6 +94,35 @@ const getChecks = async (req) => {
|
||||
* @throws {Error}
|
||||
*/
|
||||
|
||||
const getUserChecks = async (req) => {
|
||||
const { userId } = req.params;
|
||||
try {
|
||||
const objectId = mongoose.Types.ObjectId.createFromHexString(userId);
|
||||
|
||||
const checks = await Check.aggregate([
|
||||
{
|
||||
$lookup: {
|
||||
from: "monitors", // The name of the Monitor collection
|
||||
localField: "monitorId",
|
||||
foreignField: "_id",
|
||||
as: "monitorDetails",
|
||||
},
|
||||
},
|
||||
{
|
||||
$unwind: "$monitorDetails",
|
||||
},
|
||||
{
|
||||
$match: {
|
||||
"monitorDetails.userId": objectId,
|
||||
},
|
||||
},
|
||||
]);
|
||||
return checks;
|
||||
} catch (error) {
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
const deleteChecks = async (monitorId) => {
|
||||
try {
|
||||
const result = await Check.deleteMany({ monitorId });
|
||||
@@ -100,4 +131,10 @@ const deleteChecks = async (monitorId) => {
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
module.exports = { createCheck, getChecksCount, getChecks, deleteChecks };
|
||||
module.exports = {
|
||||
createCheck,
|
||||
getChecksCount,
|
||||
getChecks,
|
||||
getUserChecks,
|
||||
deleteChecks,
|
||||
};
|
||||
|
||||
@@ -21,4 +21,6 @@ router.post(
|
||||
checkController.deleteChecks
|
||||
);
|
||||
|
||||
module.exports = router;
|
||||
router.get("/user/:userId", checkController.getUserChecks);
|
||||
|
||||
module.exports = router;
|
||||
|
||||
Reference in New Issue
Block a user