From a7d13ac00b14f9fae4d893ec79e0d68885cc425b Mon Sep 17 00:00:00 2001 From: AnandaTon Date: Thu, 13 Jun 2024 14:31:37 +0700 Subject: [PATCH 1/2] Create 1718263333866-update_table_posmaster_add_role.ts --- ...3333866-update_table_posmaster_add_role.ts | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/migration/1718263333866-update_table_posmaster_add_role.ts diff --git a/src/migration/1718263333866-update_table_posmaster_add_role.ts b/src/migration/1718263333866-update_table_posmaster_add_role.ts new file mode 100644 index 00000000..f6853014 --- /dev/null +++ b/src/migration/1718263333866-update_table_posmaster_add_role.ts @@ -0,0 +1,20 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class UpdateTablePosmasterAddRole1718263333866 implements MigrationInterface { + name = 'UpdateTablePosmasterAddRole1718263333866' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`posMaster\` ADD \`authRoleId\` varchar(40) NOT NULL COMMENT 'คีย์นอก(FK)ของตาราง authRole'`); + await queryRunner.query(`ALTER TABLE \`posMaster\` ADD UNIQUE INDEX \`IDX_a059796d095e79ba5b20407859\` (\`authRoleId\`)`); + await queryRunner.query(`CREATE UNIQUE INDEX \`REL_a059796d095e79ba5b20407859\` ON \`posMaster\` (\`authRoleId\`)`); + await queryRunner.query(`ALTER TABLE \`posMaster\` ADD CONSTRAINT \`FK_a059796d095e79ba5b20407859f\` FOREIGN KEY (\`authRoleId\`) REFERENCES \`authRole\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`posMaster\` DROP FOREIGN KEY \`FK_a059796d095e79ba5b20407859f\``); + await queryRunner.query(`DROP INDEX \`REL_a059796d095e79ba5b20407859\` ON \`posMaster\``); + await queryRunner.query(`ALTER TABLE \`posMaster\` DROP INDEX \`IDX_a059796d095e79ba5b20407859\``); + await queryRunner.query(`ALTER TABLE \`posMaster\` DROP COLUMN \`authRoleId\``); + } + +} From 18510b1419009c79c6b9e7a90e1cce352b4ed450 Mon Sep 17 00:00:00 2001 From: Bright Date: Thu, 13 Jun 2024 14:41:47 +0700 Subject: [PATCH 2/2] relation --- src/controllers/AuthRoleController.ts | 10 +++++++++- src/entities/AuthRole.ts | 12 ++++++++++++ src/entities/EmployeePosMaster.ts | 11 +++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/controllers/AuthRoleController.ts b/src/controllers/AuthRoleController.ts index 94c7012c..0c83d910 100644 --- a/src/controllers/AuthRoleController.ts +++ b/src/controllers/AuthRoleController.ts @@ -17,8 +17,10 @@ import HttpError from "../interfaces/http-error"; import HttpStatus from "../interfaces/http-status"; import HttpSuccess from "../interfaces/http-success"; import HttpStatusCode from "../interfaces/http-status"; -import { AuthRole, CreateAuthRole, UpdateAuthRole } from "../entities/AuthRole"; +import { AuthRole, CreateAuthRole, UpdateAuthRole, CreateAddAuthRole } from "../entities/AuthRole"; import { AuthRoleAttr } from "../entities/AuthRoleAttr"; +import { PosMaster } from "../entities/PosMaster"; +import { EmployeePosMaster } from "../entities/EmployeePosMaster"; @Route("api/v1/org/auth/authRole") @Tags("AuthRole") @@ -72,6 +74,12 @@ export class AuthRoleController extends Controller { return new HttpSuccess(data.id); } + @Post("assign") + public async AddAuthRole(@Request() req: RequestWithUser, @Body() body: CreateAddAuthRole) { + // console pasMater = await this + return new HttpSuccess(); + } + @Patch("{roleId}") public async editAuthRole( @Request() req: RequestWithUser, diff --git a/src/entities/AuthRole.ts b/src/entities/AuthRole.ts index 1cc3cbe7..cb688bd4 100644 --- a/src/entities/AuthRole.ts +++ b/src/entities/AuthRole.ts @@ -2,6 +2,7 @@ import { Entity, Column, OneToMany, OneToOne } from "typeorm"; import { EntityBase } from "./base/Base"; import { AuthRoleAttr } from "./AuthRoleAttr"; import { PosMaster } from "./PosMaster"; +import { EmployeePosMaster } from "../entities/EmployeePosMaster"; @Entity("authRole") export class AuthRole extends EntityBase { @@ -26,6 +27,9 @@ export class AuthRole extends EntityBase { @OneToOne(() => PosMaster, (posMaster) => posMaster.authRole) posMaster: PosMaster; + + @OneToOne(() => EmployeePosMaster, (posMasters) => posMasters.authRole) + posMasters: EmployeePosMaster; } export class CreateAuthRole { @@ -37,3 +41,11 @@ export class CreateAuthRole { } export type UpdateAuthRole = Partial; + +export class CreateAddAuthRole { + @Column() + authRoleId: string; + + @Column() + posMasterId: string; +} \ No newline at end of file diff --git a/src/entities/EmployeePosMaster.ts b/src/entities/EmployeePosMaster.ts index 6c47e067..c1c6e0a8 100644 --- a/src/entities/EmployeePosMaster.ts +++ b/src/entities/EmployeePosMaster.ts @@ -10,6 +10,7 @@ import { OrgChild3 } from "./OrgChild3"; import { OrgChild4 } from "./OrgChild4"; import { Profile } from "./Profile"; import { ProfileEmployee } from "./ProfileEmployee"; +import { AuthRole } from "./AuthRole"; enum EmployeePosMasterLine { MAIN = "MAIN", @@ -171,6 +172,16 @@ export class EmployeePosMaster extends EntityBase { }) orgRevisionId: string; //fk + @Column({ + length: 40, + comment: "คีย์นอก(FK)ของตาราง authRole", + }) + authRoleId: string; + + @OneToOne(() => AuthRole, (authRole) => authRole.posMasters) + @JoinColumn({ name: "authRoleId" }) + authRole: AuthRole; + @ManyToOne(() => OrgRevision, (orgRevision) => orgRevision.posMasters) @JoinColumn({ name: "orgRevisionId" }) orgRevision: OrgRevision;