sorting
This commit is contained in:
1 parent
eea6b12be6
commit
459d78cbcb
11 files changed
+287
-15
No files matched your search
@@ -75,6 +75,8 @@ class MonitorController {
|
||||
|
||||
let result;
|
||||
if (req.validatedQuery.embedChecks === true) {
|
||||
const sortField = req.validatedQuery.sortField || "name";
|
||||
const sortOrder = req.validatedQuery.sortOrder || "desc";
|
||||
const page = req.validatedQuery.page || 0;
|
||||
const rowsPerPage = req.validatedQuery.rowsPerPage || 10;
|
||||
const type = req.validatedQuery.type;
|
||||
@@ -82,6 +84,8 @@ class MonitorController {
|
||||
|
||||
result = await this.monitorService.getAllEmbedChecks(
|
||||
teamId,
|
||||
sortField,
|
||||
sortOrder,
|
||||
page,
|
||||
rowsPerPage,
|
||||
type,
|
||||
|
||||
@@ -18,6 +18,8 @@ export interface IMonitorService {
|
||||
getAll: (teamId: string) => Promise<IMonitor[]>;
|
||||
getAllEmbedChecks: (
|
||||
teamId: string,
|
||||
sortField: string,
|
||||
sortOrder: string,
|
||||
page: number,
|
||||
limit: number,
|
||||
type: MonitorType[],
|
||||
@@ -87,6 +89,8 @@ class MonitorService implements IMonitorService {
|
||||
|
||||
getAllEmbedChecks = async (
|
||||
teamId: string,
|
||||
sortField: string,
|
||||
sortOrder: string,
|
||||
page: number,
|
||||
rowsPerPage: number,
|
||||
type: MonitorType[] = [],
|
||||
@@ -134,7 +138,7 @@ class MonitorService implements IMonitorService {
|
||||
|
||||
const monitors = await Monitor.find(matchConditions)
|
||||
.lean()
|
||||
.sort({ name: 1 })
|
||||
.sort({ [sortField]: sortOrder === "asc" ? 1 : -1 })
|
||||
.skip(skip)
|
||||
.limit(rowsPerPage);
|
||||
|
||||
@@ -157,7 +161,11 @@ class MonitorService implements IMonitorService {
|
||||
latestChecks: { $push: "$$ROOT" },
|
||||
},
|
||||
},
|
||||
{ $project: { latestChecks: { $slice: [{ $ifNull: ["$latestChecks", []] }, 25] } } },
|
||||
{
|
||||
$project: {
|
||||
latestChecks: { $slice: [{ $ifNull: ["$latestChecks", []] }, 25] },
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
||||
const checksMap = new Map(
|
||||
@@ -336,7 +344,14 @@ class MonitorService implements IMonitorService {
|
||||
temperature: {
|
||||
$map: {
|
||||
input: {
|
||||
$range: [0, { $size: { $ifNull: [{ $arrayElemAt: ["$tempsArrays", 0] }, []] } }],
|
||||
$range: [
|
||||
0,
|
||||
{
|
||||
$size: {
|
||||
$ifNull: [{ $arrayElemAt: ["$tempsArrays", 0] }, []],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
as: "idx",
|
||||
in: {
|
||||
@@ -362,7 +377,14 @@ class MonitorService implements IMonitorService {
|
||||
disk: {
|
||||
$map: {
|
||||
input: {
|
||||
$range: [0, { $size: { $ifNull: [{ $arrayElemAt: ["$disksArray", 0] }, []] } }],
|
||||
$range: [
|
||||
0,
|
||||
{
|
||||
$size: {
|
||||
$ifNull: [{ $arrayElemAt: ["$disksArray", 0] }, []],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
as: "idx",
|
||||
in: {
|
||||
@@ -406,7 +428,12 @@ class MonitorService implements IMonitorService {
|
||||
net: {
|
||||
$map: {
|
||||
input: {
|
||||
$range: [0, { $size: { $ifNull: [{ $arrayElemAt: ["$netsArray", 0] }, []] } }],
|
||||
$range: [
|
||||
0,
|
||||
{
|
||||
$size: { $ifNull: [{ $arrayElemAt: ["$netsArray", 0] }, []] },
|
||||
},
|
||||
],
|
||||
},
|
||||
as: "idx",
|
||||
in: {
|
||||
|
||||
@@ -135,6 +135,8 @@ export const monitorAllEmbedChecksQuerySchema = z.object({
|
||||
if (!val) return [];
|
||||
return Array.isArray(val) ? val : [val];
|
||||
}),
|
||||
sortField: z.string().optional(),
|
||||
sortOrder: z.string().optional(),
|
||||
page: z
|
||||
.string()
|
||||
.optional()
|
||||
|
||||
Reference in new issue
Block a user