fix กรณีเรียกใช้ api มากกว่า 1 เมนู

This commit is contained in:
Bright 2024-09-26 11:35:44 +07:00
parent fb007073ce
commit 76e2de989e
2 changed files with 96 additions and 9 deletions

View file

@ -147,8 +147,7 @@ export class InsigniaController extends Controller {
* @param {string} id Id
*/
@Get("{id}")
async GetInsigniaById(@Path() id: string, @Request() request: RequestWithUser) {
await new permission().PermissionGet(request, "SYS_INSIGNIA_RECORD");
async GetInsigniaById(@Path() id: string) {
const insignia = await this.insigniaRepository.findOne({
relations: ["insigniaType"],
select: [
@ -187,8 +186,7 @@ export class InsigniaController extends Controller {
*
*/
@Get()
async GetInsignia(@Request() request: RequestWithUser) {
await new permission().PermissionList(request, "SYS_INSIGNIA_RECORD");
async GetInsignia() {
const insigniaAll = await this.insigniaRepository.find({
relations: ["insigniaType"],
select: [
@ -220,6 +218,65 @@ export class InsigniaController extends Controller {
return new HttpSuccess(mapInsigniaAll);
}
/**
* API ()
*
* @summary ORG_ - (ADMIN) #
*
* @param {string} path
*/
@Get("path/{path}")
async GetInsigniaPath(@Path() path: string, @Request() request: RequestWithUser) {
path = path.toLocaleUpperCase();
let getPermission: string = "";
if(path == "MANAGE") {
getPermission = "SYS_INSIGNIA_MANAGE"
}
else if(path == "RECORD") {
getPermission = "SYS_INSIGNIA_RECORD"
}
else if(path == "ALLOCATE") {
getPermission = "SYS_INSIGNIA_ALLOCATE"
}
else if(path == "BORROW") {
getPermission = "SYS_INSIGNIA_BORROW"
}
else {
getPermission = "SYS_INSIGNIA_MANAGE"
}
await new permission().PermissionList(request, getPermission);
const insigniaAll = await this.insigniaRepository.find({
relations: ["insigniaType"],
select: [
"id",
"name",
"shortName",
"createdAt",
"lastUpdatedAt",
"lastUpdateFullName",
"isActive",
"note",
"insigniaTypeId",
],
where: { isActive: true },
order: { level: "ASC" },
});
const mapInsigniaAll = insigniaAll.map((item) => ({
id: item.id,
name: item.name,
shortName: item.shortName,
insigniaTypeId: item.insigniaTypeId ?? null,
insigniaTypeName: item.insigniaType == null ? null : item.insigniaType.name, //ลำดับชั้นเครื่องราช
createdAt: item.createdAt,
lastUpdatedAt: item.lastUpdatedAt,
lastUpdateFullName: item.lastUpdateFullName,
isActive: item.isActive,
note: item.note,
}));
return new HttpSuccess(mapInsigniaAll);
}
/**
* API
*

View file

@ -161,8 +161,7 @@ export class InsigniaTypeController extends Controller {
* @param {string} id Id
*/
@Get("{id}")
async GetInsigniaTypeById(@Path() id: string, @Request() request: RequestWithUser) {
await new permission().PermissionGet(request, "SYS_INSIGNIA_RECORD");
async GetInsigniaTypeById(@Path() id: string) {
const insigniaType = await this.insigniaTypeRepository.findOne({
relations: ["insignias"],
select: ["id", "name", "createdAt", "lastUpdatedAt", "lastUpdateFullName", "isActive"],
@ -183,13 +182,44 @@ export class InsigniaTypeController extends Controller {
* @summary ORG_ - (ADMIN) #
*
*/
@Get("")
async GetInsigniaType(@Request() request: RequestWithUser) {
await new permission().PermissionList(request, "SYS_INSIGNIA_RECORD");
@Get()
async GetInsigniaType() {
const insigniaTypeAll = await this.insigniaTypeRepository.find({
select: ["id", "name", "createdAt", "lastUpdatedAt", "lastUpdateFullName", "isActive"],
order: { name: "ASC" },
});
return new HttpSuccess(insigniaTypeAll);
}
/**
* API ()
*
* @summary ORG_ - (ADMIN) #
*
* @param {string} path
*/
@Get("path/{path}")
async GetInsigniaTypePath(@Path() path: string, @Request() request: RequestWithUser) {
path = path.toLocaleUpperCase();
let getPermission: string = "";
if(path == "RECORD") {
getPermission = "SYS_INSIGNIA_RECORD"
}
else if(path == "ALLOCATE") {
getPermission = "SYS_INSIGNIA_ALLOCATE"
}
else if(path == "BORROW") {
getPermission = "SYS_INSIGNIA_BORROW"
}
else {
getPermission = "SYS_INSIGNIA_RECORD"
}
await new permission().PermissionList(request, getPermission);
const insigniaTypeAll = await this.insigniaTypeRepository.find({
select: ["id", "name", "createdAt", "lastUpdatedAt", "lastUpdateFullName", "isActive"],
where: {isActive : true},
order: { name: "ASC" },
});
return new HttpSuccess(insigniaTypeAll);
}
}