add dateRange to checks query

This commit is contained in:
Alex Holliday committed 2026-01-27 20:46:28 +00:00
1 parent 0af7cfe714
commit 63d2bb97ee
8 files changed
+19 -13

No files matched your search

+2 -1
View File
@@ -66,7 +66,8 @@ class CheckController {
getChecksSummaryByTeamId = async (req: Request, res: Response, next: NextFunction) => {
try {
const summary = await this.checkService.getChecksSummaryByTeamId({ teamId: req?.user?.teamId });
const dateRange = req.query?.dateRange || "hour";
const summary = await this.checkService.getChecksSummaryByTeamId({ teamId: req?.user?.teamId, dateRange });
return res.status(200).json({
success: true,
msg: "Checks summary retrieved successfully",
@@ -33,7 +33,7 @@ export interface IChecksRepository {
dateString: string,
options?: { type?: MonitorType }
): Promise<UptimeChecksResult | HardwareChecksResult | PageSpeedChecksResult>;
findSummaryByTeamId(teamId: string): Promise<ChecksSummary>;
findSummaryByTeamId(teamId: string, dateRange: string): Promise<ChecksSummary>;
// update
//delete
deleteByMonitorId(monitorId: string): Promise<number>;
@@ -365,9 +365,14 @@ class MongoChecksRepository implements IChecksRepository {
return this.findUptimeDateRangeChecks(options?.type ?? "http", monitorObjectId, startDate, endDate, dateString);
};
findSummaryByTeamId = async (teamId: string) => {
findSummaryByTeamId = async (teamId: string, dateRange: string) => {
const matchStage = {
"metadata.teamId": new mongoose.Types.ObjectId(teamId),
...(dateRangeLookup[dateRange] && {
createdAt: {
$gte: dateRangeLookup[dateRange],
},
}),
};
const checks = await CheckModel.aggregate([
{ $match: matchStage },
+2 -2
View File
@@ -145,11 +145,11 @@ class CheckService {
return checkData;
};
getChecksSummaryByTeamId = async ({ teamId }: { teamId: string }) => {
getChecksSummaryByTeamId = async ({ teamId, dateRange }: { teamId: string; dateRange: string }) => {
if (!teamId) {
throw new AppError({ message: "No team ID in request", service: SERVICE_NAME, method: "getChecksSummaryByTeamId", status: 400 });
}
const summary = await this.checksRepository.findSummaryByTeamId(teamId);
const summary = await this.checksRepository.findSummaryByTeamId(teamId, dateRange);
return summary;
};