diff --git a/src/app/api/discussion/route.ts b/src/app/api/discussion/route.ts index 7d2cf7a..45a538c 100644 --- a/src/app/api/discussion/route.ts +++ b/src/app/api/discussion/route.ts @@ -126,6 +126,34 @@ export async function POST(request: Request) { } }); + const memberDivision = await prisma.divisionMember.findMany({ + where: { + idDivision: idDivision + }, + select: { + User: { + select: { + id: true + } + } + } + }) + + + const dataNotif = memberDivision.map((v: any) => ({ + ..._.omit(v, ["User"]), + idUserTo: v.User.id, + idUserFrom: String(user.id), + category: 'division/' + idDivision + '/discussion', + idContent: data.id, + title: 'Diskusi Baru', + desc: 'Terdapat diskusi baru. Silahkan periksa detailnya.' + })) + + const insertNotif = await prisma.notifications.createMany({ + data: dataNotif + }) + // create log user const log = await createLogUser({ act: 'CREATE', desc: 'User membuat data diskusi', table: 'divisionDisscussion', data: data.id }) diff --git a/src/app/api/division/route.ts b/src/app/api/division/route.ts index 21471cd..f7be952 100644 --- a/src/app/api/division/route.ts +++ b/src/app/api/division/route.ts @@ -2,7 +2,6 @@ import { prisma } from "@/module/_global"; import { funGetUserByCookies } from "@/module/auth"; import { createLogUser } from "@/module/user"; import _ from "lodash"; -import { revalidatePath, revalidateTag } from "next/cache"; import { NextResponse } from "next/server"; @@ -108,8 +107,6 @@ export async function GET(request: Request) { - - // CREATE DATA DIVISI export async function POST(request: Request) { try { @@ -118,8 +115,10 @@ export async function POST(request: Request) { return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 401 }); } - const sent = (await request.json()); - const villaId = user.idVillage + const userId = user.id + const userRoleLogin = user.idUserRole + const sent = (await request.json()) + const data = await prisma.division.create({ data: { name: sent.data.name, @@ -145,9 +144,69 @@ export async function POST(request: Request) { data: dataMember }) - revalidatePath('/api/divisi/', "page") - revalidatePath('/divisi', 'page') - revalidateTag('divisi') + + const dataNotif = sent.member.map((v: any) => ({ + ..._.omit(v, ["idUser", "name", "img"]), + idUserTo: v.idUser, + idUserFrom: userId, + category: 'division', + idContent: data.id, + title: 'Divisi Baru', + desc: 'Terdapat divisi baru. Silahkan periksa detailnya.' + })) + + if (userRoleLogin != "supadmin") { + const perbekel = await prisma.user.findFirst({ + where: { + isActive: true, + idUserRole: "supadmin", + idVillage: user.idVillage + } + }) + + dataNotif.push({ + idUserTo: perbekel?.id, + idUserFrom: userId, + category: 'division', + idContent: data.id, + title: 'Divisi Baru', + desc: 'Terdapat divisi baru. Silahkan periksa detailnya.' + }) + } else { + const atasanGroup = await prisma.user.findMany({ + where: { + isActive: true, + idGroup: sent.data.idGroup, + AND: { + OR: [ + { idUserRole: 'cosupadmin' }, + { idUserRole: 'admin' }, + ] + } + }, + select: { + id: true + } + }) + + const omitData = atasanGroup.map((v: any) => ({ + ..._.omit(v, ["id"]), + idUserTo: v.id, + idUserFrom: userId, + category: 'division', + idContent: data.id, + title: 'Divisi Baru', + desc: 'Terdapat divisi baru. Silahkan periksa detailnya.' + })) + + dataNotif.push(...omitData) + + } + + const insertNotif = await prisma.notifications.createMany({ + data: dataNotif + }) + // create log user const log = await createLogUser({ act: 'CREATE', desc: 'User membuat data divisi', table: 'division', data: data.id }) diff --git a/src/app/api/project/route.ts b/src/app/api/project/route.ts index 8cc83f9..37408a3 100644 --- a/src/app/api/project/route.ts +++ b/src/app/api/project/route.ts @@ -3,8 +3,6 @@ import { funGetUserByCookies } from "@/module/auth"; import _ from "lodash"; import moment from "moment"; import { NextResponse } from "next/server"; -import path from "path"; -import fs from "fs"; import { createLogUser } from "@/module/user"; diff --git a/src/app/api/task/route.ts b/src/app/api/task/route.ts index 679881d..a68b206 100644 --- a/src/app/api/task/route.ts +++ b/src/app/api/task/route.ts @@ -206,6 +206,35 @@ export async function POST(request: Request) { }) } + const memberDivision = await prisma.divisionMember.findMany({ + where: { + idDivision: idDivision + }, + select: { + User: { + select: { + id: true + } + } + } + }) + + + const dataNotif = memberDivision.map((v: any) => ({ + ..._.omit(v, ["User"]), + idUserTo: v.User.id, + idUserFrom: String(user.id), + category: 'division/' + idDivision + '/task', + idContent: data.id, + title: 'Tugas Baru', + desc: 'Terdapat tugas baru. Silahkan periksa detailnya.' + })) + + const insertNotif = await prisma.notifications.createMany({ + data: dataNotif + }) + + // create log user const log = await createLogUser({ act: 'CREATE', desc: 'User membuat tugas divisi baru', table: 'divisionProject', data: data.id })