diff --git a/server/src/repositories/monitors/IMonitorsRepository.ts b/server/src/repositories/monitors/IMonitorsRepository.ts index c52ba55c0..6e2e9dea1 100644 --- a/server/src/repositories/monitors/IMonitorsRepository.ts +++ b/server/src/repositories/monitors/IMonitorsRepository.ts @@ -31,6 +31,7 @@ export interface IMonitorsRepository { // update updateById(monitorId: string, teamId: string, updates: Partial): Promise; + updateByIds(monitorIds: string[], teamId: string, updates: Partial): Promise; updateStatusWindowAndChecks( monitorId: string, teamId: string, diff --git a/server/src/repositories/monitors/MongoMonitorsRepository.ts b/server/src/repositories/monitors/MongoMonitorsRepository.ts index 10bd57d56..5f6bbac73 100644 --- a/server/src/repositories/monitors/MongoMonitorsRepository.ts +++ b/server/src/repositories/monitors/MongoMonitorsRepository.ts @@ -190,6 +190,12 @@ class MongoMonitorsRepository implements IMonitorsRepository { return this.toEntity(updatedMonitor); }; + updateByIds = async (monitorIds: string[], teamId: string, updates: Partial) => { + const objectIds = monitorIds.map((id) => new mongoose.Types.ObjectId(id)); + const updated = await MonitorModel.updateMany({ _id: { $in: objectIds }, teamId }, { $set: updates }, { runValidators: true }); + return updated.modifiedCount; + }; + updateStatusWindowAndChecks = async ( monitorId: string, teamId: string,