diff --git a/src/controllers/StrategyController.ts b/src/controllers/StrategyController.ts index 282dea7..f0d781f 100644 --- a/src/controllers/StrategyController.ts +++ b/src/controllers/StrategyController.ts @@ -20,9 +20,59 @@ export class StrategyController extends Controller { private strategy3Repo = AppDataSource.getRepository(StrategyChild3); private strategy4Repo = AppDataSource.getRepository(StrategyChild4); private strategy5Repo = AppDataSource.getRepository(StrategyChild5); + @Get("edit") + public async listStrategyChild1Edit(@Request() request: RequestWithUser) { + let _data = await new permission().PermissionList(request, "SYS_EVA_STRATIGIC"); + const listStrategyChild1 = await this.strategy1Repo.find({ + relations: [ + "strategyChild2s", + "strategyChild2s.strategyChild3s", + "strategyChild2s.strategyChild3s.strategyChild4s", + "strategyChild2s.strategyChild3s.strategyChild4s.strategyChild5s", + ], + order: { createdAt: "ASC" }, + }); + + // if (!listStrategyChild1 || listStrategyChild1.length === 0) { + // throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลยุทธศาสตร์"); + // } + + const formattedData = listStrategyChild1.map((item) => ({ + id: item.id, + level: 1, + name: item.strategyChild1Name, + children: item.strategyChild2s.map((child2) => ({ + id: child2.id, + level: 2, + name: child2.strategyChild2Name, + children: child2.strategyChild3s + ? child2.strategyChild3s.map((child3) => ({ + id: child3.id, + level: 3, + name: child3.strategyChild3Name, + children: child3.strategyChild4s + ? child3.strategyChild4s.map((child4) => ({ + id: child4.id, + level: 4, + name: child4.strategyChild4Name, + children: child4.strategyChild5s + ? child4.strategyChild5s.map((child5) => ({ + id: child5.id, + level: 5, + name: child5.strategyChild5Name, + })) + : [], + })) + : [], + })) + : [], + })), + })); + + return new HttpSuccess(formattedData); + } @Get() public async listStrategyChild1(@Request() request: RequestWithUser) { - let _data = await new permission().PermissionList(request, "SYS_EVA_STRATIGIC"); const listStrategyChild1 = await this.strategy1Repo.find({ relations: [ "strategyChild2s",