revisi ini
This commit is contained in:
@@ -78,11 +78,6 @@ export async function GET(request: NextRequest) {
|
||||
mata_kuliah!inner(kode_mk, nama_mk)
|
||||
`);
|
||||
|
||||
// Add search condition if provided
|
||||
if (search) {
|
||||
query = query.or(`mahasiswa.nim.ilike.%${search}%,mahasiswa.nama.ilike.%${search}%,mata_kuliah.kode_mk.ilike.%${search}%,mata_kuliah.nama_mk.ilike.%${search}%`);
|
||||
}
|
||||
|
||||
// Add semester filter if provided
|
||||
if (semester && semester !== 'all') {
|
||||
query = query.eq('semester', parseInt(semester));
|
||||
@@ -94,7 +89,7 @@ export async function GET(request: NextRequest) {
|
||||
}
|
||||
|
||||
// Add order by
|
||||
query = query.order('semester', { ascending: true }).order('mahasiswa(nim)', { ascending: true });
|
||||
query = query.order('semester', { ascending: true });
|
||||
|
||||
const { data, error } = await query;
|
||||
|
||||
@@ -104,7 +99,7 @@ export async function GET(request: NextRequest) {
|
||||
}
|
||||
|
||||
// Transformasi data untuk meratakan field yang di-join
|
||||
const transformedData = data.map((item: any) => ({
|
||||
let transformedData = data.map((item: any) => ({
|
||||
...item,
|
||||
nim: item.mahasiswa?.nim || '',
|
||||
nama: item.mahasiswa?.nama || '',
|
||||
@@ -115,6 +110,27 @@ export async function GET(request: NextRequest) {
|
||||
return rest;
|
||||
});
|
||||
|
||||
// Client-side search filtering (untuk joined tables)
|
||||
if (search) {
|
||||
const searchLower = search.toLowerCase();
|
||||
transformedData = transformedData.filter((item: any) => {
|
||||
return (
|
||||
item.nim?.toLowerCase().includes(searchLower) ||
|
||||
item.nama?.toLowerCase().includes(searchLower) ||
|
||||
item.kode_mk?.toLowerCase().includes(searchLower) ||
|
||||
item.nama_mk?.toLowerCase().includes(searchLower)
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
// Sort by nim after filtering
|
||||
transformedData.sort((a: any, b: any) => {
|
||||
if (a.semester !== b.semester) {
|
||||
return a.semester - b.semester;
|
||||
}
|
||||
return a.nim.localeCompare(b.nim);
|
||||
});
|
||||
|
||||
return NextResponse.json(transformedData);
|
||||
}
|
||||
} catch (error) {
|
||||
@@ -230,7 +246,7 @@ export async function POST(request: NextRequest) {
|
||||
}
|
||||
|
||||
return NextResponse.json(
|
||||
{
|
||||
{
|
||||
message: 'Nilai mahasiswa berhasil ditambahkan',
|
||||
id: data.id_nilai,
|
||||
mahasiswa: mahasiswa.nama,
|
||||
|
||||
Reference in New Issue
Block a user