### Fitur: Penambahan Pagination pada Endpoint Admin Mobile
#### Deskripsi Umum Telah dilakukan penambahan fitur pagination pada beberapa endpoint admin mobile untuk meningkatkan kinerja dan pengalaman pengguna saat mengakses data dalam jumlah besar. #### File yang Diubah 1. **src/app/api/mobile/admin/job/route.ts** - Ditambahkan parameter dari - Diterapkan logika pagination dengan (default 10) dan - Query telah dimodifikasi untuk mendukung pagination 2. **src/app/api/mobile/admin/event/route.ts** - Diperbaiki definisi variabel untuk memastikan tipe data yang konsisten - Ditambahkan default value 1 untuk parameter - Perhitungan disesuaikan agar lebih efisien 3. **src/app/api/mobile/admin/event/[id]/participants/route.ts** - Ditambahkan parameter dari - Diterapkan logika pagination dengan (default 10) dan - Query telah dimodifikasi untuk mendukung pagination #### Tujuan Perubahan - Meningkatkan kinerja aplikasi saat mengambil data dalam jumlah besar - Memungkinkan pengguna untuk mengakses data secara bertahap melalui halaman-halaman - Mengurangi beban server saat mengambil data dalam jumlah besar - Memberikan pengalaman pengguna yang lebih baik saat mengakses data admin #### Cara Penggunaan Untuk menggunakan fitur pagination, cukup tambahkan parameter pada query string saat melakukan permintaan ke endpoint yang telah dimodifikasi. Contoh: Default jumlah data per halaman adalah 10 item. ### No Issue
This commit is contained in:
@@ -1,9 +1,15 @@
|
||||
import { NextResponse } from "next/server";
|
||||
import { PAGINATION_DEFAULT_TAKE } from "@/lib/constans-value/constansValue";
|
||||
import prisma from "@/lib/prisma";
|
||||
import { NextResponse } from "next/server";
|
||||
|
||||
export { GET };
|
||||
|
||||
async function GET(request: Request, { params }: { params: { id: string } }) {
|
||||
const { searchParams } = new URL(request.url);
|
||||
const page = Number(searchParams.get("page")) || 1;
|
||||
const takeData = PAGINATION_DEFAULT_TAKE;
|
||||
const skipData = page * takeData - takeData;
|
||||
|
||||
try {
|
||||
const { id } = params;
|
||||
|
||||
@@ -12,6 +18,7 @@ async function GET(request: Request, { params }: { params: { id: string } }) {
|
||||
eventId: id,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
eventId: true,
|
||||
userId: true,
|
||||
isPresent: true,
|
||||
@@ -35,6 +42,8 @@ async function GET(request: Request, { params }: { params: { id: string } }) {
|
||||
},
|
||||
},
|
||||
},
|
||||
take: page ? takeData : undefined,
|
||||
skip: page ? skipData : undefined,
|
||||
});
|
||||
|
||||
return NextResponse.json(
|
||||
|
||||
Reference in New Issue
Block a user