diff --git a/src/app/api/donasi/[id]/route.ts b/src/app/api/donasi/[id]/route.ts new file mode 100644 index 00000000..3d5f7f47 --- /dev/null +++ b/src/app/api/donasi/[id]/route.ts @@ -0,0 +1,88 @@ +import { prisma } from "@/lib"; +import { NextResponse } from "next/server"; +export const dynamic = "force-dynamic"; + +// GET ONE DATA DONASI +export async function GET( + request: Request, + context: { params: { id: string } } +) { + try { + let dataFix; + const { id } = context.params; + const { searchParams } = new URL(request.url); + const kategori = searchParams.get("cat"); + + if (kategori == "semua") { + dataFix = await prisma.donasi.findFirst({ + where: { + id: id, + }, + include: { + Author: true, + imageDonasi: true, + CeritaDonasi: true, + DonasiMaster_Ketegori: true, + DonasiMaster_Durasi: true, + DonasiMaster_Status: true, + Donasi_Invoice: true, + Donasi_Kabar: true, + Donasi_PencairanDana: true, + }, + }); + } else if (kategori == "count") { + dataFix = await prisma.donasi_Invoice.count({ + where: { + donasiId: id, + donasiMaster_StatusInvoiceId: { + equals: "1", + }, + }, + }); + } else { + let tampil; + if (kategori == "author") { + tampil = { + authorId: true, + Author: { + select: { + username: true, + }, + }, + }; + } else if (kategori == "cerita") { + tampil = { + id: true, + createdAt: true, + CeritaDonasi: { + select: { + cerita: true, + }, + }, + }; + } + + dataFix = await prisma.donasi.findFirst({ + where: { + id: id, + }, + select: tampil, + }); + } + + return NextResponse.json( + { success: true, message: "Berhasil mendapatkan data", data: dataFix }, + { status: 200 } + ); + } catch (error) { + console.error(error); + return NextResponse.json( + { + success: false, + message: "Gagal mendapatkan data, coba lagi nanti ", + reason: (error as Error).message, + }, + { status: 500 } + ); + } +} diff --git a/src/app/api/donasi/[id]/temporary-create/route.ts b/src/app/api/donasi/[id]/temporary-create/route.ts new file mode 100644 index 00000000..0c286ad6 --- /dev/null +++ b/src/app/api/donasi/[id]/temporary-create/route.ts @@ -0,0 +1,28 @@ +import { NextResponse } from "next/server"; +import { prisma } from "@/lib"; + +export async function GET( + request: Request, + { params }: { params: { id: string } } +) { + try { + const { id } = params; + const data = await prisma.donasi_TemporaryCreate.findFirst({ + where: { + id: id, + }, + }); + + return NextResponse.json({ + success: true, + message: "Data berhasil diambil", + data: data, + }); + } catch (error) { + return NextResponse.json({ + success: false, + message: "Terjadi kesalahan saat mengambil data", + reason: error as Error, + }); + } +} diff --git a/src/app/dev/(user)/donasi/create/cerita_penggalang/[id]/page.tsx b/src/app/dev/(user)/donasi/create/cerita_penggalang/[id]/page.tsx index 18757e91..b02abb33 100644 --- a/src/app/dev/(user)/donasi/create/cerita_penggalang/[id]/page.tsx +++ b/src/app/dev/(user)/donasi/create/cerita_penggalang/[id]/page.tsx @@ -1,17 +1,9 @@ -import { funGetUserIdByToken } from "@/app_modules/_global/fun/get"; import { CreateCeritaPenggalangDonasi } from "@/app_modules/donasi"; -import { Donasi_getTemporaryCreate } from "@/app_modules/donasi/fun/get/get_temporary_create"; - -export default async function Page({ params }: { params: { id: string } }) { - const getTemporaryCreate = await Donasi_getTemporaryCreate(params.id); - const userLoginId = await funGetUserIdByToken(); +export default async function Page() { return ( <> - + ); } diff --git a/src/app/dev/(user)/donasi/detail/draft/[id]/page.tsx b/src/app/dev/(user)/donasi/detail/draft/[id]/page.tsx index c251cc42..0003b80e 100644 --- a/src/app/dev/(user)/donasi/detail/draft/[id]/page.tsx +++ b/src/app/dev/(user)/donasi/detail/draft/[id]/page.tsx @@ -1,14 +1,9 @@ import { DetailDraftDonasi } from "@/app_modules/donasi"; -import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id"; - -export default async function Page({ params }: { params: { id: string } }) { - const donasiId = params.id - const dataDonasi = await Donasi_getOneById(donasiId); - +export default async function Page() { return ( <> - + ); } diff --git a/src/app/dev/(user)/donasi/detail/review/[id]/page.tsx b/src/app/dev/(user)/donasi/detail/review/[id]/page.tsx index c7a4279b..8d9d7cbf 100644 --- a/src/app/dev/(user)/donasi/detail/review/[id]/page.tsx +++ b/src/app/dev/(user)/donasi/detail/review/[id]/page.tsx @@ -1,12 +1,9 @@ import { DetailReviewDonasi } from "@/app_modules/donasi"; -import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id"; - -export default async function Page({ params }: { params: { id: string } }) { - const dataDonasi = await Donasi_getOneById(params.id); +export default async function Page() { return ( <> - + ); } diff --git a/src/app_modules/admin/_components_v3/comp_button_user_circle.tsx b/src/app_modules/admin/_components_v3/comp_button_user_circle.tsx index e2073b65..bedb001a 100644 --- a/src/app_modules/admin/_components_v3/comp_button_user_circle.tsx +++ b/src/app_modules/admin/_components_v3/comp_button_user_circle.tsx @@ -245,7 +245,7 @@ export function Admin_V3_ComponentButtonUserCircle({ color="yellow" processing - label={{countNotifikasi}} + label={{countNotifikasi ? countNotifikasi : ""}} > @@ -284,7 +284,7 @@ export function Admin_V3_ComponentButtonUserCircle({ {countNotifikasi}} + label={{countNotifikasi ? countNotifikasi : ""}} > diff --git a/src/app_modules/donasi/component/detail_main/cerita_penggalang.tsx b/src/app_modules/donasi/component/detail_main/cerita_penggalang.tsx index 6a4c9512..ecd25637 100644 --- a/src/app_modules/donasi/component/detail_main/cerita_penggalang.tsx +++ b/src/app_modules/donasi/component/detail_main/cerita_penggalang.tsx @@ -13,7 +13,6 @@ import { Box, } from "@mantine/core"; import { IconCircleChevronRight } from "@tabler/icons-react"; -import moment from "moment"; import { useState } from "react"; import { AccentColor, @@ -22,6 +21,8 @@ import { import ComponentGlobal_Loader from "@/app_modules/_global/component/loader"; import { Comp_V3_SetInnerHTMLWithStiker } from "@/app_modules/_global/component/new/comp_V3_set_html_with_stiker"; import { funReplaceHtml } from "@/app_modules/_global/fun/fun_replace_html"; +import moment from "moment"; +import "moment/locale/id"; export default function ComponentDonasi_CeritaPenggalangMain({ donasi, @@ -51,9 +52,7 @@ export default function ComponentDonasi_CeritaPenggalangMain({ - {new Intl.DateTimeFormat("id-ID", { dateStyle: "full" }).format( - donasi?.createdAt - )} + {moment(donasi?.createdAt).format("DD MMM YYYY")} ( + null + ); const [file, setFile] = useState(null); const [img, setImg] = useState(); + const [userLoginId, setUserLoginId] = useState(null); + + useShallowEffect(() => { + handleGetUserId(); + handleGetTemporaryCreate(); + }, []); + + async function handleGetUserId() { + try { + const response = await apiNewGetUserIdByToken(); + + if (response) { + setUserLoginId(response.userId); + } + } catch (error) { + console.error("Error get data detail", error); + } + } + + async function handleGetTemporaryCreate() { + try { + const response = await apiGetTemporaryCreate({ id: id as string }); + + if (response && response.success) { + setTemporary(response.data); + } else { + console.log("response temporary create", response.message); + } + } catch (error) { + console.error("Error get temporary create", error); + } + } async function onCreate() { if (_.values(data).includes("")) return ComponentGlobal_NotifikasiPeringatan("Lengkapin Data"); const body = { - id: temporary.id, - title: temporary.title, - target: temporary.target, - donasiMaster_KategoriId: temporary.donasiMaster_KategoriId, - donasiMaster_DurasiId: temporary.donasiMaster_DurasiId, - authorId: userId, + id: temporary?.id, + title: temporary?.title, + target: temporary?.target, + donasiMaster_KategoriId: temporary?.donasiMaster_KategoriId, + donasiMaster_DurasiId: temporary?.donasiMaster_DurasiId, + authorId: userLoginId as string, namaBank: data.namaBank, rekening: data.rekening, - imageId: temporary.imageId, + imageId: temporary?.imageId, CeritaDonasi: { pembukaan: data.pembukaan, cerita: data.cerita, @@ -139,9 +171,12 @@ export default function CreateCeritaPenggalangDonasi({ clientLogger.error("Error create cerita donasi", error); } } + + if (!temporary) return ; + return ( <> - + diff --git a/src/app_modules/donasi/create/create_donasi_new.tsx b/src/app_modules/donasi/create/create_donasi_new.tsx index fd894876..e0495585 100644 --- a/src/app_modules/donasi/create/create_donasi_new.tsx +++ b/src/app_modules/donasi/create/create_donasi_new.tsx @@ -116,7 +116,7 @@ export default function CreateDonasiNew() { return ( <> - +