apps/recallassess/recallassess-api/src/common/system-log/recall-system-log-entity-relation.adapter.ts
Properties |
|
Methods |
| applyAdditionalForeignKeys | |||||||||
applyAdditionalForeignKeys(logData: BNestSystemLogCreateInputFragment, data: BNestCreateSystemLogData)
|
|||||||||
|
Parameters :
Returns :
void
|
| applyEntityForeignKey | ||||||||||||
applyEntityForeignKey(logData: BNestSystemLogCreateInputFragment, entity_type: string, entity_id: number)
|
||||||||||||
|
Parameters :
Returns :
void
|
| 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 } };
}
}
}