log admin , master (ยกเว้น menu ข้อมูลปฎิทินวันหยุด)
This commit is contained in:
parent
e59f4f13e2
commit
f0e5a83d02
11 changed files with 122 additions and 63 deletions
|
|
@ -26,7 +26,7 @@ async function main() {
|
|||
);
|
||||
app.use(express.json());
|
||||
app.use(express.urlencoded({ extended: true }));
|
||||
// app.use(logMiddleware);
|
||||
app.use(logMiddleware);
|
||||
app.use("/", express.static("static"));
|
||||
app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocument));
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import { AuthRoleAttr } from "../entities/AuthRoleAttr";
|
|||
import { PosMaster } from "../entities/PosMaster";
|
||||
import { EmployeePosMaster } from "../entities/EmployeePosMaster";
|
||||
import { promisify } from "util";
|
||||
import { setLogDataDiff } from "../interfaces/utils";
|
||||
|
||||
const REDIS_HOST = process.env.REDIS_HOST;
|
||||
const REDIS_PORT = process.env.REDIS_PORT;
|
||||
|
|
@ -74,11 +75,11 @@ export class AuthRoleController extends Controller {
|
|||
createdAt: new Date(),
|
||||
lastUpdatedAt: new Date(),
|
||||
};
|
||||
|
||||
const before = null;
|
||||
Object.assign(data, { ...body, ...meta });
|
||||
|
||||
await this.authRoleRepo.save(data);
|
||||
|
||||
await this.authRoleRepo.save(data, { data: req });
|
||||
setLogDataDiff(req, { before, after: data });
|
||||
return new HttpSuccess(data.id);
|
||||
}
|
||||
|
||||
|
|
@ -96,7 +97,7 @@ export class AuthRoleController extends Controller {
|
|||
getDetail = await this.authRoleRepo.findOneBy({ id: body.authRoleId });
|
||||
if (!getDetail) throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลสิทธิ์");
|
||||
}
|
||||
|
||||
const before = null;
|
||||
const posMaster = await this.posMasterRepository.findOneBy({ id: body.posMasterId });
|
||||
if (!posMaster) throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลตำแหน่ง");
|
||||
|
||||
|
|
@ -104,7 +105,8 @@ export class AuthRoleController extends Controller {
|
|||
posMaster.lastUpdateFullName = req.user.name;
|
||||
posMaster.lastUpdatedAt = new Date();
|
||||
posMaster.authRoleId = body.authRoleId;
|
||||
await this.posMasterRepository.save(posMaster);
|
||||
await this.posMasterRepository.save(posMaster, {data: req});
|
||||
setLogDataDiff(req, { before, after: posMaster });
|
||||
|
||||
// เช็คว่าถ้ามีค่า current_holderId ให้ลบ key สิทธิ์ใน redis
|
||||
if (posMaster.current_holderId) {
|
||||
|
|
@ -139,7 +141,7 @@ export class AuthRoleController extends Controller {
|
|||
getDetail = await this.authRoleRepo.findOneBy({ id: body.authRoleId });
|
||||
if (!getDetail) throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลสิทธิ์");
|
||||
}
|
||||
|
||||
const before = null;
|
||||
const posMaster = await this.employeePosMasterRepository.findOneBy({ id: body.posMasterId });
|
||||
if (!posMaster) throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลตำแหน่ง");
|
||||
|
||||
|
|
@ -147,7 +149,8 @@ export class AuthRoleController extends Controller {
|
|||
posMaster.lastUpdateFullName = req.user.name;
|
||||
posMaster.lastUpdatedAt = new Date();
|
||||
posMaster.authRoleId = body.authRoleId;
|
||||
await this.employeePosMasterRepository.save(posMaster);
|
||||
await this.employeePosMasterRepository.save(posMaster, {data: req});
|
||||
setLogDataDiff(req, { before, after: posMaster });
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
|
|
@ -226,7 +229,7 @@ export class AuthRoleController extends Controller {
|
|||
// ...newAttrs.map((attr) => this.authRoleAttrRepo.save(attr)),
|
||||
// ]);
|
||||
|
||||
await this.authRoleAttrRepo.remove(roleAttrData);
|
||||
await this.authRoleAttrRepo.remove(roleAttrData, {data: req});
|
||||
|
||||
const newAttrs = body.authRoleAttrs.map((attr) => {
|
||||
const newAttr = new AuthRoleAttr();
|
||||
|
|
@ -241,9 +244,10 @@ export class AuthRoleController extends Controller {
|
|||
});
|
||||
return newAttr;
|
||||
});
|
||||
|
||||
const before = structuredClone(record);
|
||||
await Promise.all([
|
||||
this.authRoleRepo.save(record),
|
||||
this.authRoleRepo.save(record, {data: req}),
|
||||
setLogDataDiff(req, { before, after: record }),
|
||||
...newAttrs.map((attr) => this.authRoleAttrRepo.save(attr)),
|
||||
]);
|
||||
|
||||
|
|
@ -260,16 +264,17 @@ export class AuthRoleController extends Controller {
|
|||
}
|
||||
|
||||
@Delete("{roleId}")
|
||||
public async deleteRole(@Path() roleId: string) {
|
||||
public async deleteRole(@Path() roleId: string, @Request() req: RequestWithUser) {
|
||||
let result: any;
|
||||
try {
|
||||
result = await this.authRoleRepo.delete({ id: roleId });
|
||||
result = await this.authRoleRepo.findOneBy({ id: roleId });
|
||||
if (!result) {
|
||||
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูล");
|
||||
}
|
||||
await this.authRoleRepo.remove(result, {data: req});
|
||||
} catch {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่สามารถลบข้อมูลได้");
|
||||
}
|
||||
if (result.affected == undefined || result.affected <= 0)
|
||||
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูล");
|
||||
|
||||
return new HttpSuccess();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ import {
|
|||
} from "../entities/EmployeePosType";
|
||||
import { EmployeePosLevel } from "../entities/EmployeePosLevel";
|
||||
import { EmployeePosDict } from "../entities/EmployeePosDict";
|
||||
import { RequestWithUser } from "../middlewares/user";
|
||||
import { setLogDataDiff } from "../interfaces/utils";
|
||||
|
||||
@Route("api/v1/org/employee/pos/type")
|
||||
@Tags("EmployeePosType")
|
||||
|
|
@ -48,7 +50,7 @@ export class EmployeePosTypeController extends Controller {
|
|||
async CreateEmpType(
|
||||
@Body()
|
||||
requestBody: CreateEmployeePosType,
|
||||
@Request() request: { user: Record<string, any> },
|
||||
@Request() request: RequestWithUser,
|
||||
) {
|
||||
const EmpPosType = Object.assign(new EmployeePosType(), requestBody);
|
||||
|
||||
|
|
@ -72,13 +74,15 @@ export class EmployeePosTypeController extends Controller {
|
|||
"ระดับของกลุ่มงานลูกจ้างประจำนี้มีอยู่ในระบบแล้ว",
|
||||
);
|
||||
}
|
||||
const before = null;
|
||||
EmpPosType.createdUserId = request.user.sub;
|
||||
EmpPosType.createdFullName = request.user.name;
|
||||
EmpPosType.lastUpdateUserId = request.user.sub;
|
||||
EmpPosType.lastUpdateFullName = request.user.name;
|
||||
EmpPosType.createdAt = new Date();
|
||||
EmpPosType.lastUpdatedAt = new Date();
|
||||
await this.employeePosTypeRepository.save(EmpPosType);
|
||||
await this.employeePosTypeRepository.save(EmpPosType, {data: request});
|
||||
setLogDataDiff(request, {before, after: EmpPosType});
|
||||
return new HttpSuccess(EmpPosType.id);
|
||||
}
|
||||
|
||||
|
|
@ -93,7 +97,7 @@ export class EmployeePosTypeController extends Controller {
|
|||
async EditEmpType(
|
||||
@Path() id: string,
|
||||
@Body() requestBody: UpdateEmployeePosType,
|
||||
@Request() request: { user: Record<string, any> },
|
||||
@Request() request: RequestWithUser,
|
||||
) {
|
||||
const EmpPosType = await this.employeePosTypeRepository.findOne({ where: { id } });
|
||||
if (!EmpPosType) {
|
||||
|
|
@ -120,11 +124,13 @@ export class EmployeePosTypeController extends Controller {
|
|||
"ระดับของกลุ่มงานลูกจ้างประจำนี้มีอยู่ในระบบแล้ว",
|
||||
);
|
||||
}
|
||||
const before = structuredClone(EmpPosType);
|
||||
EmpPosType.lastUpdateUserId = request.user.sub;
|
||||
EmpPosType.lastUpdateFullName = request.user.name;
|
||||
EmpPosType.lastUpdatedAt = new Date();
|
||||
this.employeePosTypeRepository.merge(EmpPosType, requestBody);
|
||||
await this.employeePosTypeRepository.save(EmpPosType);
|
||||
await this.employeePosTypeRepository.save(EmpPosType, {data: request});
|
||||
setLogDataDiff(request, {before, after: EmpPosType});
|
||||
return new HttpSuccess(EmpPosType.id);
|
||||
}
|
||||
|
||||
|
|
@ -136,10 +142,13 @@ export class EmployeePosTypeController extends Controller {
|
|||
* @param {string} id Id กลุ่มงานลูกจ้างประจำ
|
||||
*/
|
||||
@Delete("{id}")
|
||||
async deleteType(@Path() id: string) {
|
||||
async deleteType(@Path() id: string, @Request() request: RequestWithUser) {
|
||||
let result: any;
|
||||
try {
|
||||
result = await this.employeePosTypeRepository.delete({ id: id });
|
||||
result = await this.employeePosTypeRepository.findOne({
|
||||
where: { id: id },
|
||||
})
|
||||
await this.employeePosTypeRepository.remove(result, {data: request});
|
||||
} catch {
|
||||
throw new HttpError(
|
||||
HttpStatusCode.NOT_FOUND,
|
||||
|
|
|
|||
|
|
@ -106,14 +106,15 @@ export class EmployeePositionController extends Controller {
|
|||
if (rowRepeated) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ข้อมูล Row นี้มีอยู่ในระบบแล้ว");
|
||||
}
|
||||
|
||||
const before = null;
|
||||
empPosDict.createdUserId = request.user.sub;
|
||||
empPosDict.createdFullName = request.user.name;
|
||||
empPosDict.createdAt = new Date();
|
||||
empPosDict.lastUpdateUserId = request.user.sub;
|
||||
empPosDict.lastUpdateFullName = request.user.name;
|
||||
empPosDict.lastUpdatedAt = new Date();
|
||||
await this.employeePosDictRepository.save(empPosDict);
|
||||
await this.employeePosDictRepository.save(empPosDict, { data: request });
|
||||
setLogDataDiff(request, { before, after: empPosDict });
|
||||
return new HttpSuccess(empPosDict.id);
|
||||
}
|
||||
|
||||
|
|
@ -163,12 +164,13 @@ export class EmployeePositionController extends Controller {
|
|||
if (rowRepeated) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ข้อมูล Row นี้มีอยู่ในระบบแล้ว");
|
||||
}
|
||||
|
||||
const before = structuredClone(empPosDict);
|
||||
empPosDict.lastUpdateUserId = request.user.sub;
|
||||
empPosDict.lastUpdateFullName = request.user.name;
|
||||
empPosDict.lastUpdatedAt = new Date();
|
||||
this.employeePosDictRepository.merge(empPosDict, requestBody);
|
||||
await this.employeePosDictRepository.save(empPosDict);
|
||||
await this.employeePosDictRepository.save(empPosDict,{data: request});
|
||||
setLogDataDiff( request, { before, after: empPosDict });
|
||||
return new HttpSuccess(empPosDict.id);
|
||||
}
|
||||
|
||||
|
|
@ -186,7 +188,7 @@ export class EmployeePositionController extends Controller {
|
|||
if (!delEmpPosDict) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลตำแหน่งลูกจ้างประจำนี้");
|
||||
}
|
||||
await this.employeePosDictRepository.remove(delEmpPosDict);
|
||||
await this.employeePosDictRepository.remove(delEmpPosDict, { data: request });
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import { InsigniaType, CreateInsigniaType, UpdateInsigniaType } from "../entitie
|
|||
import { Insignia } from "../entities/Insignia";
|
||||
import permission from "../interfaces/permission";
|
||||
import { RequestWithUser } from "../middlewares/user";
|
||||
import { setLogDataDiff } from "../interfaces/utils";
|
||||
@Route("api/v1/org/insignia/insignia-type")
|
||||
@Tags("InsigniaType")
|
||||
@Security("bearerAuth")
|
||||
|
|
@ -46,7 +47,7 @@ export class InsigniaTypeController extends Controller {
|
|||
@Post("")
|
||||
async CreateInsigniaType(
|
||||
@Body() requestBody: CreateInsigniaType,
|
||||
@Request() request: { user: Record<string, any> },
|
||||
@Request() request: RequestWithUser,
|
||||
) {
|
||||
const insigniaType = Object.assign(new InsigniaType(), requestBody);
|
||||
if (!insigniaType) {
|
||||
|
|
@ -62,14 +63,15 @@ export class InsigniaTypeController extends Controller {
|
|||
if (rowRepeated) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ข้อมูล Row นี้มีอยู่ในระบบแล้ว");
|
||||
}
|
||||
|
||||
const before = null;
|
||||
insigniaType.createdUserId = request.user.sub;
|
||||
insigniaType.createdFullName = request.user.name;
|
||||
insigniaType.lastUpdateUserId = request.user.sub;
|
||||
insigniaType.lastUpdateFullName = request.user.name;
|
||||
insigniaType.createdAt = new Date();
|
||||
insigniaType.lastUpdatedAt = new Date();
|
||||
await this.insigniaTypeRepository.save(insigniaType);
|
||||
await this.insigniaTypeRepository.save(insigniaType, { data: request });
|
||||
setLogDataDiff(request, { before, after: insigniaType });
|
||||
return new HttpSuccess(insigniaType.id);
|
||||
}
|
||||
|
||||
|
|
@ -84,7 +86,7 @@ export class InsigniaTypeController extends Controller {
|
|||
async UpdateInsigniaType(
|
||||
@Path() id: string,
|
||||
@Body() requestBody: UpdateInsigniaType,
|
||||
@Request() request: { user: Record<string, any> },
|
||||
@Request() request: RequestWithUser,
|
||||
) {
|
||||
const insigniaType = await this.insigniaTypeRepository.findOne({
|
||||
where: { id: id },
|
||||
|
|
@ -102,12 +104,13 @@ export class InsigniaTypeController extends Controller {
|
|||
if (rowRepeated) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ข้อมูล Row นี้มีอยู่ในระบบแล้ว");
|
||||
}
|
||||
|
||||
const before = structuredClone(insigniaType);
|
||||
insigniaType.lastUpdateUserId = request.user.sub;
|
||||
insigniaType.lastUpdateFullName = request.user.name;
|
||||
insigniaType.lastUpdatedAt = new Date();
|
||||
this.insigniaTypeRepository.merge(insigniaType, requestBody);
|
||||
await this.insigniaTypeRepository.save(insigniaType);
|
||||
await this.insigniaTypeRepository.save(insigniaType, { data: request });
|
||||
setLogDataDiff( request, { before, after: insigniaType });
|
||||
return new HttpSuccess(insigniaType.id);
|
||||
}
|
||||
|
||||
|
|
@ -119,7 +122,7 @@ export class InsigniaTypeController extends Controller {
|
|||
* @param {string} id Id ลำดับชั้นเครื่องราชอิสริยาภรณ์
|
||||
*/
|
||||
@Delete("{id}")
|
||||
async delete(@Path() id: string) {
|
||||
async delete(@Path() id: string, @Request() request: RequestWithUser) {
|
||||
const delInsigniaType = await this.insigniaTypeRepository.findOne({ where: { id } });
|
||||
if (!delInsigniaType) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลลำดับชั้นเครื่องราชอิสริยาภรณ์นี้");
|
||||
|
|
@ -133,7 +136,7 @@ export class InsigniaTypeController extends Controller {
|
|||
"ไม่สามารถลบได้ เนื่องจากพบข้อมูลที่ตารางเครื่องราชอิสริยาภรณ์",
|
||||
);
|
||||
}
|
||||
await this.insigniaTypeRepository.remove(delInsigniaType);
|
||||
await this.insigniaTypeRepository.remove(delInsigniaType, {data: request});
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import permission from "../interfaces/permission";
|
|||
import { PosMaster } from "../entities/PosMaster";
|
||||
import { EmployeePosMaster } from "../entities/EmployeePosMaster";
|
||||
import { ProfileEmployee } from "../entities/ProfileEmployee";
|
||||
import { setLogDataDiff } from "../interfaces/utils";
|
||||
|
||||
@Route("api/v1/org/permission-org")
|
||||
@Tags("PermissionOrg")
|
||||
|
|
@ -470,7 +471,7 @@ export class PermissionOrgController extends Controller {
|
|||
if (checkDup) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "มีสิทธิ์นี้อยู่ในระบบแล้ว");
|
||||
}
|
||||
|
||||
const before = null;
|
||||
const _permissionOrg = new PermissionOrg();
|
||||
_permissionOrg.orgRootTree = orgRoot;
|
||||
_permissionOrg.profileTree = profile;
|
||||
|
|
@ -480,7 +481,8 @@ export class PermissionOrgController extends Controller {
|
|||
_permissionOrg.lastUpdateFullName = request.user.name;
|
||||
_permissionOrg.createdAt = new Date();
|
||||
_permissionOrg.lastUpdatedAt = new Date();
|
||||
await this.permissionOrgRepository.save(_permissionOrg);
|
||||
await this.permissionOrgRepository.save(_permissionOrg, {data:request});
|
||||
setLogDataDiff(request, { before, after: _permissionOrg });
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
|
|
@ -492,7 +494,7 @@ export class PermissionOrgController extends Controller {
|
|||
* @param {string} id Id สิทธิ์โครงสร้าง
|
||||
*/
|
||||
@Delete("{id}")
|
||||
async Delete(@Request() request: RequestWithUser, @Path() id: string) {
|
||||
async Delete(@Request() req: RequestWithUser, @Path() id: string) {
|
||||
// if (!request.user.role.includes("SUPER_ADMIN")) {
|
||||
// throw new HttpError(HttpStatus.FORBIDDEN, "ไม่มีสิทธิ์ใช้งานระบบนี้");
|
||||
// }
|
||||
|
|
@ -518,9 +520,11 @@ export class PermissionOrgController extends Controller {
|
|||
if (!_delPermissionOrg) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบสิทธิ์นี้อยู่ในระบบแล้ว");
|
||||
}
|
||||
await this.permissionOrgRepository.delete(_delPermissionOrg.id);
|
||||
|
||||
await this.permissionOrgRepository.remove(_delPermissionOrg, {data:req});
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
public async listAuthSysOrgFuncByRevisionId(
|
||||
request: RequestWithUser,
|
||||
system: string,
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@ import HttpStatusCode from "../interfaces/http-status";
|
|||
import HttpError from "../interfaces/http-error";
|
||||
import { CreatePosExecutive, PosExecutive } from "../entities/PosExecutive";
|
||||
import { Position } from "../entities/Position";
|
||||
import { RequestWithUser } from "../middlewares/user";
|
||||
import { after } from "node:test";
|
||||
import { setLogDataDiff } from "../interfaces/utils";
|
||||
@Route("api/v1/org/pos/executive")
|
||||
@Tags("PosExecutive")
|
||||
@Security("bearerAuth")
|
||||
|
|
@ -43,7 +46,7 @@ export class PosExecutiveController extends Controller {
|
|||
async createPosExecutive(
|
||||
@Body()
|
||||
requestBody: CreatePosExecutive,
|
||||
@Request() request: { user: Record<string, any> },
|
||||
@Request() request: RequestWithUser,
|
||||
) {
|
||||
const checkName = await this.posExecutiveRepository.findOne({
|
||||
where: { posExecutiveName: requestBody.posExecutiveName },
|
||||
|
|
@ -75,13 +78,15 @@ export class PosExecutiveController extends Controller {
|
|||
if (_checkPriority) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ลำดับนี้มีอยู่ในระบบแล้ว");
|
||||
}
|
||||
const before = null;
|
||||
posExecutive.createdUserId = request.user.sub;
|
||||
posExecutive.createdFullName = request.user.name;
|
||||
posExecutive.lastUpdateUserId = request.user.sub;
|
||||
posExecutive.lastUpdateFullName = request.user.name;
|
||||
posExecutive.createdAt = new Date();
|
||||
posExecutive.lastUpdatedAt = new Date();
|
||||
await this.posExecutiveRepository.save(posExecutive);
|
||||
await this.posExecutiveRepository.save(posExecutive, {data: request});
|
||||
setLogDataDiff(request, {before, after: posExecutive});
|
||||
return new HttpSuccess(posExecutive.id);
|
||||
}
|
||||
|
||||
|
|
@ -97,7 +102,7 @@ export class PosExecutiveController extends Controller {
|
|||
@Path() id: string,
|
||||
@Body()
|
||||
requestBody: CreatePosExecutive,
|
||||
@Request() request: { user: Record<string, any> },
|
||||
@Request() request: RequestWithUser,
|
||||
) {
|
||||
const posExecutive = await this.posExecutiveRepository.findOne({ where: { id: id } });
|
||||
if (!posExecutive) {
|
||||
|
|
@ -136,13 +141,14 @@ export class PosExecutiveController extends Controller {
|
|||
if (_checkPriority) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ลำดับนี้มีอยู่ในระบบแล้ว");
|
||||
}
|
||||
|
||||
const before = structuredClone(posExecutive);
|
||||
posExecutive.posExecutiveName = requestBody.posExecutiveName;
|
||||
posExecutive.lastUpdateUserId = request.user.sub;
|
||||
posExecutive.lastUpdateFullName = request.user.name;
|
||||
posExecutive.lastUpdatedAt = new Date();
|
||||
// this.posExecutiveRepository.merge(posExecutive, requestBody);
|
||||
await this.posExecutiveRepository.save(posExecutive);
|
||||
await this.posExecutiveRepository.save(posExecutive, {data: request});
|
||||
setLogDataDiff(request, {before, after: posExecutive});
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ import { PosType, CreatePosType, UpdatePosType } from "../entities/PosType";
|
|||
import { PosLevel } from "../entities/PosLevel";
|
||||
import HttpError from "../interfaces/http-error";
|
||||
import { Not } from "typeorm";
|
||||
import { setLogDataDiff } from "../interfaces/utils";
|
||||
import { RequestWithUser } from "../middlewares/user";
|
||||
|
||||
@Route("api/v1/org/pos/type")
|
||||
@Tags("PosType")
|
||||
|
|
@ -50,7 +52,7 @@ export class PosTypeController extends Controller {
|
|||
async createType(
|
||||
@Body()
|
||||
requestBody: CreatePosType,
|
||||
@Request() request: { user: Record<string, any> },
|
||||
@Request() request: RequestWithUser,
|
||||
) {
|
||||
const posType = Object.assign(new PosType(), requestBody);
|
||||
if (!posType) {
|
||||
|
|
@ -64,13 +66,15 @@ export class PosTypeController extends Controller {
|
|||
if (chkPosTypeName) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ชื่อประเภทตำแหน่งนี้มีอยู่ในระบบแล้ว");
|
||||
}
|
||||
const before = null;
|
||||
posType.createdUserId = request.user.sub;
|
||||
posType.createdFullName = request.user.name;
|
||||
posType.lastUpdateUserId = request.user.sub;
|
||||
posType.lastUpdateFullName = request.user.name;
|
||||
posType.createdAt = new Date();
|
||||
posType.lastUpdatedAt = new Date();
|
||||
await this.posTypeRepository.save(posType);
|
||||
await this.posTypeRepository.save(posType, {data: request});
|
||||
setLogDataDiff(request, {before , after: posType});
|
||||
return new HttpSuccess(posType);
|
||||
}
|
||||
|
||||
|
|
@ -89,7 +93,7 @@ export class PosTypeController extends Controller {
|
|||
async editType(
|
||||
@Path() id: string,
|
||||
@Body() requestBody: UpdatePosType,
|
||||
@Request() request: { user: Record<string, any> },
|
||||
@Request() request: RequestWithUser,
|
||||
) {
|
||||
const posType = await this.posTypeRepository.findOne({ where: { id } });
|
||||
if (!posType) {
|
||||
|
|
@ -104,11 +108,13 @@ export class PosTypeController extends Controller {
|
|||
if (chkPosTypeName) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ชื่อประเภทตำแหน่งนี้มีอยู่ในระบบแล้ว");
|
||||
}
|
||||
const before = structuredClone(posType);
|
||||
posType.lastUpdateUserId = request.user.sub;
|
||||
posType.lastUpdateFullName = request.user.name;
|
||||
posType.lastUpdatedAt = new Date();
|
||||
this.posTypeRepository.merge(posType, requestBody);
|
||||
await this.posTypeRepository.save(posType);
|
||||
await this.posTypeRepository.save(posType, {data: request});
|
||||
setLogDataDiff(request,{ before, after:posType });
|
||||
return new HttpSuccess(posType.id);
|
||||
}
|
||||
|
||||
|
|
@ -123,16 +129,20 @@ export class PosTypeController extends Controller {
|
|||
async deleteType(@Path() id: string) {
|
||||
let result: any;
|
||||
try {
|
||||
result = await this.posTypeRepository.delete({ id: id });
|
||||
result = await this.posTypeRepository.findOne({ where: { id } });
|
||||
if(!result){
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
||||
}
|
||||
await this.posTypeRepository.remove(result, {data: result});
|
||||
} catch {
|
||||
throw new HttpError(
|
||||
HttpStatusCode.NOT_FOUND,
|
||||
"ไม่สามารถลบได้เนื่องจากมีการใช้งานประเภทตำแหน่งนี้อยู่",
|
||||
);
|
||||
}
|
||||
if (result.affected == undefined || result.affected <= 0) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล");
|
||||
}
|
||||
// if (result.affected == undefined || result.affected <= 0) {
|
||||
// throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล");
|
||||
// }
|
||||
// const delPosType = await this.posTypeRepository.findOne({ where: { id } });
|
||||
// if (!delPosType) {
|
||||
// throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
||||
|
|
|
|||
|
|
@ -144,14 +144,15 @@ export class PositionController extends Controller {
|
|||
if (rowRepeated) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ข้อมูล Row นี้มีอยู่ในระบบแล้ว");
|
||||
}
|
||||
|
||||
const before = null;
|
||||
posDict.createdUserId = request.user.sub;
|
||||
posDict.createdFullName = request.user.name;
|
||||
posDict.lastUpdateUserId = request.user.sub;
|
||||
posDict.lastUpdateFullName = request.user.name;
|
||||
posDict.createdAt = new Date();
|
||||
posDict.lastUpdatedAt = new Date();
|
||||
await this.posDictRepository.save(posDict);
|
||||
await this.posDictRepository.save(posDict, {data: request});
|
||||
setLogDataDiff(request, { before, after: posDict });
|
||||
return new HttpSuccess(posDict.id);
|
||||
}
|
||||
|
||||
|
|
@ -218,7 +219,13 @@ export class PositionController extends Controller {
|
|||
if (!posMaster) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลตำแหน่ง");
|
||||
}
|
||||
await this.posMasterAssignRepo.delete({ posMasterId: posMaster.id });
|
||||
const posMasterAssigns = await this.posMasterAssignRepo.find({
|
||||
where: { posMasterId: posMaster.id },
|
||||
});
|
||||
if (posMasterAssigns.length > 0) {
|
||||
await this.posMasterAssignRepo.remove(posMasterAssigns, {data:request});
|
||||
}
|
||||
// await this.posMasterAssignRepo.delete({ posMasterId: posMaster.id });
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
|
|
@ -270,6 +277,7 @@ export class PositionController extends Controller {
|
|||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล PosLevelId");
|
||||
}
|
||||
|
||||
const before = null;
|
||||
let posExecutive: any = new PosExecutive();
|
||||
if (requestBody.posExecutive != null && requestBody.posExecutive != "") {
|
||||
const checkName = await this.posExecutiveRepository.findOne({
|
||||
|
|
@ -299,7 +307,8 @@ export class PositionController extends Controller {
|
|||
posExecutive.lastUpdateFullName = request.user.name;
|
||||
posExecutive.createdAt = new Date();
|
||||
posExecutive.lastUpdatedAt = new Date();
|
||||
await this.posExecutiveRepository.save(posExecutive);
|
||||
await this.posExecutiveRepository.save(posExecutive, {data:request});
|
||||
setLogDataDiff(request, {before, after: posExecutive});
|
||||
}
|
||||
|
||||
const rowRepeated = await this.posDictRepository.findOne({
|
||||
|
|
@ -325,7 +334,8 @@ export class PositionController extends Controller {
|
|||
posDict.lastUpdateFullName = request.user.name;
|
||||
posDict.createdAt = new Date();
|
||||
posDict.lastUpdatedAt = new Date();
|
||||
await this.posDictRepository.save(posDict);
|
||||
await this.posDictRepository.save(posDict, {data:request});
|
||||
setLogDataDiff(request, {before, after: posDict});
|
||||
return new HttpSuccess(posDict.id);
|
||||
}
|
||||
|
||||
|
|
@ -407,6 +417,7 @@ export class PositionController extends Controller {
|
|||
if (rowRepeated) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ข้อมูล Row นี้มีอยู่ในระบบแล้ว");
|
||||
}
|
||||
const before = structuredClone(posDict);
|
||||
Object.assign(posDict, requestBody);
|
||||
posDict.lastUpdateUserId = request.user.sub;
|
||||
posDict.lastUpdateFullName = request.user.name;
|
||||
|
|
@ -422,7 +433,8 @@ export class PositionController extends Controller {
|
|||
posDict.posDictArea = requestBody.posDictArea ? requestBody.posDictArea : "";
|
||||
posDict.isSpecial = requestBody.isSpecial;
|
||||
// this.posDictRepository.merge(posDict, requestBody);
|
||||
await this.posDictRepository.save(posDict);
|
||||
await this.posDictRepository.save(posDict, {data:request});
|
||||
setLogDataDiff(request, {before, after: posDict});
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
|
|
@ -440,7 +452,7 @@ export class PositionController extends Controller {
|
|||
if (!delPosDict) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลตำแหน่งในสายงานนี้");
|
||||
}
|
||||
await this.posDictRepository.remove(delPosDict);
|
||||
await this.posDictRepository.remove(delPosDict, {data: request});
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -401,7 +401,7 @@ export class KeycloakController extends Controller {
|
|||
return result;
|
||||
}
|
||||
|
||||
@Put("user/{userId}/enableStatus/{status}")
|
||||
@Put("user/{userId}/enableStatus/{status}") //#log?
|
||||
async changeEnableStatus(@Path() userId: string, @Path() status: boolean) {
|
||||
const result = await enableStatus(userId, status);
|
||||
if (!result) {
|
||||
|
|
|
|||
|
|
@ -39,13 +39,21 @@ async function logMiddleware(req: Request, res: Response, next: NextFunction) {
|
|||
res.on("finish", () => {
|
||||
if (!req.url.startsWith("/api/")) return;
|
||||
let system = "organization";
|
||||
if (req.url.startsWith("/api/v1/org/metadata/")) system = "metadata";
|
||||
if (req.url.startsWith("/api/v1/org/metadata/")) system = "master";
|
||||
if (req.url.startsWith("/api/v1/org/pos/position/")) system = "master";
|
||||
if (req.url.startsWith("/api/v1/org/pos/type/")) system = "master";
|
||||
if (req.url.startsWith("/api/v1/org/employee/pos/position/")) system = "master";
|
||||
if (req.url.startsWith("api/v1/org/employee/pos/type/")) system = "master";
|
||||
if (req.url.startsWith("/api/v1/org/auth/authRoleAttr/")) system = "admin";
|
||||
if (req.url.startsWith("/api/v1/org/auth/authRole/")) system = "admin";
|
||||
// if (req.url.startsWith("/api/v1/org/keycloak")) system = "admin";
|
||||
if (req.url.startsWith("/api/v1/org/pos/admin/master/list")) system = "admin";
|
||||
if (req.url.startsWith("/api/v1/org/super-admin/{id}")) system = "admin";
|
||||
if (req.url.startsWith("/api/v1/org/permission-org/")) system = "admin";
|
||||
if (req.url.startsWith("/api/v1/org/pos/assign/")) system = "admin";
|
||||
if (req.url.startsWith("/api/v1/org/profile/")) system = "registry";
|
||||
if (req.url.startsWith("/api/v1/org/profile-employee/")) system = "registry";
|
||||
if (req.url.startsWith("/api/v1/org/profile-temp/")) system = "registry";
|
||||
// if (req.url.startsWith("/api/v1/org/auth/authRoleAttr/")) system = "admin";
|
||||
// if (req.url.startsWith("/api/v1/org/auth/authRoleAttr/")) system = "admin";
|
||||
|
||||
const level = LOG_LEVEL_MAP[process.env.LOG_LEVEL ?? "debug"] || 4;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue