From f265639355c31d4598cf9942d4b1e57de35ebadf Mon Sep 17 00:00:00 2001 From: lukman Date: Mon, 29 Jul 2024 13:43:11 +0800 Subject: [PATCH 1/3] api : announcement --- api.http | 21 +++++++++ src/app/api/annoucement/get/route.ts | 3 +- src/app/api/annoucement/post/route.ts | 3 +- .../announcement/api/api_announcement.ts | 3 +- .../api/get/getAllAnnouncement.ts | 4 +- .../api/get/getOneAnnouncement.ts | 12 +++-- .../api/post/createAnnouncement.ts | 45 +++++++++++++++++-- .../api/post/deleteAnnouncement.ts | 4 +- .../api/post/updateAnnouncement.ts | 4 +- 9 files changed, 85 insertions(+), 14 deletions(-) diff --git a/api.http b/api.http index 20d35c0..3eb45f6 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": "cobaannouncement", + "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/annoucement/get/route.ts index 5c723fd..baf9e82 100644 --- a/src/app/api/annoucement/get/route.ts +++ b/src/app/api/annoucement/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/annoucement/post/route.ts index e9f42d0..138ee81 100644 --- a/src/app/api/annoucement/post/route.ts +++ b/src/app/api/annoucement/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..cf988e4 100644 --- a/src/module/announcement/api/get/getAllAnnouncement.ts +++ b/src/module/announcement/api/get/getAllAnnouncement.ts @@ -1,4 +1,6 @@ -export async function getAllAnnouncement(req: Request) { +import { NextRequest } from "next/server"; + +export async function getAllAnnouncement(req: NextRequest) { try { } 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..ed37458 100644 --- a/src/module/announcement/api/post/createAnnouncement.ts +++ b/src/module/announcement/api/post/createAnnouncement.ts @@ -1,5 +1,42 @@ -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 announcementMember = await prisma.annoucementMember.createMany({ + data: data.groups.map((group: any) => ({ + idAnnoucement: announcement.id, + idGroup: group.idGroup, + idDivision: group.idDivision, + isActive: true, + })), + }); + + 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) {} } From fcbc136d41c6720385b1cd0397c1fbbedb58947f Mon Sep 17 00:00:00 2001 From: lukman Date: Mon, 29 Jul 2024 13:52:46 +0800 Subject: [PATCH 2/3] api : update announcement --- api.http | 2 +- src/app/api/{annoucement => announcement}/get/route.ts | 0 src/app/api/{annoucement => announcement}/post/route.ts | 0 src/module/announcement/api/get/getAllAnnouncement.ts | 3 +++ 4 files changed, 4 insertions(+), 1 deletion(-) rename src/app/api/{annoucement => announcement}/get/route.ts (100%) rename src/app/api/{annoucement => announcement}/post/route.ts (100%) diff --git a/api.http b/api.http index 3eb45f6..6bfee15 100644 --- a/api.http +++ b/api.http @@ -170,7 +170,7 @@ POST http://localhost:3000/api/announcement/post?path=create-announcement HTTP/1 Content-Type: application/json { - "title": "cobaannouncement", + "title": "cobaannouncement1", "desc": "coba announcement", "idVillage": "121212", "createBy": "111", diff --git a/src/app/api/annoucement/get/route.ts b/src/app/api/announcement/get/route.ts similarity index 100% rename from src/app/api/annoucement/get/route.ts rename to src/app/api/announcement/get/route.ts diff --git a/src/app/api/annoucement/post/route.ts b/src/app/api/announcement/post/route.ts similarity index 100% rename from src/app/api/annoucement/post/route.ts rename to src/app/api/announcement/post/route.ts diff --git a/src/module/announcement/api/get/getAllAnnouncement.ts b/src/module/announcement/api/get/getAllAnnouncement.ts index cf988e4..664fd93 100644 --- a/src/module/announcement/api/get/getAllAnnouncement.ts +++ b/src/module/announcement/api/get/getAllAnnouncement.ts @@ -2,5 +2,8 @@ import { NextRequest } from "next/server"; export async function getAllAnnouncement(req: NextRequest) { try { + return Response.json({ + success: true, + }); } catch (error) {} } From 9707dca82f1fdea259c26bdc6909a7bc9ef72d44 Mon Sep 17 00:00:00 2001 From: lukman Date: Mon, 29 Jul 2024 13:57:45 +0800 Subject: [PATCH 3/3] api : update announcemet --- .../announcement/api/post/createAnnouncement.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/module/announcement/api/post/createAnnouncement.ts b/src/module/announcement/api/post/createAnnouncement.ts index ed37458..7b66ae4 100644 --- a/src/module/announcement/api/post/createAnnouncement.ts +++ b/src/module/announcement/api/post/createAnnouncement.ts @@ -19,13 +19,15 @@ export async function createAnnouncement(req: NextRequest) { }, }); + 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: data.groups.map((group: any) => ({ - idAnnoucement: announcement.id, - idGroup: group.idGroup, - idDivision: group.idDivision, - isActive: true, - })), + data: dataMember, }); return Response.json({