upd: divisi

Deskripsi:
- realtime create divisi

- fix list anggota klo bukan supadmin

No Issues
This commit is contained in:
amel
2024-10-02 12:22:17 +08:00
parent 2af2587ae4
commit 8d389bf4de
3 changed files with 20 additions and 5 deletions

View File

@@ -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 });

View File

@@ -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

View File

@@ -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<string[]>([]);
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)