diff --git a/api.http b/api.http index 20d35c0..6bfee15 100644 --- a/api.http +++ b/api.http @@ -164,3 +164,24 @@ Content-Type: application/json "id": "clz6dq88e0001b3mlyl4vjaf8" } + +### +POST http://localhost:3000/api/announcement/post?path=create-announcement HTTP/1.1 +Content-Type: application/json + +{ + "title": "cobaannouncement1", + "desc": "coba announcement", + "idVillage": "121212", + "createBy": "111", + "groups": [ + { + "idGroup": "1", + "idDivision": "1" + }, + { + "idGroup": "1", + "idDivision": "2" + } + ] +} diff --git a/src/app/api/annoucement/get/route.ts b/src/app/api/announcement/get/route.ts similarity index 52% rename from src/app/api/annoucement/get/route.ts rename to src/app/api/announcement/get/route.ts index 5c723fd..baf9e82 100644 --- a/src/app/api/annoucement/get/route.ts +++ b/src/app/api/announcement/get/route.ts @@ -1,5 +1,6 @@ import { apiAnnouncement } from "@/module/announcement"; +import { NextRequest } from "next/server"; -export async function GET(req: Request) { +export async function GET(req: NextRequest) { return apiAnnouncement(req, "GET") } \ No newline at end of file diff --git a/src/app/api/annoucement/post/route.ts b/src/app/api/announcement/post/route.ts similarity index 52% rename from src/app/api/annoucement/post/route.ts rename to src/app/api/announcement/post/route.ts index e9f42d0..138ee81 100644 --- a/src/app/api/annoucement/post/route.ts +++ b/src/app/api/announcement/post/route.ts @@ -1,5 +1,6 @@ import { apiAnnouncement } from "@/module/announcement"; +import { NextRequest } from "next/server"; -export async function POST(req: Request) { +export async function POST(req: NextRequest) { return apiAnnouncement(req, "POST"); } diff --git a/src/module/announcement/api/api_announcement.ts b/src/module/announcement/api/api_announcement.ts index 87aa78b..91a75cb 100644 --- a/src/module/announcement/api/api_announcement.ts +++ b/src/module/announcement/api/api_announcement.ts @@ -1,7 +1,8 @@ +import { NextRequest } from "next/server"; import { API_INDEX_ANNOUNCEMENT } from "./api_index"; type Method = "GET" | "POST"; -export async function apiAnnouncement(req: Request, method: Method) { +export async function apiAnnouncement(req: NextRequest, method: Method) { const { searchParams } = new URL(req.url); const path = searchParams.get("path"); const act = API_INDEX_ANNOUNCEMENT.find( diff --git a/src/module/announcement/api/get/getAllAnnouncement.ts b/src/module/announcement/api/get/getAllAnnouncement.ts index f53c781..664fd93 100644 --- a/src/module/announcement/api/get/getAllAnnouncement.ts +++ b/src/module/announcement/api/get/getAllAnnouncement.ts @@ -1,4 +1,9 @@ -export async function getAllAnnouncement(req: Request) { +import { NextRequest } from "next/server"; + +export async function getAllAnnouncement(req: NextRequest) { try { + return Response.json({ + success: true, + }); } catch (error) {} } diff --git a/src/module/announcement/api/get/getOneAnnouncement.ts b/src/module/announcement/api/get/getOneAnnouncement.ts index d718982..b3cd5ae 100644 --- a/src/module/announcement/api/get/getOneAnnouncement.ts +++ b/src/module/announcement/api/get/getOneAnnouncement.ts @@ -1,5 +1,9 @@ -export async function getOneAnnouncement(req: Request) { - try { - } catch (error) {} +import { prisma } from "@/module/_global"; +import { NextRequest } from "next/server"; + +export async function getOneAnnouncement(req: NextRequest) { + try { + + } catch (error) { } - \ No newline at end of file +} diff --git a/src/module/announcement/api/post/createAnnouncement.ts b/src/module/announcement/api/post/createAnnouncement.ts index 1718450..7b66ae4 100644 --- a/src/module/announcement/api/post/createAnnouncement.ts +++ b/src/module/announcement/api/post/createAnnouncement.ts @@ -1,5 +1,44 @@ -export async function createAnnouncement(req: Request) { - try { - } catch (error) {} +import { prisma } from "@/module/_global"; +import { NextRequest } from "next/server"; + +export async function createAnnouncement(req: NextRequest) { + try { + const data = await req.json(); + const announcement = await prisma.annoucement.create({ + data: { + title: data.title, + desc: data.desc, + idVillage: data.idVillage, + createdBy: data.createBy, + isActive: true, + }, + select: { + id: true, + title: true, + desc: true, + }, + }); + + const dataMember = data.groups.map((group: any) => ({ + idAnnoucement: announcement.id, + idGroup: group.idGroup, + idDivision: group.idDivision, + isActive: true, + })); + + const announcementMember = await prisma.annoucementMember.createMany({ + data: dataMember, + }); + + return Response.json({ + announcement: announcement, + announcementMember: announcementMember, + }); + } catch (error) { + console.error(error); + return Response.json( + { message: "Internal Server Error", success: false }, + { status: 500 } + ); } - \ No newline at end of file +} diff --git a/src/module/announcement/api/post/deleteAnnouncement.ts b/src/module/announcement/api/post/deleteAnnouncement.ts index 9b06630..536453f 100644 --- a/src/module/announcement/api/post/deleteAnnouncement.ts +++ b/src/module/announcement/api/post/deleteAnnouncement.ts @@ -1,4 +1,6 @@ -export async function deleteAnnouncement(req: Request) { +import { NextRequest } from "next/server"; + +export async function deleteAnnouncement(req: NextRequest) { try { } catch (error) {} } diff --git a/src/module/announcement/api/post/updateAnnouncement.ts b/src/module/announcement/api/post/updateAnnouncement.ts index c5e32d4..269fcaf 100644 --- a/src/module/announcement/api/post/updateAnnouncement.ts +++ b/src/module/announcement/api/post/updateAnnouncement.ts @@ -1,4 +1,6 @@ -export async function updateAnnouncement(req: Request) { +import { NextRequest } from "next/server"; + +export async function updateAnnouncement(req: NextRequest) { try { } catch (error) {} }