From 49e8d26bfcb1f6f13611ee3af0283e3374bfe26d Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Fri, 24 Jul 2026 11:34:54 -0700 Subject: [PATCH] remove legacy try/catch blocks --- .../geo-checks/geo-check.repository.mongo.ts | 400 ++++++++---------- 1 file changed, 170 insertions(+), 230 deletions(-) diff --git a/server/src/domain/geo-checks/geo-check.repository.mongo.ts b/server/src/domain/geo-checks/geo-check.repository.mongo.ts index 5f4067ec7..0d1183720 100644 --- a/server/src/domain/geo-checks/geo-check.repository.mongo.ts +++ b/server/src/domain/geo-checks/geo-check.repository.mongo.ts @@ -64,28 +64,18 @@ class MongoGeoChecksRepository implements IGeoChecksRepository { }; createGeoChecks = async (geoChecks: Omit[]): Promise => { - try { - const docs = await GeoCheckModel.insertMany( - geoChecks.map((geoCheck) => ({ - metadata: { - monitorId: new mongoose.Types.ObjectId(geoCheck.metadata.monitorId), - teamId: new mongoose.Types.ObjectId(geoCheck.metadata.teamId), - type: geoCheck.metadata.type, - }, - results: geoCheck.results, - expiry: new Date(geoCheck.expiry), - })) - ); - return docs.map((doc) => this.toEntity(doc)); - } catch (error: unknown) { - this.logger.error({ - message: error instanceof Error ? `Failed to createGeoChecks: ${error.message}` : "Failed to createGeoChecks", - service: SERVICE_NAME, - method: "createGeoChecks", - stack: error instanceof Error ? error.stack : undefined, - }); - throw error; - } + const docs = await GeoCheckModel.insertMany( + geoChecks.map((geoCheck) => ({ + metadata: { + monitorId: new mongoose.Types.ObjectId(geoCheck.metadata.monitorId), + teamId: new mongoose.Types.ObjectId(geoCheck.metadata.teamId), + type: geoCheck.metadata.type, + }, + results: geoCheck.results, + expiry: new Date(geoCheck.expiry), + })) + ); + return docs.map((doc) => this.toEntity(doc)); }; findByMonitorId = async ( @@ -96,95 +86,85 @@ class MongoGeoChecksRepository implements IGeoChecksRepository { rowsPerPage: number, continents?: GeoContinent[] ): Promise => { - try { - const matchStage: Record = { - "metadata.monitorId": new mongoose.Types.ObjectId(monitorId), - createdAt: { $gte: getDateForRange(dateRange) }, - }; + const matchStage: Record = { + "metadata.monitorId": new mongoose.Types.ObjectId(monitorId), + createdAt: { $gte: getDateForRange(dateRange) }, + }; - const convertedSortOrder = sortOrder === "asc" ? 1 : -1; + const convertedSortOrder = sortOrder === "asc" ? 1 : -1; - let skip = 0; - if (page && rowsPerPage) { - skip = page * rowsPerPage; - } - - // Common pipeline stages for both paths - const pipeline: PipelineStage[] = [ - { $match: matchStage }, - { $unwind: "$results" }, - // Filter by continent if specified - ...(continents && continents.length > 0 - ? [ - { - $match: { - "results.location.continent": { $in: continents }, - }, - }, - ] - : []), - // Project to flat structure - { - $project: { - _id: 0, - monitorId: "$metadata.monitorId", - teamId: "$metadata.teamId", - type: "$metadata.type", - location: "$results.location", - status: "$results.status", - statusCode: "$results.statusCode", - timings: "$results.timings", - createdAt: 1, - updatedAt: 1, - }, - }, - { $sort: { createdAt: convertedSortOrder } }, - { $skip: skip }, - { $limit: rowsPerPage }, - ]; - - // Count pipeline - const countPipeline: PipelineStage[] = [ - { $match: matchStage }, - { $unwind: "$results" }, - ...(continents && continents.length > 0 - ? [ - { - $match: { - "results.location.continent": { $in: continents }, - }, - }, - ] - : []), - { $count: "count" }, - ]; - - const [countResult, dataResults] = await Promise.all([GeoCheckModel.aggregate(countPipeline), GeoCheckModel.aggregate(pipeline)]); - - const geoChecksCount = countResult[0]?.count || 0; - const geoChecks: FlatGeoCheck[] = dataResults.map((doc) => ({ - id: `${doc.monitorId.toString()}-${new Date(doc.createdAt).getTime()}-${doc.location.continent}-${doc.location.city}-${Math.random().toString(36).substring(2, 15)}`, - monitorId: doc.monitorId.toString(), - teamId: doc.teamId.toString(), - type: doc.type, - location: doc.location, - status: doc.status, - statusCode: doc.statusCode, - timings: doc.timings, - createdAt: new Date(doc.createdAt).toISOString(), - updatedAt: new Date(doc.updatedAt).toISOString(), - })); - - return { geoChecksCount, geoChecks }; - } catch (error: unknown) { - this.logger.error({ - message: error instanceof Error ? `Error finding geo checks by monitor ID: ${error.message}` : "Error finding geo checks by monitor ID", - service: SERVICE_NAME, - method: "findByMonitorId", - stack: error instanceof Error ? error.stack : undefined, - }); - throw error; + let skip = 0; + if (page && rowsPerPage) { + skip = page * rowsPerPage; } + + // Common pipeline stages for both paths + const pipeline: PipelineStage[] = [ + { $match: matchStage }, + { $unwind: "$results" }, + // Filter by continent if specified + ...(continents && continents.length > 0 + ? [ + { + $match: { + "results.location.continent": { $in: continents }, + }, + }, + ] + : []), + // Project to flat structure + { + $project: { + _id: 0, + monitorId: "$metadata.monitorId", + teamId: "$metadata.teamId", + type: "$metadata.type", + location: "$results.location", + status: "$results.status", + statusCode: "$results.statusCode", + timings: "$results.timings", + createdAt: 1, + updatedAt: 1, + }, + }, + { $sort: { createdAt: convertedSortOrder } }, + { $skip: skip }, + { $limit: rowsPerPage }, + ]; + + // Count pipeline + const countPipeline: PipelineStage[] = [ + { $match: matchStage }, + { $unwind: "$results" }, + ...(continents && continents.length > 0 + ? [ + { + $match: { + "results.location.continent": { $in: continents }, + }, + }, + ] + : []), + { $count: "count" }, + ]; + + const [countResult, dataResults] = await Promise.all([GeoCheckModel.aggregate(countPipeline), GeoCheckModel.aggregate(pipeline)]); + + const geoChecksCount = countResult[0]?.count || 0; + const geoChecks: FlatGeoCheck[] = dataResults.map((doc) => ({ + id: `${doc.monitorId.toString()}-${new Date(doc.createdAt).getTime()}-${doc.location.continent}-${doc.location.city}-${Math.random().toString(36).substring(2, 15)}`, + monitorId: doc.monitorId.toString(), + teamId: doc.teamId.toString(), + type: doc.type, + location: doc.location, + status: doc.status, + statusCode: doc.statusCode, + timings: doc.timings, + createdAt: new Date(doc.createdAt).toISOString(), + updatedAt: new Date(doc.updatedAt).toISOString(), + })); + + return { geoChecksCount, geoChecks }; }; findGroupedByMonitorIdAndDateRange = async (monitorId: string, dateRange: DateRange, continents?: GeoContinent[]): Promise => { @@ -192,146 +172,106 @@ class MongoGeoChecksRepository implements IGeoChecksRepository { const dateString = getDateFormat(dateRange); const end = new Date(); - try { - const pipeline: PipelineStage[] = [ - // Match geo checks for this monitor in date range - { - $match: { - "metadata.monitorId": new mongoose.Types.ObjectId(monitorId), - createdAt: { - $gte: start, - $lte: end, + const pipeline: PipelineStage[] = [ + // Match geo checks for this monitor in date range + { + $match: { + "metadata.monitorId": new mongoose.Types.ObjectId(monitorId), + createdAt: { + $gte: start, + $lte: end, + }, + }, + }, + // Unwind the results array to process each location separately + { + $unwind: "$results", + }, + // Filter by continent if specified + ...(continents && continents.length > 0 + ? [ + { + $match: { + "results.location.continent": { $in: continents }, + }, + }, + ] + : []), + // Group by date bucket and continent + { + $group: { + _id: { + bucketDate: { + $dateToString: { + format: dateString, + date: "$createdAt", + }, + }, + continent: "$results.location.continent", + }, + avgResponseTime: { $avg: "$results.timings.total" }, + totalChecks: { $sum: 1 }, + upChecks: { + $sum: { + $cond: ["$results.status", 1, 0], }, }, }, - // Unwind the results array to process each location separately - { - $unwind: "$results", - }, - // Filter by continent if specified - ...(continents && continents.length > 0 - ? [ + }, + // Calculate uptime percentage + { + $project: { + _id: 0, + bucketDate: "$_id.bucketDate", + continent: "$_id.continent", + avgResponseTime: { $round: ["$avgResponseTime", 2] }, + totalChecks: 1, + uptimePercentage: { + $round: [ { - $match: { - "results.location.continent": { $in: continents }, - }, + $multiply: [ + { + $divide: ["$upChecks", "$totalChecks"], + }, + 100, + ], }, - ] - : []), - // Group by date bucket and continent - { - $group: { - _id: { - bucketDate: { - $dateToString: { - format: dateString, - date: "$createdAt", - }, - }, - continent: "$results.location.continent", - }, - avgResponseTime: { $avg: "$results.timings.total" }, - totalChecks: { $sum: 1 }, - upChecks: { - $sum: { - $cond: ["$results.status", 1, 0], - }, - }, + 2, + ], }, }, - // Calculate uptime percentage - { - $project: { - _id: 0, - bucketDate: "$_id.bucketDate", - continent: "$_id.continent", - avgResponseTime: { $round: ["$avgResponseTime", 2] }, - totalChecks: 1, - uptimePercentage: { - $round: [ - { - $multiply: [ - { - $divide: ["$upChecks", "$totalChecks"], - }, - 100, - ], - }, - 2, - ], - }, - }, + }, + // Sort by date and continent + { + $sort: { + bucketDate: 1, + continent: 1, }, - // Sort by date and continent - { - $sort: { - bucketDate: 1, - continent: 1, - }, - }, - ]; + }, + ]; - const results = await GeoCheckModel.aggregate(pipeline); - return results as GroupedGeoCheck[]; - } catch (error: unknown) { - this.logger.error({ - message: error instanceof Error ? `Error finding grouped geo checks: ${error.message}` : "Error finding grouped geo checks", - service: SERVICE_NAME, - method: "findGroupedByMonitorIdAndDateRange", - stack: error instanceof Error ? error.stack : undefined, - }); - throw error; - } + const results = await GeoCheckModel.aggregate(pipeline); + return results as GroupedGeoCheck[]; }; deleteByMonitorId = async (monitorId: string): Promise => { - try { - const result = await GeoCheckModel.deleteMany({ - "metadata.monitorId": new mongoose.Types.ObjectId(monitorId), - }); - return result.deletedCount || 0; - } catch (error: unknown) { - this.logger.error({ - message: error instanceof Error ? `Error deleting geo checks by monitor ID: ${error.message}` : "Error deleting geo checks by monitor ID", - service: SERVICE_NAME, - method: "deleteByMonitorId", - stack: error instanceof Error ? error.stack : undefined, - }); - throw error; - } + const result = await GeoCheckModel.deleteMany({ + "metadata.monitorId": new mongoose.Types.ObjectId(monitorId), + }); + return result.deletedCount || 0; }; deleteByTeamId = async (teamId: string): Promise => { - try { - const result = await GeoCheckModel.deleteMany({ - "metadata.teamId": new mongoose.Types.ObjectId(teamId), - }); - return result.deletedCount || 0; - } catch (error: unknown) { - this.logger.error({ - message: error instanceof Error ? `Error deleting geo checks by team ID: ${error.message}` : "Error deleting geo checks by team ID", - service: SERVICE_NAME, - method: "deleteByTeamId", - stack: error instanceof Error ? error.stack : undefined, - }); - throw error; - } + const result = await GeoCheckModel.deleteMany({ + "metadata.teamId": new mongoose.Types.ObjectId(teamId), + }); + return result.deletedCount || 0; }; deleteByMonitorIdsNotIn = async (monitorIds: string[]): Promise => { - try { - const objectIds = monitorIds.map((id) => new mongoose.Types.ObjectId(id)); - const result = await GeoCheckModel.deleteMany({ "metadata.monitorId": { $nin: objectIds } }); - return result.deletedCount || 0; - } catch (error: unknown) { - this.logger.error({ - message: error instanceof Error ? `Error deleting orphaned geo checks: ${error.message}` : "Error deleting orphaned geo checks", - service: SERVICE_NAME, - method: "deleteByMonitorIdsNotIn", - stack: error instanceof Error ? error.stack : undefined, - }); - throw error; - } + const objectIds = monitorIds.map((id) => new mongoose.Types.ObjectId(id)); + const result = await GeoCheckModel.deleteMany({ "metadata.monitorId": { $nin: objectIds } }); + return result.deletedCount || 0; }; }