refactor: api divisi
Deskripsi: - folder manager api divisi No Issues
This commit is contained in:
@@ -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")
|
|
||||||
}
|
|
||||||
@@ -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")
|
|
||||||
}
|
|
||||||
@@ -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" });
|
|
||||||
}
|
|
||||||
@@ -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,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
@@ -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 });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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 }
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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 }
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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 });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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 }
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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 });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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 ViewDetailDivisionTask from "./_division_fitur/task/view/view_detail_division_task";
|
||||||
import ViewDivisionTask from "./_division_fitur/task/view/view_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 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 CreateAdminDivision from "./ui/create_admin_division";
|
||||||
import CreateUsers from "./ui/create_users";
|
import CreateUsers from "./ui/create_users";
|
||||||
import ListDivision from './ui/list_division';
|
import ListDivision from './ui/list_division';
|
||||||
@@ -55,7 +54,6 @@ export { ViewCreateDiscussion };
|
|||||||
export { ViewDetailDiscussion };
|
export { ViewDetailDiscussion };
|
||||||
export { ViewEditDiscussion };
|
export { ViewEditDiscussion };
|
||||||
export { ViewDocumentDivision };
|
export { ViewDocumentDivision };
|
||||||
export { apiDivision }
|
|
||||||
export { apiDiscussion }
|
export { apiDiscussion }
|
||||||
export type { IFormDivision, IFormMemberDivision, IFormFixDivision, IDataDivison, IDataMemberDivision }
|
export type { IFormDivision, IFormMemberDivision, IFormFixDivision, IDataDivison, IDataMemberDivision }
|
||||||
export { ListDivision }
|
export { ListDivision }
|
||||||
|
|||||||
@@ -35,37 +35,8 @@ export default function NavbarAdminDivision({ data, onSuccess }: { data: any, on
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
onSuccess(false)
|
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 (
|
return (
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ export default function DrawerListPosition({ onCreated }: { onCreated: (val: boo
|
|||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(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() {
|
async function onSubmit() {
|
||||||
try {
|
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({
|
const res = await funCreatePosition({
|
||||||
name: listData.name,
|
name: listData.name,
|
||||||
idGroup: listData.idGroup
|
idGroup: listData.idGroup
|
||||||
@@ -76,7 +53,7 @@ export default function DrawerListPosition({ onCreated }: { onCreated: (val: boo
|
|||||||
} else {
|
} else {
|
||||||
toast.error(res.message)
|
toast.error(res.message)
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
toast.error('Error')
|
toast.error('Error')
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user