73 lines
2.2 KiB
TypeScript
73 lines
2.2 KiB
TypeScript
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();
|
|
|
|
const sys: any = [];
|
|
|
|
for (let index = 0; index < lists.length; index++) {
|
|
const element = await lists[index];
|
|
if (sys.findIndex((x: any) => x.sysName === element.sysName) === -1) {
|
|
sys.push({
|
|
sysName: element.sysName,
|
|
name: element.name,
|
|
});
|
|
}
|
|
}
|
|
|
|
return new HttpSuccess(sys);
|
|
}
|
|
|
|
@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"],
|
|
order: {
|
|
metaStates: {
|
|
order: "ASC",
|
|
},
|
|
},
|
|
});
|
|
return new HttpSuccess(lists);
|
|
}
|
|
}
|