ayo bisa
This commit is contained in:
@@ -13,7 +13,9 @@ export async function GET(request: NextRequest) {
|
||||
.from('mahasiswa')
|
||||
.select(`
|
||||
*,
|
||||
kelompok_keahlian!id_kelompok_keahlian(id_kk, nama_kelompok)
|
||||
kelompok_keahlian!id_kelompok_keahlian(id_kk, nama_kelompok),
|
||||
dosen_pembimbing_1:dosen!pembimbing_1(id_dosen, nama_dosen),
|
||||
dosen_pembimbing_2:dosen!pembimbing_2(id_dosen, nama_dosen)
|
||||
`)
|
||||
.eq('nim', nim)
|
||||
.single();
|
||||
@@ -25,9 +27,13 @@ export async function GET(request: NextRequest) {
|
||||
// Transformasi data untuk meratakan field yang di-join
|
||||
const transformedData = {
|
||||
...data,
|
||||
nama_kelompok_keahlian: data.kelompok_keahlian?.nama_kelompok || null
|
||||
nama_kelompok_keahlian: data.kelompok_keahlian?.nama_kelompok || null,
|
||||
nama_pembimbing_1: data.dosen_pembimbing_1?.nama_dosen || null,
|
||||
nama_pembimbing_2: data.dosen_pembimbing_2?.nama_dosen || null
|
||||
};
|
||||
delete transformedData.kelompok_keahlian;
|
||||
delete transformedData.dosen_pembimbing_1;
|
||||
delete transformedData.dosen_pembimbing_2;
|
||||
|
||||
return NextResponse.json(transformedData);
|
||||
} else {
|
||||
@@ -36,7 +42,9 @@ export async function GET(request: NextRequest) {
|
||||
.from('mahasiswa')
|
||||
.select(`
|
||||
*,
|
||||
kelompok_keahlian!id_kelompok_keahlian(id_kk, nama_kelompok)
|
||||
kelompok_keahlian!id_kelompok_keahlian(id_kk, nama_kelompok),
|
||||
dosen_pembimbing_1:dosen!pembimbing_1(id_dosen, nama_dosen),
|
||||
dosen_pembimbing_2:dosen!pembimbing_2(id_dosen, nama_dosen)
|
||||
`)
|
||||
.order('nim');
|
||||
|
||||
@@ -48,8 +56,10 @@ export async function GET(request: NextRequest) {
|
||||
// Transformasi data untuk meratakan field yang di-join
|
||||
const transformedData = data.map(item => ({
|
||||
...item,
|
||||
nama_kelompok_keahlian: item.kelompok_keahlian?.nama_kelompok || null
|
||||
})).map(({ kelompok_keahlian, ...rest }) => rest);
|
||||
nama_kelompok_keahlian: item.kelompok_keahlian?.nama_kelompok || null,
|
||||
nama_pembimbing_1: item.dosen_pembimbing_1?.nama_dosen || null,
|
||||
nama_pembimbing_2: item.dosen_pembimbing_2?.nama_dosen || null
|
||||
})).map(({ kelompok_keahlian, dosen_pembimbing_1, dosen_pembimbing_2, ...rest }) => rest);
|
||||
|
||||
return NextResponse.json(transformedData);
|
||||
}
|
||||
@@ -75,7 +85,10 @@ export async function POST(request: NextRequest) {
|
||||
ipk,
|
||||
id_kelompok_keahlian,
|
||||
status_kuliah,
|
||||
semester
|
||||
semester,
|
||||
pembimbing_1,
|
||||
pembimbing_2,
|
||||
status_bimbingan
|
||||
} = body;
|
||||
|
||||
// Validasi field yang wajib diisi
|
||||
@@ -115,7 +128,10 @@ export async function POST(request: NextRequest) {
|
||||
ipk: ipk || null,
|
||||
id_kelompok_keahlian: id_kelompok_keahlian || null,
|
||||
status_kuliah: status_kuliah || "Aktif",
|
||||
semester: semester || 1
|
||||
semester: semester || 1,
|
||||
pembimbing_1: pembimbing_1 || null,
|
||||
pembimbing_2: pembimbing_2 || null,
|
||||
status_bimbingan: status_bimbingan || "Belum Selesai"
|
||||
})
|
||||
.select()
|
||||
.single();
|
||||
@@ -157,7 +173,10 @@ export async function PUT(request: NextRequest) {
|
||||
ipk,
|
||||
id_kelompok_keahlian,
|
||||
status_kuliah,
|
||||
semester
|
||||
semester,
|
||||
pembimbing_1,
|
||||
pembimbing_2,
|
||||
status_bimbingan
|
||||
} = body;
|
||||
|
||||
// Cek apakah mahasiswa ada
|
||||
@@ -185,7 +204,10 @@ export async function PUT(request: NextRequest) {
|
||||
ipk: ipk || existing.ipk,
|
||||
id_kelompok_keahlian: id_kelompok_keahlian || existing.id_kelompok_keahlian,
|
||||
status_kuliah: status_kuliah || existing.status_kuliah,
|
||||
semester: semester || existing.semester
|
||||
semester: semester || existing.semester,
|
||||
pembimbing_1: pembimbing_1 !== undefined ? pembimbing_1 : existing.pembimbing_1,
|
||||
pembimbing_2: pembimbing_2 !== undefined ? pembimbing_2 : existing.pembimbing_2,
|
||||
status_bimbingan: status_bimbingan || existing.status_bimbingan
|
||||
})
|
||||
.eq('nim', nim);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user