diff --git a/src/app/api/new/investasi/berita/[id]/route.ts b/src/app/api/new/investasi/berita/[id]/route.ts index 32fc8fbc..72e1b787 100644 --- a/src/app/api/new/investasi/berita/[id]/route.ts +++ b/src/app/api/new/investasi/berita/[id]/route.ts @@ -68,18 +68,3 @@ export async function GET( ); } } - -async function main({ id }: { id: string }) { - const fixData = await prisma.beritaInvestasi.findMany({ - take: 10, - skip: 0, - orderBy: { - updatedAt: "desc", - }, - where: { - investasiId: id.trim(), - active: true, - }, - }); - console.log("data sebelum disconnect>>", fixData); -} diff --git a/src/app/api/user/all/route.ts b/src/app/api/user/all/route.ts new file mode 100644 index 00000000..0be0d443 --- /dev/null +++ b/src/app/api/user/all/route.ts @@ -0,0 +1,46 @@ +import { prisma } from "@/app/lib"; +import { NextResponse } from "next/server"; + +export async function GET(request: Request) { + if (request.method === "GET") { + try { + let fixData; + const { searchParams } = new URL(request.url); + const except_id = searchParams.get("except-id"); + + if (!except_id) { + fixData = await prisma.user.findMany({ + where: { + active: true, + }, + }); + } else { + fixData = await prisma.user.findMany({ + where: { + active: true, + masterUserRoleId: "1", + id: { + not: except_id, + }, + }, + }); + } + + return NextResponse.json({ + success: true, + message: "Berhasil mendapatkan data", + data: fixData, + }); + } catch (error) { + return NextResponse.json({ + success: false, + message: "Gagal mendapatkan data", + }); + } + } else { + return NextResponse.json({ + success: false, + message: "Method not allowed", + }); + } +} diff --git a/src/app/dev/donasi/create/create_kabar/[id]/page.tsx b/src/app/dev/donasi/create/create_kabar/[id]/page.tsx index a9404a35..6de2e1ce 100644 --- a/src/app/dev/donasi/create/create_kabar/[id]/page.tsx +++ b/src/app/dev/donasi/create/create_kabar/[id]/page.tsx @@ -1,10 +1,9 @@ import { Donasi_CreateKabar } from "@/app_modules/donasi"; -export default async function Page({ params }: { params: { id: string } }) { - const donasiId = params.id; +export default async function Page() { return ( <> - + ); } diff --git a/src/app/dev/notifikasi/donasi/page.tsx b/src/app/dev/notifikasi/donasi/page.tsx index ca9f64eb..e18a8246 100644 --- a/src/app/dev/notifikasi/donasi/page.tsx +++ b/src/app/dev/notifikasi/donasi/page.tsx @@ -1,9 +1,12 @@ +import { funGetUserIdByToken } from "@/app_modules/_global/fun/get"; import { Notifikasi_UiMain } from "@/app_modules/notifikasi/_ui"; export default async function Page() { + const userLoginId = await funGetUserIdByToken(); + return ( <> - + ); } diff --git a/src/app/dev/notifikasi/semua/page.tsx b/src/app/dev/notifikasi/semua/page.tsx index ca9f64eb..aca69d02 100644 --- a/src/app/dev/notifikasi/semua/page.tsx +++ b/src/app/dev/notifikasi/semua/page.tsx @@ -1,9 +1,11 @@ +import { funGetUserIdByToken } from "@/app_modules/_global/fun/get"; import { Notifikasi_UiMain } from "@/app_modules/notifikasi/_ui"; export default async function Page() { + const userLoginId = await funGetUserIdByToken(); return ( <> - + ); } diff --git a/src/app/lib/prisma.ts b/src/app/lib/prisma.ts index b3e6e417..b4f18d46 100644 --- a/src/app/lib/prisma.ts +++ b/src/app/lib/prisma.ts @@ -27,6 +27,4 @@ process.on("SIGINT", async () => { process.exit(0); }); -// console.log("==> Test prisma"); - export default prisma; diff --git a/src/app_modules/_global/lib/api_user.ts b/src/app_modules/_global/lib/api_user.ts index b21ad919..2503f6f8 100644 --- a/src/app_modules/_global/lib/api_user.ts +++ b/src/app_modules/_global/lib/api_user.ts @@ -11,7 +11,7 @@ export const apiGetUserId = async () => { }, }); - console.log("Ini di pemanggilan API",await response.json()); + console.log("Ini di pemanggilan API", await response.json()); if (!response.ok) return null; const data: Record = await response.json(); @@ -37,3 +37,24 @@ export const apiGetACtivationUser = async () => { }); return await response.json().catch(() => null); }; + +export const apiGetAllUserWithExceptId = async ({ + exceptId, +}: { + exceptId?: string; +}) => { + const { token } = await fetch("/api/get-cookie").then((res) => res.json()); + if (!token) return await token.json().catch(() => null); + + const isExceptId = exceptId ? `?except-id=${exceptId}` : ""; + + const response = await fetch(`/api/user/all${isExceptId}`, { + headers: { + "Content-Type": "application/json", + Accept: "application/json", + "Access-Control-Allow-Origin": "*", + Authorization: `Bearer ${token}`, + }, + }); + return await response.json().catch(() => null); +}; diff --git a/src/app_modules/admin/app_info/view/view_info_bank.tsx b/src/app_modules/admin/app_info/view/view_info_bank.tsx index 42ce3059..4c144ff4 100644 --- a/src/app_modules/admin/app_info/view/view_info_bank.tsx +++ b/src/app_modules/admin/app_info/view/view_info_bank.tsx @@ -18,17 +18,16 @@ import { Title, Tooltip, } from "@mantine/core"; -import { IconCirclePlus, IconEdit } from "@tabler/icons-react"; +import { IconEdit } from "@tabler/icons-react"; import _ from "lodash"; import { useState } from "react"; import { ComponentAdminGlobal_NotifikasiBerhasil } from "../../_admin_global/admin_notifikasi/notifikasi_berhasil"; import { ComponentAdminGlobal_NotifikasiGagal } from "../../_admin_global/admin_notifikasi/notifikasi_gagal"; +import { AdminAppInformation_ComponentTitlePageBank } from "../component"; import adminAppInformation_createBank from "../fun/create/fun_create_new_bank"; import adminAppInformation_getMasterBank from "../fun/master/get_list_bank"; import adminAppInformation_updateStatusBankById from "../fun/update/fun_udpate_status_bank"; import adminAppInformation_updateDataBankById from "../fun/update/fun_update_data_bank"; -import { ComponentAdminGlobal_TitlePage } from "../../_admin_global/_component"; -import { AdminAppInformation_ComponentTitlePageBank } from "../component"; export default function AdminAppInformation_ViewInfoBank({ listBank, diff --git a/src/app_modules/admin/donasi/detail/detail_review.tsx b/src/app_modules/admin/donasi/detail/detail_review.tsx index d4273c45..9dee4ad4 100644 --- a/src/app_modules/admin/donasi/detail/detail_review.tsx +++ b/src/app_modules/admin/donasi/detail/detail_review.tsx @@ -21,6 +21,9 @@ import { AdminDonasi_funUpdateStatusPublish } from "../fun/update/fun_status_pub import { AdminDonasi_funUpdateStatusReject } from "../fun/update/fun_status_reject"; import { donasi_checkStatus } from "@/app_modules/donasi/fun"; import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global"; +import adminNotifikasi_funCreateToAllUser from "../../notifikasi/fun/create/fun_create_notif_to_all_user"; +import { clientLogger } from "@/util/clientLogger"; +import { apiGetAllUserWithExceptId } from "@/app_modules/_global/lib/api_user"; export default function AdminDonasi_DetailReview({ dataReview, @@ -66,51 +69,88 @@ function ButtonOnHeader({ const [catatan, setCatatan] = useState(""); async function onPulish() { - const checkStatus = await donasi_checkStatus({ id: donasi.id }); + try { + setLoadingPublish(true); + const checkStatus = await donasi_checkStatus({ id: donasi.id }); - if (checkStatus) { - const res = await AdminDonasi_funUpdateStatusPublish(donasi.id, "1"); - if (res.status === 200) { - const dataNotifikasi: IRealtimeData = { - appId: res.data?.id as string, - status: res.data?.DonasiMaster_Status?.name as any, - userId: res.data?.authorId as any, - pesan: res.data?.title as any, - kategoriApp: "DONASI", - title: "Donasi publish", - }; + if (checkStatus) { + const res = await AdminDonasi_funUpdateStatusPublish(donasi.id, "1"); + if (res.status === 200) { + // ===== TO CREATEOR ====== // + const notifikasiToCreator: IRealtimeData = { + appId: res.data?.id as string, + status: res.data?.DonasiMaster_Status?.name as any, + userId: res.data?.authorId as any, + pesan: res.data?.title as any, + kategoriApp: "DONASI", + title: "Donasi publish", + }; - const notif = await adminNotifikasi_funCreateToUser({ - data: dataNotifikasi as any, - }); - - if (notif.status === 201) { - WibuRealtime.setData({ - type: "notification", - pushNotificationTo: "USER", - dataMessage: dataNotifikasi, + const notif = await adminNotifikasi_funCreateToUser({ + data: notifikasiToCreator as any, }); - WibuRealtime.setData({ - type: "trigger", - pushNotificationTo: "USER", - dataMessage: dataNotifikasi, + if (notif.status === 201) { + WibuRealtime.setData({ + type: "notification", + pushNotificationTo: "USER", + dataMessage: notifikasiToCreator, + }); + + WibuRealtime.setData({ + type: "trigger", + pushNotificationTo: "USER", + dataMessage: notifikasiToCreator, + }); + } + + // ===== TO CREATEOR ====== // + + // TO ALL USER + const notificationToAll = await adminNotifikasi_funCreateToAllUser({ + data: res.data as any, + authorId: donasi.authorId, }); + if (notificationToAll.status === 201) { + const dataUser = notificationToAll.data; + for (let i of dataUser as any) { + const dataNotifikasiToAll: IRealtimeData = { + appId: res.data?.id as string, + status: res.data?.DonasiMaster_Status?.name as any, + userId: i.id as any, + pesan: res.data?.title as any, + kategoriApp: "DONASI", + title: "Donasi baru terpublish", + }; + + + WibuRealtime.setData({ + type: "notification", + pushNotificationTo: "USER", + dataMessage: dataNotifikasiToAll, + }); + } + } + const newData = await AdminDonasi_getOneById(donasi?.id); setData(newData); ComponentAdminGlobal_NotifikasiBerhasil( "Berhasil Mengubah Status Donasi" ); - setLoadingPublish(true); + } else { + setLoadingPublish(false); + ComponentAdminGlobal_NotifikasiPeringatan( + "Gagal Mengubah Status Donasi" + ); } } else { - ComponentAdminGlobal_NotifikasiPeringatan( - "Gagal Mengubah Status Donasi" - ); + setLoadingPublish(false); + ComponentGlobal_NotifikasiPeringatan("Status donasi telah diubah user"); } - } else { - ComponentGlobal_NotifikasiPeringatan("Status donasi telah diubah user"); + } catch (error) { + setLoadingPublish(false); + clientLogger.error("Error to published donasi", error); } } @@ -170,6 +210,8 @@ function ButtonOnHeader({ {donasi.donasiMaster_StatusDonasiId === "2" ? (