diff --git a/src/Resume/resume.schema.ts b/src/Resume/resume.schema.ts index 7ab07a8..90f694b 100644 --- a/src/Resume/resume.schema.ts +++ b/src/Resume/resume.schema.ts @@ -227,7 +227,7 @@ export class ResumeSchema extends PothosSchema { }) // if resume exists, append resumeFile if (existingResume) { - return await this.prisma.resume.update({ + const resume = await this.prisma.resume.update({ where: { id: existingResume.id }, data: { resumeFile: { @@ -239,29 +239,39 @@ export class ResumeSchema extends PothosSchema { }, }, }) + + // notify Moderator + const centerMentor = await this.prisma.centerMentor.findMany({ + where: { centerId }, + }) + const mentorIds = centerMentor.map((mentor) => mentor.mentorId) + const moderators = await this.prisma.user.findMany({ + where: { id: { in: mentorIds } }, + }) + for (const moderator of moderators) { + const message = await this.prisma.message.create({ + data: { + senderId: ctx.http.me?.id ?? '', + recipientId: moderator.id, + type: MessageType.TEXT, + content: `Có yêu cầu hồ sơ mới từ ${ctx.http.me?.name}`, + sentAt: DateTimeUtils.nowAsJSDate(), + context: MessageContextType.NOTIFICATION, + }, + }) + ctx.http.pubSub.publish(`${PubSubEvent.NOTIFICATION}.${moderator.id}`, message) + } + return resume } // if resume does not exist, create new resume const resume = await this.prisma.resume.create({ data: { userId, centerId, resumeFile: { create: { fileUrl, type: mimetype, actualFileName } } }, }) - // notify all mentor or center owner for the center - const center = await this.prisma.center.findUnique({ - where: { id: centerId }, - }) - if (!center?.centerOwnerId) { - throw new Error('Center owner not found') - } - const centerOwner = await this.prisma.user.findUnique({ - where: { id: center.centerOwnerId }, - }) - if (!centerOwner) { - throw new Error('Center owner not found') - } + // send notification to all Moderator const centerMentor = await this.prisma.centerMentor.findMany({ - where: { centerId: center.id }, + where: { centerId }, }) const mentorIds = centerMentor.map((mentor) => mentor.mentorId) - // send notification to all Moderator const moderators = await this.prisma.user.findMany({ where: { id: { in: mentorIds } }, })