Stabilize legacy Steven API endpoints and add OpenAPI spec
This commit is contained in:
137
steven/API/getBerkasSidangMahasiswa.php
Normal file
137
steven/API/getBerkasSidangMahasiswa.php
Normal file
@@ -0,0 +1,137 @@
|
||||
<?php
|
||||
|
||||
session_start();
|
||||
|
||||
include '../conf/koneksiPDO.php';
|
||||
include '../conf/function.php';
|
||||
|
||||
$conn = new createCon();
|
||||
$dbh = $conn->connect();
|
||||
|
||||
header('Content-Type: application/json');
|
||||
|
||||
if (!isset($_GET['bypassSaya'])) {
|
||||
$loginMhs = requireSessionRole('mhs');
|
||||
$nim = $loginMhs['nim'];
|
||||
} else {
|
||||
$loginDosen = isset($_SESSION['login-dosen']) ? $_SESSION['login-dosen'] : null;
|
||||
$loginAdmin = isset($_SESSION['login-admin']) ? $_SESSION['login-admin'] : null;
|
||||
if (!is_array($loginDosen) && !is_array($loginAdmin)) {
|
||||
jsonResponse(['status' => 403, 'msg' => 'Forbidden'], 403);
|
||||
}
|
||||
}
|
||||
|
||||
$idRekapHasil = isset($_GET['idRekapHasil']) ? (int) $_GET['idRekapHasil'] : 0;
|
||||
$jenis = isset($_GET['jenis']) ? trim((string) $_GET['jenis']) : '';
|
||||
|
||||
if ($idRekapHasil <= 0 || $jenis === '') {
|
||||
jsonResponse(['status' => 0, 'msg' => 'Parameter tidak lengkap'], 422);
|
||||
}
|
||||
|
||||
$sql = 'SELECT * FROM tbrekaphasil WHERE id = :idRekapHasil';
|
||||
$stmt = $dbh->prepare($sql);
|
||||
$stmt->bindParam(':idRekapHasil', $idRekapHasil);
|
||||
$stmt->execute();
|
||||
$rekap = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if (!$rekap) {
|
||||
jsonResponse(['status' => 0, 'msg' => 'Data Not Found'], 404);
|
||||
}
|
||||
|
||||
if (!isset($_GET['bypassSaya'])) {
|
||||
if ($rekap['nim'] !== $nim) {
|
||||
jsonResponse(['status' => 403, 'msg' => 'Forbidden'], 403);
|
||||
}
|
||||
} elseif (!is_array($loginAdmin)) {
|
||||
$dosenNip = isset($loginDosen['nip']) ? (string) $loginDosen['nip'] : '';
|
||||
$allowedNips = [
|
||||
(string) $rekap['pemb1'],
|
||||
(string) $rekap['pemb2'],
|
||||
(string) $rekap['peng1'],
|
||||
(string) $rekap['peng2'],
|
||||
];
|
||||
|
||||
if ($dosenNip === '' || !in_array($dosenNip, $allowedNips, true)) {
|
||||
jsonResponse(['status' => 403, 'msg' => 'Forbidden'], 403);
|
||||
}
|
||||
}
|
||||
|
||||
$sql = 'SELECT * FROM tb_verif_berkas WHERE idRekapHasil = :idRekapHasil AND jenisSidang = :jenisSidang';
|
||||
$stmt = $dbh->prepare($sql);
|
||||
$stmt->bindParam(':idRekapHasil', $idRekapHasil);
|
||||
$stmt->bindParam(':jenisSidang', $jenis);
|
||||
$stmt->execute();
|
||||
|
||||
$catatanAdmin = '';
|
||||
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
$catatanAdmin = $row['catatanDariAdmin'];
|
||||
}
|
||||
|
||||
$sql = 'SELECT * FROM tb_berkas_sidang WHERE idRekapHasil = :idRekapHasil AND jenisSidang = :jenisSidang';
|
||||
$stmt = $dbh->prepare($sql);
|
||||
$stmt->bindParam(':idRekapHasil', $idRekapHasil);
|
||||
$stmt->bindParam(':jenisSidang', $jenis);
|
||||
$stmt->execute();
|
||||
|
||||
$listBerkas = [];
|
||||
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
$namaBerkas = $row['nama'];
|
||||
$idBerkas = $row['idBerkas'];
|
||||
$driveId = $row['driveId'];
|
||||
$status = $row['status'];
|
||||
|
||||
if ($driveId != null && $driveId != '') {
|
||||
$driveId = 'https://drive.google.com/open?id='.$driveId;
|
||||
}
|
||||
|
||||
array_push($listBerkas, [
|
||||
'id' => $idBerkas,
|
||||
'nama' => $namaBerkas,
|
||||
'file' => $driveId,
|
||||
'status' => $status,
|
||||
]);
|
||||
}
|
||||
|
||||
$berkasSidang = [];
|
||||
switch ($jenis) {
|
||||
case 'Sidang':
|
||||
$berkasSidang = [
|
||||
'ktm' => ['judul' => 'Kartu Tanda Mahasiswa (KTM) terakhir', 'data' => null],
|
||||
'spp' => ['judul' => 'Tanda Bukti Pembayaran SPP terakhir', 'data' => null],
|
||||
'foto' => ['judul' => 'Pas Photo ukuran 3x4 = 3 lembar (Warna Latar Belakang Biru)', 'data' => null],
|
||||
'lirs' => ['judul' => 'Lembaran Isian Rencana Studi (LIRS) terakhir', 'data' => null],
|
||||
'transkrip' => ['judul' => 'Rekapitulasi Nilai Terakhir (Transkrip)', 'data' => null],
|
||||
'buktiAbsen' => ['judul' => 'Bukti Absen Seminar Outline Skripsi', 'data' => null],
|
||||
'beritaAcaraSeminarOutline' => ['judul' => 'Berita Acara Seminar Outline Skripsi', 'data' => null],
|
||||
'suratRekomendasiSidang' => ['judul' => 'Surat Rekomendasi Pelaksanaan Sidang Akhir Skripsi Secara Daring dari Jurusan/Program Studi', 'data' => null],
|
||||
'bebasReferensiTeknik' => ['judul' => 'Bebas Referensi Fakultas Teknik', 'data' => null],
|
||||
'bebasReferensiUntan' => ['judul' => 'Bebas Referensi UNTAN', 'data' => null],
|
||||
'bebasReferensiPerpusDaerah' => ['judul' => 'Bebas Referensi Perpustakaan Daerah', 'data' => null],
|
||||
'TI08' => ['judul' => 'Siap Sidang TI. 08', 'data' => null],
|
||||
'buktiUploadJurnal' => ['judul' => 'Bukti Upload Jurnal ( Teknik Informatika)', 'data' => null],
|
||||
'ifTA07' => ['judul' => 'Format IF-TA-07', 'data' => null],
|
||||
'b4' => ['judul' => 'Kartu Konsultasi Skripsi (B4)', 'data' => null],
|
||||
'b1' => ['judul' => 'Format B.1', 'data' => null],
|
||||
'b5' => ['judul' => 'Format B.5', 'data' => null],
|
||||
'suratWisuda' => ['judul' => 'Surat Pernyataan Wisuda', 'data' => null],
|
||||
'biodataSarjana' => ['judul' => 'Biodata Sarjana Baru', 'data' => null],
|
||||
'ijazahSMA' => ['judul' => 'Ijazah SMA', 'data' => null],
|
||||
'toefl' => ['judul' => 'Sertifikat TOEFL (nilai min. 425)', 'data' => null],
|
||||
'kartuKeluarga' => ['judul' => 'Kartu Keluarga', 'data' => null],
|
||||
'ktp' => ['judul' => 'KTP', 'data' => null],
|
||||
'skripsi' => ['judul' => 'Skripsi/Tugas Akhir', 'data' => null],
|
||||
];
|
||||
|
||||
break;
|
||||
default: echo json_encode(['status' => 0, 'msg' => 'Jenis tidak dikenali']); exit;
|
||||
}
|
||||
|
||||
foreach ($berkasSidang as $key => $val) {
|
||||
foreach ($listBerkas as $key2 => $val2) {
|
||||
if ($key == $val2['nama']) {
|
||||
$berkasSidang[$key]['data'] = $val2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo json_encode(utf8ize(['status' => 1, 'data' => $berkasSidang, 'catatanAdmin' => $catatanAdmin]));
|
||||
Reference in New Issue
Block a user