File

apps/recallassess/recallassess-api/src/common/system-log/recall-system-log-module-config.service.ts

Extends

ModuleConfigBase

Index

Methods

Methods

getConfiguration
getConfiguration()
Returns : ModuleConfig
import {
  SystemLogAddDto,
  SystemLogDetailDto,
  SystemLogListDto,
  SystemLogSaveDto,
} from "@bish-nest/admin/modules/system-log";
import {
  RECALL_SYSTEM_LOG_ENTITY_TYPES,
  SYSTEM_LOG_OPERATION_TYPES,
} from "@bish-nest/admin/modules/system-log/system-log-enum.constants";
import { ColumnConfig, ColumnType } from "@bish-nest/app-config/app-config/column-config.class";
import { ModuleConfig } from "@bish-nest/app-config/app-config/module-config.class";
import { ModuleConfigBase } from "@bish-nest/app-config/app-config/module-config-base.class";
import { Injectable } from "@nestjs/common";

@Injectable()
export class RecallSystemLogModuleConfigService extends ModuleConfigBase {
  getConfiguration(): ModuleConfig {
    const columns: ColumnConfig[] = [
      new ColumnConfig({ name: "id", type: ColumnType.Integer }),
      new ColumnConfig({
        name: "entity_type",
        isEnumType: true,
        enumValues: [...RECALL_SYSTEM_LOG_ENTITY_TYPES],
      }),
      new ColumnConfig({
        name: "operation_type",
        isEnumType: true,
        enumValues: [...SYSTEM_LOG_OPERATION_TYPES],
      }),
      new ColumnConfig({ name: "user_id", type: ColumnType.Integer }),
      new ColumnConfig({ name: "module_key" }),
      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: "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,
        company: true,
        participant: true,
        course: true,
        invoice: true,
      },
      relationObjToIncludeForDetail: {
        user: true,
        company: true,
        participant: true,
        course: true,
        invoice: true,
        emailTemplate: true,
        media: true,
      },
      listDto: SystemLogListDto,
      detailDto: SystemLogDetailDto,
      addDto: SystemLogAddDto,
      saveDto: SystemLogSaveDto,
    });
  }
}

results matching ""

    No results matching ""