apps/recallassess/recallassess-api/src/api/admin/system-log/config/system-log-config.service.ts
ModuleConfigBase
Methods |
| getConfiguration |
getConfiguration()
|
|
Returns :
ModuleConfig
|
import { ColumnConfig, ColumnType } from "@bish-nest/core/app-config/column-config.class";
import { ModuleConfig } from "@bish-nest/core/app-config/module-config.class";
import { ModuleConfigBase } from "@bish-nest/core/app-config/module-config-base.class";
import { Injectable } from "@nestjs/common";
import { SysmtemLogOperationType, SystemLogEntityType } from "@prisma/client";
import { SystemLogAddDto } from "../dto/system-log-add.dto";
import { SystemLogDetailDto } from "../dto/system-log-detail.dto";
import { SystemLogListDto } from "../dto/system-log-list.dto";
import { SystemLogSaveDto } from "../dto/system-log-save.dto";
@Injectable()
export class SystemLogConfig extends ModuleConfigBase {
getConfiguration(): ModuleConfig {
const columns: ColumnConfig[] = [
new ColumnConfig({ name: "id", type: ColumnType.Integer }),
new ColumnConfig({
name: "entity_type",
isEnumType: true,
enumValues: Object.values(SystemLogEntityType),
}),
new ColumnConfig({
name: "operation_type",
isEnumType: true,
enumValues: Object.values(SysmtemLogOperationType),
}),
new ColumnConfig({ name: "user_id", type: ColumnType.Integer }),
new ColumnConfig({ name: "system_module_id", type: ColumnType.Integer }),
new ColumnConfig({ name: "permission_id", type: ColumnType.Integer }),
new ColumnConfig({ name: "company_id", type: ColumnType.Integer }),
new ColumnConfig({ name: "participant_id", type: ColumnType.Integer }),
new ColumnConfig({ name: "course_id", type: ColumnType.Integer }),
new ColumnConfig({ name: "invoice_id", type: ColumnType.Integer }),
new ColumnConfig({ name: "role_id", type: ColumnType.Integer }),
new ColumnConfig({ name: "ip_address" }),
new ColumnConfig({ name: "user_agent" }),
new ColumnConfig({ name: "request_endpoint" }),
new ColumnConfig({ name: "request_method" }),
new ColumnConfig({ name: "status_code", type: ColumnType.Integer }),
new ColumnConfig({ name: "response_time_ms", type: ColumnType.Integer }),
new ColumnConfig({ name: "old_data" }),
new ColumnConfig({ name: "new_data" }),
new ColumnConfig({ name: "changed_fields" }),
new ColumnConfig({ name: "request_body" }),
new ColumnConfig({ name: "error_message" }),
new ColumnConfig({ name: "timestamp", type: ColumnType.DateTime }),
new ColumnConfig({ name: "created_at", type: ColumnType.DateTime }),
];
return new ModuleConfig({
name: "system-log",
columns,
keywordSearchCols: [
"id",
"operation_type",
"entity_type",
"request_endpoint",
"request_method",
"ip_address",
"user_agent",
"error_message",
],
relationObjToIncludeForList: {
user: true,
systemModule: true,
permission: true,
company: true,
participant: true,
course: true,
invoice: true,
role: true,
},
relationObjToIncludeForDetail: {
user: true,
systemModule: true,
permission: true,
company: true,
participant: true,
course: true,
invoice: true,
role: true,
emailTemplate: true,
media: true,
},
listDto: SystemLogListDto,
detailDto: SystemLogDetailDto,
addDto: SystemLogAddDto,
saveDto: SystemLogSaveDto,
});
}
}