diff --git a/src/module/_global/bin/api_address.ts b/src/module/_global/bin/api_address.ts
index d37c800..b1f6efa 100644
--- a/src/module/_global/bin/api_address.ts
+++ b/src/module/_global/bin/api_address.ts
@@ -38,4 +38,5 @@ export const API_ADDRESS = {
// Division
"apiGetAllDivision": "/api/division/get?path=get-all-division",
+ "apiCreateDivision": "/api/division/post?path=create-division",
}
\ 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
index 6718cf0..10e57f1 100644
--- a/src/module/division_new/api/post/createDivision.ts
+++ b/src/module/division_new/api/post/createDivision.ts
@@ -1,26 +1,40 @@
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 data = await req.json();
- const insert = await prisma.division.create({
+ const sent = await req.json();
+ const user = await funGetUserByCookies();
+
+ const insertDivision = await prisma.division.create({
data: {
- name: data.name,
- idVillage: data.idVillage,
- idGroup: data.idGroup,
- desc: data.desc,
- createdBy: data.createdBy
+ 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: data.member
+ data: dataMember
})
- return Response.json(insert, { status: 201 });
+ revalidatePath("/division");
+
+ return Response.json({ success: true, message: "Sukses menambahkan data divisi" }, { status: 201 });
} catch (error) {
console.error(error);
diff --git a/src/module/division_new/components/create_admin_division.tsx b/src/module/division_new/components/create_admin_division.tsx
index 9dbdcc7..8c2569e 100644
--- a/src/module/division_new/components/create_admin_division.tsx
+++ b/src/module/division_new/components/create_admin_division.tsx
@@ -3,7 +3,7 @@ import NavbarAdminDivision from './ui/navbar_admin_division';
export default function CreateAdminDivision({ data }: { data: any }) {
return (
-
+ { }} />
);
}
diff --git a/src/module/division_new/components/create_division.tsx b/src/module/division_new/components/create_division.tsx
index ac2f501..28e3322 100644
--- a/src/module/division_new/components/create_division.tsx
+++ b/src/module/division_new/components/create_division.tsx
@@ -24,6 +24,7 @@ import { funGetUserByCookies } from "@/module/auth";
import CreateAdminDivision from "./create_admin_division";
import CreateUsers from "./create_users";
import NavbarCreateUsers from "./ui/navbar_create_users";
+import NavbarAdminDivision from "./ui/navbar_admin_division";
export default function CreateDivision() {
@@ -74,12 +75,30 @@ export default function CreateDivision() {
}
+ function onChooseGroup(val: any) {
+ member.set([])
+ setBody({ ...body, idGroup: val })
+ }
+
+
useShallowEffect(() => {
loadData();
}, []);
- if (isChooseAdmin) return
+ if (isChooseAdmin) return {
+ if (val) {
+ member.set([])
+ setBody({
+ ...body,
+ idGroup: "",
+ name: "",
+ desc: "",
+ })
+ }
+
+ setChooseAdmin(false)
+ }} />
if (isChooseAnggota) return { setChooseAnggota(false) }} />
@@ -101,8 +120,10 @@ export default function CreateDivision() {
label: pro.name
}))}
onChange={(val) => {
- setBody({ ...body, idGroup: val })
+ onChooseGroup(val)
}}
+
+ value={body.idGroup}
/>
)
}
@@ -112,9 +133,10 @@ export default function CreateDivision() {
size="md"
required
radius={40}
+ value={body.name}
onChange={(val) => { setBody({ ...body, name: val.target.value }) }}
/>
-