feat: add logging functionality with LoggerService; implement log entity and controller; enhance query processing with logging support
This commit is contained in:
@ -13,6 +13,8 @@ import { QueryHandlerService } from "../handler/query.handler.service";
|
||||
import { ApiTokenGuard } from "src/api/guards/api-token.guard";
|
||||
import { QueryExecuterService } from "../executer/query.executer.service";
|
||||
import { QueryGuard } from "src/query/guards/query.guard";
|
||||
import { LoggerService } from "../logger/logger.service";
|
||||
import { TLogType } from "../logger/logger.types";
|
||||
|
||||
@UseGuards(ApiTokenGuard)
|
||||
export abstract class BaseQueryController {
|
||||
@ -20,7 +22,9 @@ export abstract class BaseQueryController {
|
||||
@Inject(QueryHandlerService)
|
||||
protected readonly queryHandlerService: QueryHandlerService,
|
||||
@Inject(QueryExecuterService)
|
||||
protected readonly queryExecuterService: QueryExecuterService
|
||||
protected readonly queryExecuterService: QueryExecuterService,
|
||||
@Inject(LoggerService)
|
||||
protected readonly loggerService: LoggerService
|
||||
) {}
|
||||
|
||||
protected abstract getIsCommand(): boolean;
|
||||
@ -49,9 +53,26 @@ export abstract class BaseQueryController {
|
||||
@Headers() headers: Record<string, any>,
|
||||
@Res() res: Response
|
||||
) {
|
||||
const loggerTraceId =
|
||||
headers["x-trace-id"] || LoggerService.generateTraceId();
|
||||
const log = LoggerService.log(
|
||||
{
|
||||
traceId: loggerTraceId,
|
||||
startTime: new Date().getTime(),
|
||||
payload: query,
|
||||
headers: headers,
|
||||
cookies: headers.cookie,
|
||||
url: `/run/${id}`,
|
||||
response: null,
|
||||
content: [],
|
||||
},
|
||||
{ content: "", type: TLogType.info, timeStamp: new Date().getTime() }
|
||||
);
|
||||
|
||||
const queryResult = await this.queryExecuterService.runQueryQueued(
|
||||
id,
|
||||
query,
|
||||
log,
|
||||
headers,
|
||||
headers.cookie.split("; ").reduce((acc, cookie) => {
|
||||
const [key, value] = cookie.split("=");
|
||||
@ -60,6 +81,11 @@ export abstract class BaseQueryController {
|
||||
}, {})
|
||||
);
|
||||
|
||||
if (queryResult?.log) {
|
||||
queryResult.log.endTime = new Date().getTime();
|
||||
await this.loggerService.create(queryResult.log.traceId, queryResult.log);
|
||||
}
|
||||
|
||||
res.status(queryResult?.statusCode || 200);
|
||||
|
||||
if (queryResult?.cookies) {
|
||||
|
||||
Reference in New Issue
Block a user