From 43035bc14a83cc8a9dcbc4bbfde2890bd4c211bf Mon Sep 17 00:00:00 2001 From: lukman Date: Thu, 8 Aug 2024 17:34:14 +0800 Subject: [PATCH] feat : update get user announcement --- api.http | 2 + src/app/api/coba/route.ts | 39 +++++++++++++++++++ src/module/_global/bin/api_address.ts | 1 + src/module/announcement/api/api_index.ts | 6 +++ .../api/get/getUserAnnouncement.ts | 39 +++++++++++++++++++ 5 files changed, 87 insertions(+) create mode 100644 src/app/api/coba/route.ts create mode 100644 src/module/announcement/api/get/getUserAnnouncement.ts diff --git a/api.http b/api.http index dae69ff..1ae6373 100644 --- a/api.http +++ b/api.http @@ -187,6 +187,8 @@ Content-Type: application/json ### GET http://localhost:3000/api/announcement/get?path=get-all-announcement HTTP/1.1 +### +GET http://localhost:3000/api/announcement/get?path=get-user-announcement HTTP/1.1 ### GET http://localhost:3000/api/announcement/get?path=get-all-announcement&divisionI=1 HTTP/1.1 diff --git a/src/app/api/coba/route.ts b/src/app/api/coba/route.ts new file mode 100644 index 0000000..2eb8a44 --- /dev/null +++ b/src/app/api/coba/route.ts @@ -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 }); + } +} diff --git a/src/module/_global/bin/api_address.ts b/src/module/_global/bin/api_address.ts index 5d0584a..f240546 100644 --- a/src/module/_global/bin/api_address.ts +++ b/src/module/_global/bin/api_address.ts @@ -17,6 +17,7 @@ export const API_ADDRESS = { // Announcement "apiGetAllAnnouncement": "/api/announcement/get?path=get-all-announcement", "apiGetOneAnnouncement": "/api/announcement/get?path=get-one-announcement", + "apiGetUserAnnouncement": "/api/announcement/get?path=get-user-announcement", "apiCreateAnnouncement": "/api/announcement/post?path=create-announcement", "apiUpdateAnnouncement": "/api/announcement/post?path=update-announcement", "apiDeleteAnnouncement": "/api/announcement/post?path=delete-announcement", diff --git a/src/module/announcement/api/api_index.ts b/src/module/announcement/api/api_index.ts index e8ce26e..deed158 100644 --- a/src/module/announcement/api/api_index.ts +++ b/src/module/announcement/api/api_index.ts @@ -1,5 +1,6 @@ import { getAllAnnouncement } from "./get/getAllAnnouncement"; import { getOneAnnouncement } from "./get/getOneAnnouncement"; +import { getUserAnnouncement } from "./get/getUserAnnouncement"; import { createAnnouncement } from "./post/createAnnouncement"; import { deleteAnnouncement } from "./post/deleteAnnouncement"; import { updateAnnouncement } from "./post/updateAnnouncement"; @@ -15,6 +16,11 @@ export const API_INDEX_ANNOUNCEMENT = [ method: "GET", bin: getOneAnnouncement, }, + { + path: "get-user-announcement", + method: "GET", + bin: getUserAnnouncement, + }, { path: "create-announcement", method: "POST", diff --git a/src/module/announcement/api/get/getUserAnnouncement.ts b/src/module/announcement/api/get/getUserAnnouncement.ts new file mode 100644 index 0000000..c667173 --- /dev/null +++ b/src/module/announcement/api/get/getUserAnnouncement.ts @@ -0,0 +1,39 @@ +import { prisma } from "@/module/_global"; +import { funGetUserByCookies } from "@/module/auth"; +import { revalidatePath, revalidateTag } from "next/cache"; +import { NextRequest, NextResponse } from "next/server"; + +export const dynamic = 'force-dynamic' +export const revalidate = true +export async function getUserAnnouncement(req: NextRequest) { + 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 }); + } +}