Fix All Image Add Lazy Loading
This commit is contained in:
@@ -6,17 +6,22 @@ import { Context } from "elysia";
|
||||
export default async function pegawaiFindMany(context: Context) {
|
||||
const page = Number(context.query.page) || 1;
|
||||
const limit = Number(context.query.limit) || 10;
|
||||
const search = (context.query.search as string) || '';
|
||||
const search = (context.query.search as string) || "";
|
||||
const skip = (page - 1) * limit;
|
||||
|
||||
// Buat where clause
|
||||
const where: any = { isActive: true };
|
||||
const isActiveParam = context.query.isActive;
|
||||
|
||||
const where: any = {};
|
||||
if (isActiveParam !== undefined) {
|
||||
where.isActive = isActiveParam === "true";
|
||||
}
|
||||
|
||||
// Tambahkan pencarian (jika ada)
|
||||
if (search) {
|
||||
where.OR = [
|
||||
{ namaLengkap: { contains: search, mode: 'insensitive' } },
|
||||
{ alamat: { contains: search, mode: 'insensitive' } },
|
||||
{ namaLengkap: { contains: search, mode: "insensitive" } },
|
||||
{ alamat: { contains: search, mode: "insensitive" } },
|
||||
];
|
||||
}
|
||||
|
||||
@@ -30,11 +35,11 @@ export default async function pegawaiFindMany(context: Context) {
|
||||
},
|
||||
skip,
|
||||
take: limit,
|
||||
orderBy: { posisi: { hierarki: 'asc' } },
|
||||
orderBy: { posisi: { hierarki: "asc" } },
|
||||
}),
|
||||
prisma.pegawaiPPID.count({
|
||||
where,
|
||||
})
|
||||
}),
|
||||
]);
|
||||
|
||||
const totalPages = Math.ceil(total / limit);
|
||||
@@ -58,4 +63,4 @@ export default async function pegawaiFindMany(context: Context) {
|
||||
total: 0,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,7 @@ export default async function pegawaiUpdate(context: Context) {
|
||||
imageId,
|
||||
alamat,
|
||||
posisiId,
|
||||
isActive,
|
||||
} = body;
|
||||
|
||||
if (!id) {
|
||||
@@ -102,7 +103,8 @@ export default async function pegawaiUpdate(context: Context) {
|
||||
imageId,
|
||||
telepon,
|
||||
alamat,
|
||||
posisiId
|
||||
posisiId,
|
||||
isActive,
|
||||
},
|
||||
include: {
|
||||
image: true,
|
||||
|
||||
@@ -20,14 +20,18 @@ async function posisiOrganisasiFindMany(context: Context) {
|
||||
try {
|
||||
const whereClause = {
|
||||
...where,
|
||||
isActive: true
|
||||
isActive: true,
|
||||
};
|
||||
|
||||
const [data, total] = await Promise.all([
|
||||
prisma.posisiOrganisasiPPID.findMany({
|
||||
where: whereClause,
|
||||
skip: (page - 1) * limit,
|
||||
take: limit,
|
||||
...(limit === 0
|
||||
? {} // kalau limit = 0 → ambil semua data (tanpa skip & take)
|
||||
: {
|
||||
skip: (page - 1) * limit,
|
||||
take: limit,
|
||||
}),
|
||||
orderBy: { hierarki: "asc" },
|
||||
}),
|
||||
prisma.posisiOrganisasiPPID.count({ where: whereClause }),
|
||||
@@ -35,15 +39,18 @@ async function posisiOrganisasiFindMany(context: Context) {
|
||||
|
||||
return {
|
||||
success: true,
|
||||
message: "Berhasil mengambil data posisi organisasi dengan pagination",
|
||||
message:
|
||||
limit === 0
|
||||
? "Berhasil mengambil semua data posisi organisasi"
|
||||
: "Berhasil mengambil data posisi organisasi dengan pagination",
|
||||
data: data.map((item: any) => ({
|
||||
id: item.id,
|
||||
nama: item.nama,
|
||||
deskripsi: item.deskripsi,
|
||||
hierarki: item.hierarki,
|
||||
})),
|
||||
page,
|
||||
totalPages: Math.ceil(total / limit),
|
||||
page: limit === 0 ? 1 : page,
|
||||
totalPages: limit === 0 ? 1 : Math.ceil(total / limit),
|
||||
total,
|
||||
};
|
||||
} catch (e) {
|
||||
|
||||
Reference in New Issue
Block a user