ค้นหาเว็บไซต์

TypeScript - วิธีแยกตรรกะทางธุรกิจออกจากตรรกะของ Prisma


ฉันเพิ่งเริ่มใช้ Prisma เป็น ORM ในโปรเจกต์ของฉัน แต่ฉันไม่แน่ใจว่าจะคั่นแยกโค้ดคำสั่ง Prisma และโค้ดโลจิกออกจากโลจิกของเซอร์วิสที่ใช้ Prisma อย่างไร เนื่องจากเราไม่สามารถใช้วิธี generic repositories ได้ ฉันอยากหาวิธีแก้ปัญหาเพื่อให้เกิดการแยกส่วนนี้ มีไอเดียบ้างไหม?

นี่คือตัวอย่างของ 'application. service' ที่ใช้ Prisma

>  async findByIdPrisma(applicationId: number):
> Promise<ApplicationModel> {
>     const application = await this.prismaService.application.findUnique({
>       where: { id: applicationId },
>     });
>     if (application) {
>       return application;
>     }
>     throw new DataIsForbiddenOrNotFoundException('Application', {
>       Application: applicationId,
>     });   }

วิธีแก้ปัญหาที่ฉันต้องการให้เกิดขึ้นคือการมีคำสั่งค้นหาเหล่านั้นเป็นฟังก์ชันในคลังเก็บแยกต่างหาก โดยแยกออกจากบริการนี้อย่างสิ้นเชิง ขอบคุณล่วงหน้า