Files
hipmi/src/app/api/admin/user/route.ts
Bagasbanuna02 5bc70baf96 fix: super admin
fix pengambilan data dari use server menjadi API
src/app/api/admin/developer/route.ts
src/app/api/admin/user/route.ts
src/app/dev/admin/developer/page.tsx
src/app_modules/admin/developer/_lib/api_fetch_developer.tsx
src/app_modules/admin/developer/index.tsx

No Issue
2025-06-13 15:07:16 +08:00

76 lines
1.6 KiB
TypeScript

import _ from "lodash";
import { NextResponse } from "next/server";
import prisma from "@/lib/prisma";
export async function GET(request: Request) {
try {
let fixData;
const { searchParams } = new URL(request.url);
const search = searchParams.get("search");
const page = searchParams.get("page");
const takeData = 10;
const skipData = Number(page) * takeData - takeData;
if (!page) {
fixData = await prisma.user.findMany({
orderBy: {
updatedAt: "desc",
},
where: {
masterUserRoleId: "1",
username: {
contains: search || "",
mode: "insensitive",
},
},
});
} else {
const getData = await prisma.user.findMany({
skip: skipData,
take: takeData,
orderBy: {
updatedAt: "desc",
},
where: {
masterUserRoleId: "1",
username: {
contains: search || "",
mode: "insensitive",
},
},
});
const nCount = await prisma.user.count({
where: {
masterUserRoleId: "1",
username: {
contains: search || "",
mode: "insensitive",
},
},
});
fixData = {
data: getData,
nPage: _.ceil(nCount / takeData),
};
}
return NextResponse.json(
{
success: true,
message: "Success get data",
data: fixData,
},
{
status: 200,
}
);
} catch (error) {
return NextResponse.json(
{ success: false, message: "Internal Server Error" },
{ status: 500 }
);
}
}