again n again
This commit is contained in:
40
app/api/dosen/list/route.ts
Normal file
40
app/api/dosen/list/route.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import { NextResponse } from 'next/server';
|
||||
import supabase from '@/lib/db';
|
||||
|
||||
// GET - Ambil daftar nama dosen yang menjadi pembimbing
|
||||
export async function GET() {
|
||||
try {
|
||||
const { data, error } = await supabase
|
||||
.from('mahasiswa')
|
||||
.select(`
|
||||
dosen_pembimbing_1:dosen!pembimbing_1(nama_dosen),
|
||||
dosen_pembimbing_2:dosen!pembimbing_2(nama_dosen)
|
||||
`)
|
||||
.or('pembimbing_1.not.is.null,pembimbing_2.not.is.null');
|
||||
|
||||
if (error) {
|
||||
console.error('Error fetching dosen list:', error);
|
||||
return NextResponse.json({ message: 'Internal Server Error' }, { status: 500 });
|
||||
}
|
||||
|
||||
// Extract unique dosen names
|
||||
const uniqueDosen = new Set<string>();
|
||||
|
||||
data.forEach((item: any) => {
|
||||
if (item.dosen_pembimbing_1?.nama_dosen) {
|
||||
uniqueDosen.add(item.dosen_pembimbing_1.nama_dosen);
|
||||
}
|
||||
if (item.dosen_pembimbing_2?.nama_dosen) {
|
||||
uniqueDosen.add(item.dosen_pembimbing_2.nama_dosen);
|
||||
}
|
||||
});
|
||||
|
||||
// Convert to sorted array
|
||||
const sortedDosen = Array.from(uniqueDosen).sort();
|
||||
|
||||
return NextResponse.json(sortedDosen);
|
||||
} catch (error) {
|
||||
console.error('Error fetching dosen list:', error);
|
||||
return NextResponse.json({ message: 'Internal Server Error' }, { status: 500 });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user