From 8d389bf4de5af259305839e849075b49317d23bd Mon Sep 17 00:00:00 2001 From: amel Date: Wed, 2 Oct 2024 12:22:17 +0800 Subject: [PATCH] upd: divisi Deskripsi: - realtime create divisi - fix list anggota klo bukan supadmin No Issues --- src/app/api/division/route.ts | 13 +++++++++++-- src/app/api/user/route.ts | 3 ++- .../division_new/ui/navbar_admin_division.tsx | 9 +++++++-- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/app/api/division/route.ts b/src/app/api/division/route.ts index 5a7e8c4..28528ba 100644 --- a/src/app/api/division/route.ts +++ b/src/app/api/division/route.ts @@ -122,11 +122,20 @@ export async function POST(request: Request) { const userRoleLogin = user.idUserRole const sent = (await request.json()) + let fixGroup + if (sent.data.idGroup == "null" || sent.data.idGroup == undefined || sent.data.idGroup == "") { + fixGroup = user.idGroup + } else { + fixGroup = sent.data.idGroup + } + + + const data = await prisma.division.create({ data: { name: sent.data.name, idVillage: String(user.idVillage), - idGroup: sent.data.idGroup, + idGroup: fixGroup, desc: sent.data.desc, createdBy: String(user.id) }, @@ -214,7 +223,7 @@ export async function POST(request: Request) { // create log user const log = await createLogUser({ act: 'CREATE', desc: 'User membuat data divisi', table: 'division', data: data.id }) - return NextResponse.json({ success: true, message: "Berhasil menambahkan divisi", data, }, { status: 200 }); + return NextResponse.json({ success: true, message: "Berhasil menambahkan divisi", notif: dataNotif, }, { status: 200 }); } catch (error) { console.error(error); return NextResponse.json({ success: false, message: "Gagal menambahkan divisi, coba lagi nanti", reason: (error as Error).message, }, { status: 500 }); diff --git a/src/app/api/user/route.ts b/src/app/api/user/route.ts index 0870016..6fed7bf 100644 --- a/src/app/api/user/route.ts +++ b/src/app/api/user/route.ts @@ -20,7 +20,8 @@ export async function GET(request: Request) { if (user.id == undefined) { return NextResponse.json({ success: false, message: "Anda harus login untuk mengakses ini" }, { status: 401 }); } - if (idGroup == "null" || idGroup == undefined) { + + if (idGroup == "null" || idGroup == undefined || idGroup == "") { fixGroup = user.idGroup } else { fixGroup = idGroup diff --git a/src/module/division_new/ui/navbar_admin_division.tsx b/src/module/division_new/ui/navbar_admin_division.tsx index 8ef22ec..09e8bc4 100644 --- a/src/module/division_new/ui/navbar_admin_division.tsx +++ b/src/module/division_new/ui/navbar_admin_division.tsx @@ -1,5 +1,5 @@ "use client" -import { LayoutNavbarNew, TEMA } from '@/module/_global'; +import { keyWibu, LayoutNavbarNew, TEMA } from '@/module/_global'; import { useHookstate } from '@hookstate/core'; import { ActionIcon, Avatar, Box, Button, Checkbox, Divider, Flex, Grid, Group, rem, Stack, Text, TextInput } from '@mantine/core'; import { useRouter } from 'next/navigation'; @@ -9,6 +9,7 @@ import toast from 'react-hot-toast'; import { globalMemberDivision } from '../lib/val_division'; import { funCreateDivision } from '../lib/api_division'; import { IFormMemberDivision } from '../lib/type_division'; +import { useWibuRealtime } from 'wibu-realtime'; export default function NavbarAdminDivision({ data, onSuccess }: { data: any, onSuccess: (val: any) => void }) { const router = useRouter() @@ -16,6 +17,10 @@ export default function NavbarAdminDivision({ data, onSuccess }: { data: any, on const memberValue = member.get() as IFormMemberDivision[] const [value, setValue] = useState([]); const tema = useHookstate(TEMA) + const [dataRealTime, setDataRealtime] = useWibuRealtime({ + WIBU_REALTIME_TOKEN: keyWibu, + project: "sdm" + }) async function onSubmit() { if (value.length === 0) { @@ -24,8 +29,8 @@ export default function NavbarAdminDivision({ data, onSuccess }: { data: any, on try { const response = await funCreateDivision({ data: data, member: memberValue, admin: value }) - if (response.success) { + setDataRealtime(response.notif) toast.success(response.message); router.push("/division") onSuccess(true)