feat : update announcement

This commit is contained in:
lukman
2024-08-13 09:33:26 +08:00
parent 9a000d3387
commit 54ccceb12f
10 changed files with 226 additions and 55 deletions

View File

@@ -1,3 +1,4 @@
import { Group } from '@mantine/core';
import { prisma } from "@/module/_global";
import { funGetUserByCookies } from "@/module/auth";
import _ from "lodash";
@@ -22,7 +23,7 @@ export async function GET(request: Request) {
isActive: true,
title: {
contains: (name == undefined || name == null) ? "" : name,
mode: "insensitive"
mode: "insensitive"
}
},
select: {
@@ -44,3 +45,53 @@ export async function GET(request: Request) {
return NextResponse.json({ success: false, message: "Gagal mendapatkan pengumuman, coba lagi nanti", reason: (error as Error).message, }, { status: 500 });
}
}
export async function POST(request: Request) {
try {
// const user = await funGetUserByCookies();
// if (user.id == undefined) {
// return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 401 });
// }
const { title, desc, createBy, groups } = (await request.json());
const villaId = "desa1"
const roleId = "superAdminLukman"
const data = await prisma.announcement.create({
data: {
title,
desc,
idVillage: String(villaId),
createdBy: String(roleId),
},
select: {
id: true,
title: true,
desc: true,
createdAt: true,
}
});
const dataMember = groups.map((group: any) => ({
idAnnoucement: data.id,
idGroup: group.id,
idDivision: group.Division.map((division: any) => ({
id: division.id,
name: division.name,
})),
isActive: true,
}));
console.log("test data", dataMember)
// await prisma.announcementMember.createMany({
// data: dataMember
// })
return NextResponse.json({ success: true, message: "Berhasil mendapatkan pengumuman"}, { status: 200 });
} catch (error) {
console.error(error);
return NextResponse.json({ success: false, message: "Gagal mendapatkan pengumuman, coba lagi nanti", reason: (error as Error).message, }, { status: 500 });
}
}

View File

@@ -0,0 +1,39 @@
import { prisma } from "@/module/_global";
import { funGetUserByCookies } from "@/module/auth";
import { revalidatePath, revalidateTag } from "next/cache";
import { NextResponse } from "next/server";
export const dynamic = 'force-dynamic'
export const revalidate = true
export async function GET(request: Request) {
try {
const user = await funGetUserByCookies()
if (user.id == undefined) {
return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 401 });
}
const villaId = user.idVillage
const data = await prisma.group.findMany({
where: {
isActive: true,
idVillage: String(villaId)
},
select: {
id: true,
name: true,
Division: {
select: {
id: true,
name: true
}
}
}
});
return NextResponse.json({ success: true, message: "Berhasil mendapatkan grup", data, }, { status: 200 });
} catch (error) {
console.log(error);
return NextResponse.json({ success: false, message: "Gagal mendapatkan grup, coba lagi nanti", reason: (error as Error).message, }, { status: 500 });
}
}