File

apps/recallassess/recallassess-api/src/common/system-log/recall-system-log-entity-relation.adapter.ts

Index

Properties
Methods

Methods

applyAdditionalForeignKeys
applyAdditionalForeignKeys(logData: BNestSystemLogCreateInputFragment, data: BNestCreateSystemLogData)
Parameters :
Name Type Optional
logData BNestSystemLogCreateInputFragment No
data BNestCreateSystemLogData No
Returns : void
applyEntityForeignKey
applyEntityForeignKey(logData: BNestSystemLogCreateInputFragment, entity_type: string, entity_id: number)
Parameters :
Name Type Optional
logData BNestSystemLogCreateInputFragment No
entity_type string No
entity_id number No
Returns : void

Properties

Private Readonly logger
Type : unknown
Default value : new Logger(RecallSystemLogEntityRelationAdapter.name)
import {
  type BNestCreateSystemLogData,
  type BNestSystemLogCreateInputFragment,
  type BNestSystemLogEntityRelationAdapter,
} from "@bish-nest/system-log";
import { Injectable, Logger } from "@nestjs/common";
import { SystemLogEntityType } from "@prisma/client";

@Injectable()
export class RecallSystemLogEntityRelationAdapter implements BNestSystemLogEntityRelationAdapter {
  private readonly logger = new Logger(RecallSystemLogEntityRelationAdapter.name);

  applyEntityForeignKey(
    logData: BNestSystemLogCreateInputFragment,
    entity_type: string,
    entity_id: number,
  ): void {
    switch (entity_type as SystemLogEntityType) {
      case SystemLogEntityType.COMPANY:
        logData["company"] = { connect: { id: entity_id } };
        break;
      case SystemLogEntityType.PARTICIPANT:
        logData["participant"] = { connect: { id: entity_id } };
        break;
      case SystemLogEntityType.USER:
        break;
      case SystemLogEntityType.COURSE:
        logData["course"] = { connect: { id: entity_id } };
        break;
      case SystemLogEntityType.TESTIMONIAL:
        this.logger.debug(`Testimonial entity_id ${entity_id} - no direct relation in SystemLog`);
        break;
      case SystemLogEntityType.COURSE_MODULE:
        logData["courseModule"] = { connect: { id: entity_id } };
        break;
      case SystemLogEntityType.COURSE_MODULE_PAGE:
        logData["courseModulePage"] = { connect: { id: entity_id } };
        break;
      case SystemLogEntityType.LEARNING_GROUP:
        logData["learningGroup"] = { connect: { id: entity_id } };
        break;
      case SystemLogEntityType.ASSESSMENT:
        logData["assessment"] = { connect: { id: entity_id } };
        break;
      case SystemLogEntityType.KNOWLEDGE_REVIEW:
        logData["knowledgeReview"] = { connect: { id: entity_id } };
        break;
      case SystemLogEntityType.PARTICIPANT_GROUP:
        logData["participantGroup"] = { connect: { id: entity_id } };
        break;
      case SystemLogEntityType.SUBSCRIPTION:
        logData["subscription"] = { connect: { id: entity_id } };
        break;
      case SystemLogEntityType.INVOICE:
        logData["invoice"] = { connect: { id: entity_id } };
        break;
      case SystemLogEntityType.PACKAGE:
        logData["package"] = { connect: { id: entity_id } };
        break;
      case SystemLogEntityType.SYSTEM_SETTING:
        this.logger.debug(`System setting entity_id ${entity_id} - no direct relation in SystemLog`);
        break;
      case SystemLogEntityType.EMAIL_TEMPLATE:
        logData["emailTemplate"] = { connect: { id: entity_id } };
        break;
      case SystemLogEntityType.EMAIL_LOG:
        logData["emailLog"] = { connect: { id: entity_id } };
        break;
      case SystemLogEntityType.MEDIA:
        logData["media"] = { connect: { id: entity_id } };
        break;
      default:
        this.logger.warn(`Unknown entity type: ${entity_type}, entity_id not set`);
    }
  }

  applyAdditionalForeignKeys(
    logData: BNestSystemLogCreateInputFragment,
    data: BNestCreateSystemLogData,
  ): void {
    if (data.company_id) {
      logData["company"] = { connect: { id: data.company_id } };
    }
    if (data.participant_id) {
      logData["participant"] = { connect: { id: data.participant_id } };
    }
    if (data.subscription_id) {
      logData["subscription"] = { connect: { id: data.subscription_id } };
    }
    if (data.invoice_id) {
      logData["invoice"] = { connect: { id: data.invoice_id } };
    }
  }
}

results matching ""

    No results matching ""