From c3a92f7898b04803c27b2d7e1246c2b7ee47f38a Mon Sep 17 00:00:00 2001 From: amel Date: Tue, 13 Aug 2024 10:42:59 +0800 Subject: [PATCH] refactor: api divisi Deskripsi: - folder manager api divisi No Issues --- src/app/api/division/get/route.ts | 7 -- src/app/api/division/post/route.tsx | 6 -- src/module/division_new/api/api_division.ts | 14 --- src/module/division_new/api/api_index.ts | 39 --------- .../division_new/api/get/getAllDivision.ts | 30 ------- .../api/get/getOneDetailDivision.ts | 87 ------------------- .../division_new/api/get/getOneDivision.ts | 41 --------- .../division_new/api/post/createDivision.ts | 43 --------- .../division_new/api/post/deleteDivision.ts | 27 ------ .../division_new/api/post/updateDivision.ts | 24 ----- src/module/division_new/index.ts | 2 - .../division_new/ui/navbar_admin_division.tsx | 31 +------ .../position/ui/drawer_list_position.tsx | 27 +----- 13 files changed, 3 insertions(+), 375 deletions(-) delete mode 100644 src/app/api/division/get/route.ts delete mode 100644 src/app/api/division/post/route.tsx delete mode 100644 src/module/division_new/api/api_division.ts delete mode 100644 src/module/division_new/api/api_index.ts delete mode 100644 src/module/division_new/api/get/getAllDivision.ts delete mode 100644 src/module/division_new/api/get/getOneDetailDivision.ts delete mode 100644 src/module/division_new/api/get/getOneDivision.ts delete mode 100644 src/module/division_new/api/post/createDivision.ts delete mode 100644 src/module/division_new/api/post/deleteDivision.ts delete 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 deleted file mode 100644 index 59135f9..0000000 --- a/src/app/api/division/get/route.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { apiDivision } from "@/module/division_new"; -import { NextRequest } from "next/server"; - -export const dynamic = 'force-dynamic' -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 deleted file mode 100644 index 9db8415..0000000 --- a/src/app/api/division/post/route.tsx +++ /dev/null @@ -1,6 +0,0 @@ -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_new/api/api_division.ts b/src/module/division_new/api/api_division.ts deleted file mode 100644 index 0c2af00..0000000 --- a/src/module/division_new/api/api_division.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { NextRequest } from "next/server"; -import { API_INDEX_DIVISION } from "./api_index"; -type Method = "GET" | "POST"; - -export async function apiDivision(req: NextRequest, method: Method) { - const { searchParams } = new URL(req.url); - const path = searchParams.get("path"); - 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); - - return Response.json({ message: "404" }); -} diff --git a/src/module/division_new/api/api_index.ts b/src/module/division_new/api/api_index.ts deleted file mode 100644 index 6e5225d..0000000 --- a/src/module/division_new/api/api_index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import getAllDivision from "./get/getAllDivision"; -import getOneDivision from "./get/getOneDivision"; -import getOneDetailDivision from "./get/getOneDetailDivision"; -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, - }, - { - path: "get-one-detail-division", - method: "GET", - bin: getOneDetailDivision, - }, -]; diff --git a/src/module/division_new/api/get/getAllDivision.ts b/src/module/division_new/api/get/getAllDivision.ts deleted file mode 100644 index 53c13e4..0000000 --- a/src/module/division_new/api/get/getAllDivision.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { prisma } from "@/module/_global"; -import { funGetUserByCookies } from "@/module/auth"; -import { NextRequest } from "next/server"; - -export default async function getAllDivision(req: NextRequest) { - try { - let grup - const user = await funGetUserByCookies() - const searchParams = req.nextUrl.searchParams - let groupID = searchParams.get('groupID'); - if (groupID == null || groupID == undefined) { - grup = user.idGroup - } else { - grup = groupID - } - - const division = await prisma.division.findMany({ - where: { - isActive: true, - idGroup: grup - } - }) - - - 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/getOneDetailDivision.ts b/src/module/division_new/api/get/getOneDetailDivision.ts deleted file mode 100644 index 806a901..0000000 --- a/src/module/division_new/api/get/getOneDetailDivision.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { prisma } from '@/module/_global'; -import { NextRequest } from "next/server"; - -export const dynamic = 'force-dynamic' -export default async function getOneDetailDivision(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 tugas = await prisma.divisionProject.count({ - where: { - idDivision: String(id), - status: { - lte: 1 - }, - isActive: true - } - }) - - const dokumen = await prisma.divisionDocumentFolderFile.count({ - where: { - idDivision: String(id), - isActive: true, - category: "FILE" - } - }) - - const diskusi = await prisma.divisionDisscussion.count({ - where: { - idDivision: String(id), - isActive: true, - status: 1 - } - }) - - const kalender = await prisma.divisionCalendar.count({ - where: { - idDivision: String(id), - isActive: true, - dateStart: { - lte: new Date() - } - } - }) - - const allData = { - // division: division, - division: { name: name }, - jumlah: { - tugas: 1, - dokumen: dokumen, - diskusi: diskusi, - kalender: kalender - }, - 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/get/getOneDivision.ts b/src/module/division_new/api/get/getOneDivision.ts deleted file mode 100644 index 0dcc7e9..0000000 --- a/src/module/division_new/api/get/getOneDivision.ts +++ /dev/null @@ -1,41 +0,0 @@ -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 deleted file mode 100644 index 10e57f1..0000000 --- a/src/module/division_new/api/post/createDivision.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { prisma } from "@/module/_global"; -import { funGetUserByCookies } from "@/module/auth"; -import _ from "lodash"; -import { revalidatePath } from "next/cache"; - -export default async function createDivision(req: Request) { - try { - const sent = await req.json(); - const user = await funGetUserByCookies(); - - const insertDivision = await prisma.division.create({ - data: { - name: sent.data.name, - idVillage: String(user.idVillage), - idGroup: sent.data.idGroup, - desc: sent.data.desc, - createdBy: String(user.id) - }, - select: { - id: true - } - }) - - const dataMember = sent.member.map((v: any) => ({ - ..._.omit(v, ["isActive", "nik", "name", "phone", "email", "gender", "group", "position"]), - idUser: v.id, - idDivision: insertDivision.id, - isAdmin: sent.admin.some((i: any) => i == v.id) - })) - - const insertMember = await prisma.divisionMember.createMany({ - data: dataMember - }) - - revalidatePath("/division"); - - return Response.json({ success: true, message: "Sukses menambahkan data divisi" }, { 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 deleted file mode 100644 index a74b5e9..0000000 --- a/src/module/division_new/api/post/deleteDivision.ts +++ /dev/null @@ -1,27 +0,0 @@ -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, - }, - }); - - return Response.json( - { success: true, message: "Sukses Delete Division" }, - { 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/post/updateDivision.ts b/src/module/division_new/api/post/updateDivision.ts deleted file mode 100644 index 5603fc9..0000000 --- a/src/module/division_new/api/post/updateDivision.ts +++ /dev/null @@ -1,24 +0,0 @@ -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 Divisi" }, { 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 8c60be3..cb090e6 100644 --- a/src/module/division_new/index.ts +++ b/src/module/division_new/index.ts @@ -18,7 +18,6 @@ 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 "./ui/create_admin_division"; import CreateUsers from "./ui/create_users"; import ListDivision from './ui/list_division'; @@ -55,7 +54,6 @@ export { ViewCreateDiscussion }; export { ViewDetailDiscussion }; export { ViewEditDiscussion }; export { ViewDocumentDivision }; -export { apiDivision } export { apiDiscussion } export type { IFormDivision, IFormMemberDivision, IFormFixDivision, IDataDivison, IDataMemberDivision } export { ListDivision } diff --git a/src/module/division_new/ui/navbar_admin_division.tsx b/src/module/division_new/ui/navbar_admin_division.tsx index dcd506b..864b876 100644 --- a/src/module/division_new/ui/navbar_admin_division.tsx +++ b/src/module/division_new/ui/navbar_admin_division.tsx @@ -35,37 +35,8 @@ export default function NavbarAdminDivision({ data, onSuccess }: { data: any, on } catch (error) { console.log(error); onSuccess(false) - toast.error("Gagal menambahkan grup, coba lagi nanti"); + toast.error("Gagal menambahkan divisi, coba lagi nanti"); } - - - - // try { - // const res = await fetch(API_ADDRESS.apiCreateDivision, { - // method: 'POST', - // headers: { - // 'Content-Type': 'application/json' - // }, - // body: JSON.stringify({ - // data: data, - // member: member.get(), - // admin: value - // }) - // }) - - // const errorData = await res.json(); - - // if (res.status == 201) { - // toast.success('Sukses! data tersimpan') - // onSuccess(true) - // } else { - // toast.error(errorData.message); - // onSuccess(false) - // } - // } catch (error) { - // toast.error('Error') - // onSuccess(false) - // } } return ( diff --git a/src/module/position/ui/drawer_list_position.tsx b/src/module/position/ui/drawer_list_position.tsx index 9859ae8..0ca241a 100644 --- a/src/module/position/ui/drawer_list_position.tsx +++ b/src/module/position/ui/drawer_list_position.tsx @@ -30,7 +30,7 @@ export default function DrawerListPosition({ onCreated }: { onCreated: (val: boo } } catch (error) { console.error(error) - toast.error("Gagal mendapatkan grup, coba lagi nanti"); + toast.error("Gagal mendapatkan jabatan, coba lagi nanti"); } } @@ -41,29 +41,6 @@ export default function DrawerListPosition({ onCreated }: { onCreated: (val: boo async function onSubmit() { try { - // const res = await fetch(API_ADDRESS.apiCreatePosition, { - // method: 'POST', - // headers: { - // 'Content-Type': 'application/json' - // }, - // body: JSON.stringify({ - // name: listData.name, - // idGroup: listData.idGroup - // }) - // }) - - // if (!res.ok) { - // const errorData = await res.json(); - // if (errorData.message === "Position sudah ada") { - // toast.error('Gagal! Position sudah ada'); - // } else { - // toast.error('Error'); - // } - // } else { - // setOpenDrawerGroup(false) - // toast.success('Sukses! data tersimpan') - // } - // onCreated(true) const res = await funCreatePosition({ name: listData.name, idGroup: listData.idGroup @@ -76,7 +53,7 @@ export default function DrawerListPosition({ onCreated }: { onCreated: (val: boo } else { toast.error(res.message) } - + } catch (error) { toast.error('Error') }