File

apps/recallassess/recallassess-api/src/api/admin/system-log/config/system-log-config.service.ts

Extends

ModuleConfigBase

Index

Methods

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,
    });
  }
}

results matching ""

    No results matching ""