From a8f9d2ac0dc69aebe11d727708d2be946328093a Mon Sep 17 00:00:00 2001 From: bagasbanuna Date: Thu, 12 Feb 2026 17:42:06 +0800 Subject: [PATCH] Fix API Mobile Admin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit API – Admin User (Mobile) - src/app/api/mobile/admin/user/route.ts Docs - PROMPT-AI.md ### No Issue --- PROMPT-AI.md | 2 +- src/app/api/mobile/admin/user/route.ts | 37 +++++++++++++++++--------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/PROMPT-AI.md b/PROMPT-AI.md index 2dbed296..0f9bd874 100644 --- a/PROMPT-AI.md +++ b/PROMPT-AI.md @@ -1,5 +1,5 @@ -File utama: src/app/api/mobile/donation/[id]/donatur/route.ts +File utama: src/app/api/mobile/admin/user/route.ts Terapkan pagination pada file "File utama" pada method GET Analisa juga file "File utama", jika belum memiliki page dari seachParams maka terapkan. Juga pastikan take dan skip sudah sesuai dengan pagination. Buat default nya menjadi 10 untuk take data diff --git a/src/app/api/mobile/admin/user/route.ts b/src/app/api/mobile/admin/user/route.ts index ff4aabf8..ab57eb90 100644 --- a/src/app/api/mobile/admin/user/route.ts +++ b/src/app/api/mobile/admin/user/route.ts @@ -1,5 +1,6 @@ -import { NextResponse } from "next/server"; import { prisma } from "@/lib"; +import { PAGINATION_DEFAULT_TAKE } from "@/lib/constans-value/constansValue"; +import { NextResponse } from "next/server"; export { GET }; @@ -7,10 +8,16 @@ async function GET(request: Request) { const { searchParams } = new URL(request.url); const search = searchParams.get("search"); const category = searchParams.get("category"); + const page = Number(searchParams.get("page")); + const takeData = PAGINATION_DEFAULT_TAKE; + const skipData = page * takeData - takeData; + + console.log("SEARCH", search); + console.log("PAGE", page); let fixData; try { - if(category === "only-user"){ + if (category === "only-user") { fixData = await prisma.user.findMany({ orderBy: { updatedAt: "desc", @@ -22,8 +29,10 @@ async function GET(request: Request) { mode: "insensitive", }, }, + take: page ? takeData : undefined, + skip: page ? skipData : undefined, }); - } else if(category === "only-admin"){ + } else if (category === "only-admin") { fixData = await prisma.user.findMany({ orderBy: { updatedAt: "desc", @@ -35,8 +44,10 @@ async function GET(request: Request) { mode: "insensitive", }, }, + take: page ? takeData : undefined, + skip: page ? skipData : undefined, }); - } else if (category === "all-role"){ + } else if (category === "all-role") { fixData = await prisma.user.findMany({ orderBy: { updatedAt: "desc", @@ -48,13 +59,15 @@ async function GET(request: Request) { }, { masterUserRoleId: "2", - } + }, ], username: { contains: search || "", mode: "insensitive", }, }, + take: page ? takeData : undefined, + skip: page ? skipData : undefined, }); } @@ -65,13 +78,11 @@ async function GET(request: Request) { data: fixData, }); } catch (error) { - return NextResponse.json( - { - status: 500, - success: false, - message: "Error get data user access", - reason: (error as Error).message, - }, - ); + return NextResponse.json({ + status: 500, + success: false, + message: "Error get data user access", + reason: (error as Error).message, + }); } }