From a0290badfdca7659922be4f28d3ed203b0b83c41 Mon Sep 17 00:00:00 2001 From: amel Date: Wed, 31 Jul 2024 15:03:08 +0800 Subject: [PATCH 1/2] api division Deskripsi: - api divisi create, update, delete, get one dan get all No Issues --- src/app/api/division/get/route.ts | 6 ++- src/app/api/division/post/route.tsx | 6 ++- src/module/division/api/api_index.ts | 14 ------- .../api/api_division.ts | 7 ++-- src/module/division_new/api/api_index.ts | 33 +++++++++++++++ .../division_new/api/get/getAllDivision.ts | 20 +++++++++ .../division_new/api/get/getOneDivision.ts | 41 +++++++++++++++++++ .../division_new/api/post/createDivision.ts | 29 +++++++++++++ .../division_new/api/post/deleteDivision.ts | 21 ++++++++++ .../division_new/api/post/updateDivision.ts | 24 +++++++++++ src/module/division_new/index.ts | 2 + 11 files changed, 182 insertions(+), 21 deletions(-) delete mode 100644 src/module/division/api/api_index.ts rename src/module/{division => division_new}/api/api_division.ts (53%) create mode 100644 src/module/division_new/api/api_index.ts create mode 100644 src/module/division_new/api/get/getAllDivision.ts create mode 100644 src/module/division_new/api/get/getOneDivision.ts create mode 100644 src/module/division_new/api/post/createDivision.ts create mode 100644 src/module/division_new/api/post/deleteDivision.ts create mode 100644 src/module/division_new/api/post/updateDivision.ts diff --git a/src/app/api/division/get/route.ts b/src/app/api/division/get/route.ts index 5f2c972..47e2177 100644 --- a/src/app/api/division/get/route.ts +++ b/src/app/api/division/get/route.ts @@ -1,4 +1,6 @@ -import { apiDivision } from "@/module/division/api/api_division"; -export async function GET(req: Request) { +import { apiDivision } from "@/module/division_new"; +import { NextRequest } from "next/server"; + +export async function GET(req: NextRequest) { return apiDivision(req, "GET") } \ No newline at end of file diff --git a/src/app/api/division/post/route.tsx b/src/app/api/division/post/route.tsx index dd75154..9db8415 100644 --- a/src/app/api/division/post/route.tsx +++ b/src/app/api/division/post/route.tsx @@ -1,4 +1,6 @@ -import { apiDivision } from "@/module/division/api/api_division"; -export async function POST(req: Request) { +import { apiDivision } from "@/module/division_new"; +import { NextRequest } from "next/server"; + +export async function POST(req: NextRequest) { return apiDivision(req, "POST") } \ No newline at end of file diff --git a/src/module/division/api/api_index.ts b/src/module/division/api/api_index.ts deleted file mode 100644 index 8177244..0000000 --- a/src/module/division/api/api_index.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { createProject } from "./post/createProject"; -import { listProject } from "./get/listProject"; -export const API_INDEX = [ - { - path: "create-project", - method: "POST", - bin: createProject, - }, - { - path: "list-project", - method: "GET", - bin: listProject, - }, -]; diff --git a/src/module/division/api/api_division.ts b/src/module/division_new/api/api_division.ts similarity index 53% rename from src/module/division/api/api_division.ts rename to src/module/division_new/api/api_division.ts index c6aaf37..0c2af00 100644 --- a/src/module/division/api/api_division.ts +++ b/src/module/division_new/api/api_division.ts @@ -1,10 +1,11 @@ -import { API_INDEX } from "./api_index"; +import { NextRequest } from "next/server"; +import { API_INDEX_DIVISION } from "./api_index"; type Method = "GET" | "POST"; -export async function apiDivision(req: Request, method: Method) { +export async function apiDivision(req: NextRequest, method: Method) { const { searchParams } = new URL(req.url); const path = searchParams.get("path"); - const act = API_INDEX.find((v) => v.path === path && v.method === method); + const act = API_INDEX_DIVISION.find((v) => v.path === path && v.method === method); if (!path) return Response.json({ message: "page not found" }, { status: 404 }); if (act) return act.bin(req); diff --git a/src/module/division_new/api/api_index.ts b/src/module/division_new/api/api_index.ts new file mode 100644 index 0000000..d934ac5 --- /dev/null +++ b/src/module/division_new/api/api_index.ts @@ -0,0 +1,33 @@ +import getAllDivision from "./get/getAllDivision"; +import getOneDivision from "./get/getOneDivision"; +import createDivision from "./post/createDivision"; +import deleteDivision from "./post/deleteDivision"; +import updateDivision from "./post/updateDivision"; + +export const API_INDEX_DIVISION = [ + { + path: "create-division", + method: "POST", + bin: createDivision, + }, + { + path: "update-division", + method: "POST", + bin: updateDivision, + }, + { + path: "delete-division", + method: "POST", + bin: deleteDivision, + }, + { + path: "get-all-division", + method: "GET", + bin: getAllDivision, + }, + { + path: "get-one-division", + method: "GET", + bin: getOneDivision, + }, +]; diff --git a/src/module/division_new/api/get/getAllDivision.ts b/src/module/division_new/api/get/getAllDivision.ts new file mode 100644 index 0000000..2f3d159 --- /dev/null +++ b/src/module/division_new/api/get/getAllDivision.ts @@ -0,0 +1,20 @@ +import { prisma } from "@/module/_global"; +import { NextRequest } from "next/server"; + +export default async function getAllDivision(req: NextRequest) { + try { + const searchParams = req.nextUrl.searchParams + const groupID = searchParams.get('active'); + const division = await prisma.division.findMany({ + where: { + isActive: true, + idGroup: String(groupID) + } + }) + + return Response.json(division); + } catch (error) { + console.error(error); + return Response.json({ success: false, message: "Internal Server Error" }, { status: 500 }); + } +} \ No newline at end of file diff --git a/src/module/division_new/api/get/getOneDivision.ts b/src/module/division_new/api/get/getOneDivision.ts new file mode 100644 index 0000000..0dcc7e9 --- /dev/null +++ b/src/module/division_new/api/get/getOneDivision.ts @@ -0,0 +1,41 @@ +import { prisma } from "@/module/_global"; +import { NextRequest } from "next/server"; + +export default async function getOneDivision(req: NextRequest) { + try { + const searchParams = req.nextUrl.searchParams + const id = searchParams.get('divisionID'); + const division = await prisma.division.findUnique({ + where: { + id: String(id), + }, + select: { + id: true, + name: true, + }, + }); + + const member = await prisma.divisionMember.findMany({ + where: { + idDivision: String(id), + }, + select: { + idUser: true, + isLeader: true + } + }) + + const allData = { + division: division, + member: member + } + return Response.json(allData); + } 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/division_new/api/post/createDivision.ts b/src/module/division_new/api/post/createDivision.ts new file mode 100644 index 0000000..6718cf0 --- /dev/null +++ b/src/module/division_new/api/post/createDivision.ts @@ -0,0 +1,29 @@ +import { prisma } from "@/module/_global"; + +export default async function createDivision(req: Request) { + try { + const data = await req.json(); + const insert = await prisma.division.create({ + data: { + name: data.name, + idVillage: data.idVillage, + idGroup: data.idGroup, + desc: data.desc, + createdBy: data.createdBy + }, + select: { + id: true + } + }) + + const insertMember = await prisma.divisionMember.createMany({ + data: data.member + }) + + return Response.json(insert, { status: 201 }); + + } catch (error) { + console.error(error); + return Response.json({ success: false, message: "Internal Server Error" }, { status: 500 }); + } +} \ No newline at end of file diff --git a/src/module/division_new/api/post/deleteDivision.ts b/src/module/division_new/api/post/deleteDivision.ts new file mode 100644 index 0000000..a65b63e --- /dev/null +++ b/src/module/division_new/api/post/deleteDivision.ts @@ -0,0 +1,21 @@ +import { prisma } from "@/module/_global"; + +export default async function deleteDivision(req: Request) { + try { + const data = await req.json(); + const update = await prisma.division.update({ + where: { + id: data.id, + }, + data: { + isActive: false, + }, + }); + } 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/division_new/api/post/updateDivision.ts b/src/module/division_new/api/post/updateDivision.ts new file mode 100644 index 0000000..671eaa9 --- /dev/null +++ b/src/module/division_new/api/post/updateDivision.ts @@ -0,0 +1,24 @@ +import { prisma } from "@/module/_global"; + +export default async function updateDivision(req: Request) { + try { + const data = await req.json() + + const update = await prisma.division.update({ + where: { + id: data.id + }, + data: { + name: data.name, + desc: data.desc + } + }) + + // belom update member nihhhh + + return Response.json({ success: true, message: "Sukses Update Position" }, { status: 200 }); + } 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/division_new/index.ts b/src/module/division_new/index.ts index a3afa92..2b71b50 100644 --- a/src/module/division_new/index.ts +++ b/src/module/division_new/index.ts @@ -16,6 +16,7 @@ import ViewCreateTaskDivision from "./_division_fitur/task/view/view_create_divi import ViewDetailDivisionTask from "./_division_fitur/task/view/view_detail_division_task"; import ViewDivisionTask from "./_division_fitur/task/view/view_division_task"; import ViewUpdateProgressDivisionTask from "./_division_fitur/task/view/view_update_progress_division_task"; +import { apiDivision } from "./api/api_division"; import CreateAdminDivision from "./components/create_admin_division"; import CreateUsers from "./components/create_users"; import ViewCreateAnggotaDivision from "./view/view_create_anggota_division"; @@ -55,3 +56,4 @@ export { ViewReportDivision }; export { ViewInformationDivision }; export { ViewEditDivision }; export { ViewCreateAnggotaDivision }; +export { apiDivision } From bd433bcf568a8e1ececbba26614d9a13aaeab728 Mon Sep 17 00:00:00 2001 From: amel Date: Wed, 31 Jul 2024 16:01:06 +0800 Subject: [PATCH 2/2] api discussion Deskripsi: - api discussion create, update, delete, get one, get all, add comment - update struktur database- - update respon division NO ISsues --- prisma/schema.prisma | 2 +- .../calender/create/page.tsx | 0 .../calender/history/page.tsx | 0 .../calender/page.tsx | 0 .../calender/update/page.tsx | 0 .../discussion/[id]/page.tsx | 0 .../discussion/create/page.tsx | 0 .../discussion/edit/[id]/page.tsx | 0 .../discussion/page.tsx | 0 .../document/page.tsx | 0 .../task/[id]/page.tsx | 0 .../task/create/page.tsx | 0 .../task/page.tsx | 0 .../task/update/[id]/page.tsx | 0 .../(fitur-division)/discussion/get/route.ts | 6 +++ .../(fitur-division)/discussion/post/route.ts | 6 +++ .../discussion/api/api_discussion.ts | 14 +++++++ .../discussion/api/api_index.ts | 39 +++++++++++++++++++ .../discussion/api/get/getAllDiscussion.ts | 20 ++++++++++ .../discussion/api/get/getOneDiscussion.ts | 34 ++++++++++++++++ .../api/post/createCommentDiscussion.ts | 19 +++++++++ .../discussion/api/post/createDiscussion.ts | 23 +++++++++++ .../discussion/api/post/deleteDiscussion.ts | 26 +++++++++++++ .../discussion/api/post/updateDiscussion.ts | 21 ++++++++++ .../division_new/api/get/getAllDivision.ts | 2 +- .../division_new/api/post/deleteDivision.ts | 6 +++ .../division_new/api/post/updateDivision.ts | 2 +- src/module/division_new/index.ts | 2 + 28 files changed, 219 insertions(+), 3 deletions(-) rename src/app/(application)/{(detail-division) => (fitur-division)}/calender/create/page.tsx (100%) rename src/app/(application)/{(detail-division) => (fitur-division)}/calender/history/page.tsx (100%) rename src/app/(application)/{(detail-division) => (fitur-division)}/calender/page.tsx (100%) rename src/app/(application)/{(detail-division) => (fitur-division)}/calender/update/page.tsx (100%) rename src/app/(application)/{(detail-division) => (fitur-division)}/discussion/[id]/page.tsx (100%) rename src/app/(application)/{(detail-division) => (fitur-division)}/discussion/create/page.tsx (100%) rename src/app/(application)/{(detail-division) => (fitur-division)}/discussion/edit/[id]/page.tsx (100%) rename src/app/(application)/{(detail-division) => (fitur-division)}/discussion/page.tsx (100%) rename src/app/(application)/{(detail-division) => (fitur-division)}/document/page.tsx (100%) rename src/app/(application)/{(detail-division) => (fitur-division)}/task/[id]/page.tsx (100%) rename src/app/(application)/{(detail-division) => (fitur-division)}/task/create/page.tsx (100%) rename src/app/(application)/{(detail-division) => (fitur-division)}/task/page.tsx (100%) rename src/app/(application)/{(detail-division) => (fitur-division)}/task/update/[id]/page.tsx (100%) create mode 100644 src/app/api/(fitur-division)/discussion/get/route.ts create mode 100644 src/app/api/(fitur-division)/discussion/post/route.ts create mode 100644 src/module/division_new/_division_fitur/discussion/api/api_discussion.ts create mode 100644 src/module/division_new/_division_fitur/discussion/api/api_index.ts create mode 100644 src/module/division_new/_division_fitur/discussion/api/get/getAllDiscussion.ts create mode 100644 src/module/division_new/_division_fitur/discussion/api/get/getOneDiscussion.ts create mode 100644 src/module/division_new/_division_fitur/discussion/api/post/createCommentDiscussion.ts create mode 100644 src/module/division_new/_division_fitur/discussion/api/post/createDiscussion.ts create mode 100644 src/module/division_new/_division_fitur/discussion/api/post/deleteDiscussion.ts create mode 100644 src/module/division_new/_division_fitur/discussion/api/post/updateDiscussion.ts diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 3131be4..91b0431 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -284,7 +284,7 @@ model DivisionDisscussion { id String @id @default(cuid()) Division Division @relation(fields: [idDivision], references: [id]) idDivision String - title String + title String? desc String @db.Text status Int @default(1) // 1 = open, 2 = close isActive Boolean @default(true) diff --git a/src/app/(application)/(detail-division)/calender/create/page.tsx b/src/app/(application)/(fitur-division)/calender/create/page.tsx similarity index 100% rename from src/app/(application)/(detail-division)/calender/create/page.tsx rename to src/app/(application)/(fitur-division)/calender/create/page.tsx diff --git a/src/app/(application)/(detail-division)/calender/history/page.tsx b/src/app/(application)/(fitur-division)/calender/history/page.tsx similarity index 100% rename from src/app/(application)/(detail-division)/calender/history/page.tsx rename to src/app/(application)/(fitur-division)/calender/history/page.tsx diff --git a/src/app/(application)/(detail-division)/calender/page.tsx b/src/app/(application)/(fitur-division)/calender/page.tsx similarity index 100% rename from src/app/(application)/(detail-division)/calender/page.tsx rename to src/app/(application)/(fitur-division)/calender/page.tsx diff --git a/src/app/(application)/(detail-division)/calender/update/page.tsx b/src/app/(application)/(fitur-division)/calender/update/page.tsx similarity index 100% rename from src/app/(application)/(detail-division)/calender/update/page.tsx rename to src/app/(application)/(fitur-division)/calender/update/page.tsx diff --git a/src/app/(application)/(detail-division)/discussion/[id]/page.tsx b/src/app/(application)/(fitur-division)/discussion/[id]/page.tsx similarity index 100% rename from src/app/(application)/(detail-division)/discussion/[id]/page.tsx rename to src/app/(application)/(fitur-division)/discussion/[id]/page.tsx diff --git a/src/app/(application)/(detail-division)/discussion/create/page.tsx b/src/app/(application)/(fitur-division)/discussion/create/page.tsx similarity index 100% rename from src/app/(application)/(detail-division)/discussion/create/page.tsx rename to src/app/(application)/(fitur-division)/discussion/create/page.tsx diff --git a/src/app/(application)/(detail-division)/discussion/edit/[id]/page.tsx b/src/app/(application)/(fitur-division)/discussion/edit/[id]/page.tsx similarity index 100% rename from src/app/(application)/(detail-division)/discussion/edit/[id]/page.tsx rename to src/app/(application)/(fitur-division)/discussion/edit/[id]/page.tsx diff --git a/src/app/(application)/(detail-division)/discussion/page.tsx b/src/app/(application)/(fitur-division)/discussion/page.tsx similarity index 100% rename from src/app/(application)/(detail-division)/discussion/page.tsx rename to src/app/(application)/(fitur-division)/discussion/page.tsx diff --git a/src/app/(application)/(detail-division)/document/page.tsx b/src/app/(application)/(fitur-division)/document/page.tsx similarity index 100% rename from src/app/(application)/(detail-division)/document/page.tsx rename to src/app/(application)/(fitur-division)/document/page.tsx diff --git a/src/app/(application)/(detail-division)/task/[id]/page.tsx b/src/app/(application)/(fitur-division)/task/[id]/page.tsx similarity index 100% rename from src/app/(application)/(detail-division)/task/[id]/page.tsx rename to src/app/(application)/(fitur-division)/task/[id]/page.tsx diff --git a/src/app/(application)/(detail-division)/task/create/page.tsx b/src/app/(application)/(fitur-division)/task/create/page.tsx similarity index 100% rename from src/app/(application)/(detail-division)/task/create/page.tsx rename to src/app/(application)/(fitur-division)/task/create/page.tsx diff --git a/src/app/(application)/(detail-division)/task/page.tsx b/src/app/(application)/(fitur-division)/task/page.tsx similarity index 100% rename from src/app/(application)/(detail-division)/task/page.tsx rename to src/app/(application)/(fitur-division)/task/page.tsx diff --git a/src/app/(application)/(detail-division)/task/update/[id]/page.tsx b/src/app/(application)/(fitur-division)/task/update/[id]/page.tsx similarity index 100% rename from src/app/(application)/(detail-division)/task/update/[id]/page.tsx rename to src/app/(application)/(fitur-division)/task/update/[id]/page.tsx diff --git a/src/app/api/(fitur-division)/discussion/get/route.ts b/src/app/api/(fitur-division)/discussion/get/route.ts new file mode 100644 index 0000000..f3ce008 --- /dev/null +++ b/src/app/api/(fitur-division)/discussion/get/route.ts @@ -0,0 +1,6 @@ +import { apiDiscussion } from "@/module/division_new"; +import { NextRequest } from "next/server"; + +export async function GET(req: NextRequest) { + return apiDiscussion(req, "GET") +} \ No newline at end of file diff --git a/src/app/api/(fitur-division)/discussion/post/route.ts b/src/app/api/(fitur-division)/discussion/post/route.ts new file mode 100644 index 0000000..e78a337 --- /dev/null +++ b/src/app/api/(fitur-division)/discussion/post/route.ts @@ -0,0 +1,6 @@ +import { apiDiscussion } from "@/module/division_new"; +import { NextRequest } from "next/server"; + +export async function POST(req: NextRequest) { + return apiDiscussion(req, "POST") +} \ No newline at end of file diff --git a/src/module/division_new/_division_fitur/discussion/api/api_discussion.ts b/src/module/division_new/_division_fitur/discussion/api/api_discussion.ts new file mode 100644 index 0000000..9a248e1 --- /dev/null +++ b/src/module/division_new/_division_fitur/discussion/api/api_discussion.ts @@ -0,0 +1,14 @@ +import { NextRequest } from "next/server"; +import { API_INDEX_DISCUSSION } from "./api_index"; +type Method = "GET" | "POST"; + +export async function apiDiscussion(req: NextRequest, method: Method) { + const { searchParams } = new URL(req.url); + const path = searchParams.get("path"); + const act = API_INDEX_DISCUSSION.find((v) => v.path === path && v.method === method); + if (!path) + return Response.json({ message: "page not found" }, { status: 404 }); + if (act) return act.bin(req); + + return Response.json({ message: "404" }); +} diff --git a/src/module/division_new/_division_fitur/discussion/api/api_index.ts b/src/module/division_new/_division_fitur/discussion/api/api_index.ts new file mode 100644 index 0000000..90ad955 --- /dev/null +++ b/src/module/division_new/_division_fitur/discussion/api/api_index.ts @@ -0,0 +1,39 @@ +import getAllDiscussion from "./get/getAllDiscussion"; +import getOneDiscussion from "./get/getOneDiscussion"; +import createCommentDiscussion from "./post/createCommentDiscussion"; +import createDiscussion from "./post/createDiscussion"; +import deleteDiscussion from "./post/deleteDiscussion"; +import updateDiscussion from "./post/updateDiscussion"; + +export const API_INDEX_DISCUSSION = [ + { + path: "get-all-discussion", + method: "GET", + bin: getAllDiscussion, + }, + { + path: "get-one-discussion", + method: "GET", + bin: getOneDiscussion, + }, + { + path: "create-discussion", + method: "POST", + bin: createDiscussion, + }, + { + path: "create-comment-discussion", + method: "POST", + bin: createCommentDiscussion, + }, + { + path: "update-discussion", + method: "POST", + bin: updateDiscussion, + }, + { + path: "delete-discussion", + method: "POST", + bin: deleteDiscussion, + }, +]; diff --git a/src/module/division_new/_division_fitur/discussion/api/get/getAllDiscussion.ts b/src/module/division_new/_division_fitur/discussion/api/get/getAllDiscussion.ts new file mode 100644 index 0000000..68538a1 --- /dev/null +++ b/src/module/division_new/_division_fitur/discussion/api/get/getAllDiscussion.ts @@ -0,0 +1,20 @@ +import { prisma } from "@/module/_global"; +import { NextRequest } from "next/server"; + +export default async function getAllDiscussion(req: NextRequest) { + try { + const searchParams = req.nextUrl.searchParams + const divisionID = searchParams.get('divisionID'); + const data = await prisma.divisionDisscussion.findMany({ + where: { + isActive: true, + idDivision: String(divisionID) + } + }) + + return Response.json(data); + } catch (error) { + console.error(error); + return Response.json({ success: false, message: "Internal Server Error" }, { status: 500 }); + } +} \ No newline at end of file diff --git a/src/module/division_new/_division_fitur/discussion/api/get/getOneDiscussion.ts b/src/module/division_new/_division_fitur/discussion/api/get/getOneDiscussion.ts new file mode 100644 index 0000000..d9abb3a --- /dev/null +++ b/src/module/division_new/_division_fitur/discussion/api/get/getOneDiscussion.ts @@ -0,0 +1,34 @@ +import { prisma } from "@/module/_global"; +import { NextRequest } from "next/server"; + +export default async function getOneDiscussion(req: NextRequest) { + try { + const searchParams = req.nextUrl.searchParams + const id = searchParams.get('id'); + const data = await prisma.divisionDisscussion.findUnique({ + where: { + id: String(id) + } + }) + + const comment = await prisma.divisionDisscussionComment.findMany({ + where: { + idDisscussion: String(id) + } + }) + + const allData = { + data: data, + comment: comment + } + + return Response.json(allData); + + } 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/division_new/_division_fitur/discussion/api/post/createCommentDiscussion.ts b/src/module/division_new/_division_fitur/discussion/api/post/createCommentDiscussion.ts new file mode 100644 index 0000000..fafe8b8 --- /dev/null +++ b/src/module/division_new/_division_fitur/discussion/api/post/createCommentDiscussion.ts @@ -0,0 +1,19 @@ +import { prisma } from "@/module/_global"; + +export default async function createCommentDiscussion(req: Request) { + try { + const data = await req.json() + const insert = await prisma.divisionDisscussionComment.create({ + data: { + idDisscussion: data.idDiscussion, + comment: data.comment, + createdBy: data.createdBy + } + }) + return Response.json(insert, { status: 201 }); + + } catch (error) { + console.error(error); + return Response.json({ success: false, message: "Internal Server Error" }, { status: 500 }); + } +} \ No newline at end of file diff --git a/src/module/division_new/_division_fitur/discussion/api/post/createDiscussion.ts b/src/module/division_new/_division_fitur/discussion/api/post/createDiscussion.ts new file mode 100644 index 0000000..596ff99 --- /dev/null +++ b/src/module/division_new/_division_fitur/discussion/api/post/createDiscussion.ts @@ -0,0 +1,23 @@ +import { prisma } from "@/module/_global"; + +export default async function createDiscussion(req: Request) { + try { + const data = await req.json(); + const insert = await prisma.divisionDisscussion.create({ + data: { + idDivision: data.idDivision, + desc: data.desc, + createdBy: data.createdBy + }, + select: { + id: true + } + }) + + return Response.json(insert, { status: 201 }); + + } catch (error) { + console.error(error); + return Response.json({ success: false, message: "Internal Server Error" }, { status: 500 }); + } +} \ No newline at end of file diff --git a/src/module/division_new/_division_fitur/discussion/api/post/deleteDiscussion.ts b/src/module/division_new/_division_fitur/discussion/api/post/deleteDiscussion.ts new file mode 100644 index 0000000..f2667a9 --- /dev/null +++ b/src/module/division_new/_division_fitur/discussion/api/post/deleteDiscussion.ts @@ -0,0 +1,26 @@ +import { prisma } from "@/module/_global"; + +export default async function deleteDiscussion(req: Request) { + try { + const data = await req.json() + const del = await prisma.divisionDisscussion.update({ + where: { + id: data.id + }, + data: { + isActive: false + } + }) + + return Response.json( + { success: true, message: "Sukses Delete Diskusi" }, + { status: 200 } + ); + } 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/division_new/_division_fitur/discussion/api/post/updateDiscussion.ts b/src/module/division_new/_division_fitur/discussion/api/post/updateDiscussion.ts new file mode 100644 index 0000000..9bd45e5 --- /dev/null +++ b/src/module/division_new/_division_fitur/discussion/api/post/updateDiscussion.ts @@ -0,0 +1,21 @@ +import { prisma } from "@/module/_global"; + +export default async function updateDiscussion(req: Request) { + try { + const data = await req.json() + + const update = await prisma.divisionDisscussion.update({ + where:{ + id: data.id + }, + data:{ + desc: data.desc, + } + }) + + return Response.json({ success: true, message: "Sukses Update Diskusi" }, { status: 200 }); + } 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/division_new/api/get/getAllDivision.ts b/src/module/division_new/api/get/getAllDivision.ts index 2f3d159..6645584 100644 --- a/src/module/division_new/api/get/getAllDivision.ts +++ b/src/module/division_new/api/get/getAllDivision.ts @@ -4,7 +4,7 @@ import { NextRequest } from "next/server"; export default async function getAllDivision(req: NextRequest) { try { const searchParams = req.nextUrl.searchParams - const groupID = searchParams.get('active'); + const groupID = searchParams.get('groupID'); const division = await prisma.division.findMany({ where: { isActive: true, diff --git a/src/module/division_new/api/post/deleteDivision.ts b/src/module/division_new/api/post/deleteDivision.ts index a65b63e..a74b5e9 100644 --- a/src/module/division_new/api/post/deleteDivision.ts +++ b/src/module/division_new/api/post/deleteDivision.ts @@ -11,6 +11,12 @@ export default async function deleteDivision(req: Request) { isActive: false, }, }); + + return Response.json( + { success: true, message: "Sukses Delete Division" }, + { status: 200 } + ); + } catch (error) { console.error(error); return Response.json( diff --git a/src/module/division_new/api/post/updateDivision.ts b/src/module/division_new/api/post/updateDivision.ts index 671eaa9..5603fc9 100644 --- a/src/module/division_new/api/post/updateDivision.ts +++ b/src/module/division_new/api/post/updateDivision.ts @@ -16,7 +16,7 @@ export default async function updateDivision(req: Request) { // belom update member nihhhh - return Response.json({ success: true, message: "Sukses Update Position" }, { status: 200 }); + return Response.json({ success: true, message: "Sukses Update Divisi" }, { status: 200 }); } catch (error) { console.error(error); return Response.json({ message: "Internal Server Error", success: false }, { status: 500 }); diff --git a/src/module/division_new/index.ts b/src/module/division_new/index.ts index 2b71b50..a376863 100644 --- a/src/module/division_new/index.ts +++ b/src/module/division_new/index.ts @@ -7,6 +7,7 @@ import ViewDetailEventDivision from "./_division_fitur/calender/view/view_detail import ViewDivisionCalender from "./_division_fitur/calender/view/view_division_calender"; import ViewHistoryDivisionCalender from "./_division_fitur/calender/view/view_history_division_calender"; import ViewUpdateDivisionCalender from "./_division_fitur/calender/view/view_update_division_calender"; +import { apiDiscussion } from "./_division_fitur/discussion/api/api_discussion"; import ViewCreateDiscussion from "./_division_fitur/discussion/view/view_create_discussion"; import ViewDetailDiscussion from "./_division_fitur/discussion/view/view_detail_discussion"; import ViewEditDiscussion from "./_division_fitur/discussion/view/view_edit_discussion"; @@ -57,3 +58,4 @@ export { ViewInformationDivision }; export { ViewEditDivision }; export { ViewCreateAnggotaDivision }; export { apiDivision } +export { apiDiscussion }