From 308f5cd2c98cba50d433a258704207483a35f24e Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Tue, 29 Oct 2024 21:05:59 +0700 Subject: [PATCH] add view workflow --- src/controllers/ViewWorkFlowController.ts | 56 +++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/controllers/ViewWorkFlowController.ts diff --git a/src/controllers/ViewWorkFlowController.ts b/src/controllers/ViewWorkFlowController.ts new file mode 100644 index 00000000..7ad87cad --- /dev/null +++ b/src/controllers/ViewWorkFlowController.ts @@ -0,0 +1,56 @@ +import { + Body, + Controller, + Delete, + Get, + Patch, + Path, + Post, + Query, + Request, + Route, + Security, + Tags, +} from "tsoa"; +import { AppDataSource } from "../database/data-source"; +import HttpSuccess from "../interfaces/http-success"; +import HttpStatus from "../interfaces/http-status"; +import HttpError from "../interfaces/http-error"; +import { RequestWithUser } from "../middlewares/user"; +import { MetaWorkflow } from "../entities/MetaWorkflow"; +import { MetaState } from "../entities/MetaState"; +import { MetaStateOperator } from "../entities/MetaStateOperator"; +@Route("api/v1/org/view-workflow") +@Tags("View Workflow") +@Security("bearerAuth") +export class ViewWorkFlowController extends Controller { + private metaWorkflowRepository = AppDataSource.getRepository(MetaWorkflow); + private metaStateRepository = AppDataSource.getRepository(MetaState); + private metaStateOperatorRepository = AppDataSource.getRepository(MetaStateOperator); + + @Get("lists") + public async getSystems(@Request() req: RequestWithUser) { + const lists = await this.metaWorkflowRepository + .createQueryBuilder("metaWorkflow") + .select(["metaWorkflow.name", "metaWorkflow.sysName"]) + .groupBy("metaWorkflow.name") + .getMany(); + + return new HttpSuccess(lists); + } + + @Get("") + public async getLists( + @Request() req: RequestWithUser, + @Query("sysName") sysName: string, + @Query("posTypeName") posTypeName: string, + @Query("posLevelName") posLevelName: string, + ) { + const lists = await this.metaWorkflowRepository.find({ + select: ["id", "name", "sysName", "posTypeName", "posLevelName"], + where: { sysName: sysName, posTypeName: posTypeName, posLevelName: posLevelName }, + relations: ["metaStates", "metaStates.metaStateOperators"], + }); + return new HttpSuccess(lists); + } +}