hrms-api-org/src/controllers/ViewWorkFlowController.ts

57 lines
1.8 KiB
TypeScript
Raw Normal View History

2024-10-29 21:05:59 +07:00
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);
}
}