Change api status

This commit is contained in:
Randa Firman Putra
2025-07-01 17:59:18 +07:00
parent 6941b8bb8d
commit db82b40a6b
13 changed files with 72 additions and 79 deletions

View File

@@ -44,29 +44,29 @@ export async function GET() {
// Get mahasiswa aktif
const { count: mahasiswaAktif } = await supabase
.from('status_mahasiswa')
.select('nim', { count: 'exact', head: true })
.from('mahasiswa')
.select('*', { count: 'exact', head: true })
.eq('status_kuliah', 'Aktif');
// Get total lulus
const { count: totalLulus } = await supabase
.from('status_mahasiswa')
.select('nim', { count: 'exact', head: true })
.from('mahasiswa')
.select('*', { count: 'exact', head: true })
.eq('status_kuliah', 'Lulus');
// Get pria lulus
const { count: priaLulus } = await supabase
.from('status_mahasiswa')
.select('nim, mahasiswa!inner(jk)', { count: 'exact', head: true })
.from('mahasiswa')
.select('*', { count: 'exact', head: true })
.eq('status_kuliah', 'Lulus')
.eq('mahasiswa.jk', 'Pria');
.eq('jk', 'Pria');
// Get wanita lulus
const { count: wanitaLulus } = await supabase
.from('status_mahasiswa')
.select('nim, mahasiswa!inner(jk)', { count: 'exact', head: true })
.from('mahasiswa')
.select('*', { count: 'exact', head: true })
.eq('status_kuliah', 'Lulus')
.eq('mahasiswa.jk', 'Wanita');
.eq('jk', 'Wanita');
// Get total berprestasi
const { count: totalBerprestasi } = await supabase
@@ -87,30 +87,30 @@ export async function GET() {
// Get total mahasiswa aktif + lulus
const { count: totalMahasiswaAktifLulus } = await supabase
.from('status_mahasiswa')
.select('nim', { count: 'exact', head: true })
.from('mahasiswa')
.select('*', { count: 'exact', head: true })
.in('status_kuliah', ['Aktif', 'Lulus']);
// Get IPK rata-rata aktif
const { data: ipkAktifData } = await supabase
.from('status_mahasiswa')
.select('nim, mahasiswa!inner(ipk)')
.from('mahasiswa')
.select('ipk')
.eq('status_kuliah', 'Aktif')
.not('mahasiswa.ipk', 'is', null);
.not('ipk', 'is', null);
const ipkRataRataAktif = ipkAktifData && ipkAktifData.length > 0
? Math.round((ipkAktifData.reduce((sum, item: any) => sum + (item.mahasiswa.ipk || 0), 0) / ipkAktifData.length) * 100) / 100
? Math.round((ipkAktifData.reduce((sum, item: any) => sum + (item.ipk || 0), 0) / ipkAktifData.length) * 100) / 100
: 0;
// Get IPK rata-rata lulus
const { data: ipkLulusData } = await supabase
.from('status_mahasiswa')
.select('nim, mahasiswa!inner(ipk)')
.from('mahasiswa')
.select('ipk')
.eq('status_kuliah', 'Lulus')
.not('mahasiswa.ipk', 'is', null);
.not('ipk', 'is', null);
const ipkRataRataLulus = ipkLulusData && ipkLulusData.length > 0
? Math.round((ipkLulusData.reduce((sum, item: any) => sum + (item.mahasiswa.ipk || 0), 0) / ipkLulusData.length) * 100) / 100
? Math.round((ipkLulusData.reduce((sum, item: any) => sum + (item.ipk || 0), 0) / ipkLulusData.length) * 100) / 100
: 0;
const results: MahasiswaTotal = {