mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2026-01-07 10:19:40 -06:00
45 lines
901 B
JavaScript
45 lines
901 B
JavaScript
const buildChecksSummaryByTeamIdPipeline = ({ matchStage }) => {
|
|
return [
|
|
{ $match: matchStage },
|
|
{
|
|
$facet: {
|
|
summary: [
|
|
{
|
|
$group: {
|
|
_id: null,
|
|
totalChecks: { $sum: { $cond: [{ $eq: ["$status", false] }, 1, 0] } },
|
|
resolvedChecks: {
|
|
$sum: {
|
|
$cond: [{ $and: [{ $eq: ["$ack", true] }, { $eq: ["$status", false] }] }, 1, 0],
|
|
},
|
|
},
|
|
downChecks: {
|
|
$sum: {
|
|
$cond: [{ $and: [{ $eq: ["$ack", false] }, { $eq: ["$status", false] }] }, 1, 0],
|
|
},
|
|
},
|
|
cannotResolveChecks: {
|
|
$sum: {
|
|
$cond: [{ $eq: ["$statusCode", 5000] }, 1, 0],
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
$project: {
|
|
_id: 0,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
$project: {
|
|
summary: { $arrayElemAt: ["$summary", 0] },
|
|
},
|
|
},
|
|
];
|
|
};
|
|
|
|
export { buildChecksSummaryByTeamIdPipeline };
|