apps/recallassess/recallassess-api/src/api/admin/email-template/email-template.service.ts
BNestBaseModuleService
Methods |
constructor(prisma: BNestPrismaService, systemLogService: SystemLogService)
|
|||||||||
|
Parameters :
|
| Async add | ||||||
add(data: any)
|
||||||
|
Parameters :
Returns :
Promise<any>
|
| Async delete | ||||||
delete(id: number)
|
||||||
|
Parameters :
Returns :
Promise<any>
|
| Async save |
save(id: number, data: any)
|
|
Returns :
Promise<any>
|
import { SystemLogService } from "@api/shared/services";
import { BNestBaseModuleService } from "@bish-nest/core/data/module-service/base-module.service";
import { BNestPrismaService } from "@bish-nest/core/services";
import { Injectable, NotFoundException } from "@nestjs/common";
import { SystemLogEntityType } from "@prisma/client";
@Injectable()
export class EmailTemplateService extends BNestBaseModuleService {
constructor(
protected prisma: BNestPrismaService,
private readonly systemLogService: SystemLogService,
) {
super();
}
async add(data: any): Promise<any> {
const addResponse = await super.add(data);
const emailTemplate = addResponse.data;
await this.systemLogService.logInsert(
SystemLogEntityType.EMAIL_TEMPLATE,
emailTemplate.id,
emailTemplate as Record<string, unknown>,
);
return addResponse;
}
async save(id: number, data: any): Promise<any> {
const oldEmailTemplate = await this.prisma.client.emailTemplate.findUnique({
where: { id },
});
if (!oldEmailTemplate) {
throw new NotFoundException(`Email template with ID ${id} not found`);
}
const saveResponse = await super.save(id, data);
const updatedEmailTemplate = saveResponse.data;
const changedFields = SystemLogService.calculateChangedFields(
oldEmailTemplate as Record<string, unknown>,
updatedEmailTemplate as Record<string, unknown>,
);
await this.systemLogService.logUpdate(
SystemLogEntityType.EMAIL_TEMPLATE,
id,
oldEmailTemplate as Record<string, unknown>,
updatedEmailTemplate as Record<string, unknown>,
changedFields,
);
return saveResponse;
}
async delete(id: number): Promise<any> {
const emailTemplate = await this.prisma.client.emailTemplate.findUnique({
where: { id },
});
if (!emailTemplate) {
throw new NotFoundException(`Email template with ID ${id} not found`);
}
const deleteResponse = await super.delete(id);
await this.systemLogService.logDelete(
SystemLogEntityType.EMAIL_TEMPLATE,
id,
emailTemplate as Record<string, unknown>,
);
return deleteResponse;
}
}