fix: donasi

deskripsi:
- perubahan metode pengambilan data dari use server menjadi API:
src/app/api/donasi/[id]/pencairan-dana/route.ts
src/app/api/donasi/[id]/penggalang-dana/route.ts
src/app/dev/(user)/donasi/pencairan_dana/[id]/page.tsx
src/app/dev/(user)/donasi/penggalang_dana/[id]/page.tsx
src/app_modules/admin/donasi/detail/publish/pencairan_dana.tsx
src/app_modules/donasi/component/card_view/box_informasi_pencarian_dana.tsx
src/app_modules/donasi/component/card_view/box_pencairan_dana.tsx
src/app_modules/donasi/component/card_view/card_pencairan_dana.tsx
src/app_modules/donasi/detail/detail_main/pencairan_dana/index.tsx
src/app_modules/donasi/detail/detail_main/penggalang_dana/index.tsx
src/app_modules/donasi/lib/api_donasi.ts

No Issue
This commit is contained in:
2025-06-10 10:21:39 +08:00
parent 4fdfb6f4b0
commit 9c5f0053b6
11 changed files with 455 additions and 196 deletions

View File

@@ -0,0 +1,52 @@
import { NextResponse } from "next/server";
import { prisma } from "@/lib";
export const dynamic = "force-dynamic";
export async function GET(
request: Request,
{ params }: { params: { id: string } }
) {
try {
let fixData;
const { id } = params;
const { searchParams } = new URL(request.url);
const page = Number(searchParams.get("page"));
const takeData = 3;
const skipData = page * takeData - takeData;
if (!page) {
fixData = await prisma.donasi_PencairanDana.findMany({
orderBy: {
createdAt: "asc",
},
where: {
donasiId: id,
},
});
} else {
fixData = await prisma.donasi_PencairanDana.findMany({
take: takeData,
skip: skipData,
orderBy: {
createdAt: "asc",
},
where: {
donasiId: id,
},
});
}
return NextResponse.json({
success: true,
message: "Data berhasil diambil",
data: fixData,
});
} catch (error) {
return NextResponse.json({
success: false,
message: "Terjadi kesalahan saat mengambil data",
reason: error as Error,
});
}
}

View File

@@ -0,0 +1,73 @@
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.user.findFirst({
where: {
id: id,
},
select: {
id: true,
username: true,
nomor: true,
Profile: {
select: {
id: true,
name: true,
email: true,
imageId: true,
},
},
Donasi: {
orderBy: {
createdAt: "desc",
},
where: {
donasiMaster_StatusDonasiId: "1",
},
select: {
id: true,
title: true,
target: true,
active: true,
createdAt: true,
updatedAt: true,
publishTime: true,
catatan: true,
authorId: true,
progres: true,
terkumpul: true,
imagesId: true,
donasiMaster_KategoriId: true,
donasiMaster_DurasiId: true,
donasiMaster_StatusDonasiId: true,
Author: true,
imageDonasi: true,
CeritaDonasi: true,
DonasiMaster_Ketegori: true,
DonasiMaster_Durasi: true,
DonasiMaster_Status: true,
imageId: true,
},
},
},
});
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,
});
}
}