import { prisma } from "@/module/_global"; import { funGetUserByCookies } from "@/module/auth"; import { createLogUser } from "@/module/user"; import _ from "lodash"; import { NextResponse } from "next/server"; // ADD MEMBER DISCUSSION GENERAL export async function POST(request: Request, context: { params: { id: string } }) { try { const user = await funGetUserByCookies() if (user.id == undefined) { return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 401 }); } const { id } = context.params const { member } = (await request.json()) const cek = await prisma.discussion.count({ where: { id, isActive: true } }) if (cek == 0) { return NextResponse.json({ success: false, message: "Gagal menambahkan anggota, data tidak ditemukan" }, { status: 404 }); } if (member.length > 0) { const dataMember = member.map((v: any) => ({ ..._.omit(v, ["idUser", "name", "img"]), idDiscussion: id, idUser: v.idUser })) const insertMember = await prisma.discussionMember.createMany({ data: dataMember }) } // create log user const log = await createLogUser({ act: 'CREATE', desc: 'User menambah anggota diskusi umum', table: 'discussion', data: String(id) }) return NextResponse.json({ success: true, message: "Berhasil menambahkan anggota diskusi umum" }, { status: 200 }); } catch (error) { console.error(error); return NextResponse.json({ success: false, message: "Gagal menambahkan anggota, coba lagi nanti (error : 500)" }, { status: 500 }); } } // MENGELUARKAN ANGGOTA export async function DELETE(request: Request, context: { params: { id: string } }) { try { const user = await funGetUserByCookies() if (user.id == undefined) { return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 401 }); } const { id } = context.params const { idUser } = (await request.json()); const cek = await prisma.discussion.count({ where: { id, isActive: true } }) if (cek == 0) { return NextResponse.json({ success: false, message: "Gagal, data tidak ditemukan" }, { status: 404 }); } const deleteMember = await prisma.discussionMember.deleteMany({ where: { idDiscussion: id, idUser } }) // create log user const log = await createLogUser({ act: 'DELETE', desc: 'User mengeluarkan anggota diskusi umum', table: 'discussion', data: String(id) }) return NextResponse.json({ success: true, message: "Berhasil mengeluarkan anggota diskusi umum" }, { status: 200 }); } catch (error) { console.error(error); return NextResponse.json({ success: false, message: "Gagal mengeluarkan anggota, coba lagi nanti (error : 500)" }, { status: 500 }); } }