assignPermission

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-10-31 14:23:48 +07:00
parent eb554bc0e3
commit 51a6453f39

View file

@ -0,0 +1,71 @@
import { Controller, Route, Security, Tags, Request, Get, Path } from "tsoa";
import { RequestWithUser } from "../middlewares/user";
import { AppDataSource } from "../database/data-source";
import HttpSuccess from "../interfaces/http-success";
import CallAPI from "../interfaces/call-api";
import { AssignDirector } from "../entities/AssignDirector";
import { Assign } from "../entities/Assign";
@Route("api/v1/probation/permissions")
@Tags("สิทธิฟอร์มมอบหมายงาน")
@Security("bearerAuth")
export class AssignPermissionsController extends Controller {
private assignDirector = AppDataSource.getRepository(AssignDirector);
private assignRepository = AppDataSource.getRepository(Assign);
@Get("{id}")
async GetAssignPermissions(
@Request() request: RequestWithUser,
@Path() id: string
) {
const director = await this.assignDirector.find({
where: { assign_id: id },
});
const personalId = await new CallAPI()
.GetData(request, "/org/profile/keycloak")
.catch((error) => {
console.error("Error calling API:", error);
});
const role = director.find((e: any) => e.role === personalId)?.role;
const reportPersonId = await this.assignRepository.findOneBy({
reportPersonId: personalId,
});
const response = {
tab1: {
isEdit: role === "commander",
isView: true,
},
tab2: {
isEdit: role === "mentor",
isView: true,
},
tab3: {
isEdit: role === "commander",
isView: role === "commander" || role === "chairman",
},
tab4: {
isEdit: role === "commander",
isView: role === "commander" || role === "chairman",
},
tab5: {
isEdit: Boolean(reportPersonId),
isView: true,
},
tab6: {
isEdit: true,
isView: true,
},
tab7: {
isEdit: false,
isView: true,
},
};
return new HttpSuccess(response);
}
}