This commit is contained in:
AdisakKanthawilang 2024-08-01 15:38:03 +07:00
parent 61ec81687c
commit 5edd511f2a
4 changed files with 28 additions and 9 deletions

View file

@ -153,6 +153,7 @@ export class DevelopmentController extends Controller {
// description: "Store Development.",
// });
const before = null;
await this.developmentRepository.save(development, { data: request });
setLogDataDiff(request, { before, after: development });
return new HttpSuccess(development.id);

View file

@ -1,4 +1,6 @@
import { RequestWithUser } from "../middlewares/user";
import HttpStatus from "./http-status";
import { addLogSequence } from "./utils";
class HttpSuccess {
/**
@ -14,5 +16,15 @@ class HttpSuccess {
this.result = result;
}
}
// const request = {} as RequestWithUser;
// if (request) {
// if (!request.app.locals.logData) {
// request.app.locals.logData = {};
// }
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Query Data.",
// });
// }
export default HttpSuccess;

View file

@ -58,11 +58,11 @@ export async function expressAuthentication(
request.app.locals.logData = {};
}
addLogSequence(request, {
action: "database",
status: "success",
description: "Query Data.",
});
// addLogSequence(request, {
// action: "database",
// status: "success",
// description: "Query Data.",
// });
request.app.locals.logData.userId = payload.sub;
request.app.locals.logData.userName = payload.name;
request.app.locals.logData.user = payload.preferred_username;

View file

@ -1,5 +1,7 @@
import { NextFunction, Request, Response } from "express";
import { Client } from "@elastic/elasticsearch";
import { addLogSequence } from "../interfaces/utils";
import { RequestWithUser } from "./user";
if (!process.env.ELASTICSEARCH_INDEX) {
throw new Error("Require ELASTICSEARCH_INDEX to store log.");
@ -19,7 +21,7 @@ const elasticsearch = new Client({
node: `${process.env.ELASTICSEARCH_PROTOCOL}://${process.env.ELASTICSEARCH_HOST}:${process.env.ELASTICSEARCH_PORT}`,
});
async function logMiddleware(req: Request, res: Response, next: NextFunction) {
async function logMiddleware(req: any, res: Response, next: NextFunction) {
if (!req.url.startsWith("/api/")) return next();
let data: any;
@ -38,8 +40,13 @@ async function logMiddleware(req: Request, res: Response, next: NextFunction) {
res.on("finish", () => {
if (!req.url.startsWith("/api/")) return;
const logData = req?.app?.locals.logData?.sequence?.at(-1);
const level = LOG_LEVEL_MAP[process.env.LOG_LEVEL ?? "debug"] || 4;
addLogSequence(req, {
action: "database",
status: "success",
description: "Query Data.",
});
if (level === 1 && res.statusCode < 500) return;
if (level === 2 && res.statusCode < 400) return;
@ -67,7 +74,6 @@ async function logMiddleware(req: Request, res: Response, next: NextFunction) {
document: obj,
});
});
return next();
}