diff --git a/src/controllers/EvaluationController.ts b/src/controllers/EvaluationController.ts index 1d77bf9..8c0b90c 100644 --- a/src/controllers/EvaluationController.ts +++ b/src/controllers/EvaluationController.ts @@ -145,6 +145,8 @@ export class EvaluationController { pageSize: number; keyword?: string; status?: string[]; + sortBy?: string; + descending?: boolean; }, ) { try { @@ -156,7 +158,7 @@ export class EvaluationController { _data = x; }) .catch((x) => {}); - const [evaluation, total] = await AppDataSource.getRepository(Evaluation) + let query = await AppDataSource.getRepository(Evaluation) .createQueryBuilder("evaluation") .andWhere( _data.root != undefined && _data.root != null @@ -233,7 +235,17 @@ export class EvaluationController { ); }), ) - .orderBy("evaluation.lastUpdatedAt", "DESC") + + if (body.sortBy) { + query = query.orderBy( + `evaluation.${body.sortBy}`, + body.descending ? "DESC" : "ASC" + ); + }else{ + query = query.orderBy("evaluation.lastUpdatedAt", "DESC") + } + + const [evaluation, total] = await query .skip((body.page - 1) * body.pageSize) .take(body.pageSize) .getManyAndCount();