Stabilize legacy Steven API endpoints and add OpenAPI spec

This commit is contained in:
Power BI Dev
2026-05-07 14:50:31 +07:00
parent f1c1f42a4c
commit e7b07a3cfd
17 changed files with 2755 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
<?php
session_start();
include '../conf/koneksiPDO.php';
include '../conf/function.php';
$conn = new createCon();
$dbh = $conn->connect();
header('Content-Type: application/json');
$loginDosen = requireSessionRole('dosen');
$idRekapHasil = isset($_POST['idRekap']) ? (int) $_POST['idRekap'] : 0;
$jenis = isset($_POST['jenis']) ? trim((string) $_POST['jenis']) : '';
$verif = isset($_POST['verif']) ? (int) $_POST['verif'] : 0;
$sebagai = isset($_POST['sebagai']) ? trim((string) $_POST['sebagai']) : '';
if ($idRekapHasil <= 0 || $jenis === '' || $sebagai === '') {
jsonResponse(['status' => false, 'msg' => 'Parameter tidak lengkap'], 422);
}
$sql = 'SELECT pemb1, pemb2, peng1, peng2 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' => false, 'msg' => 'Data Not Found'], 404);
}
$dosenNip = isset($loginDosen['nip']) ? (string) $loginDosen['nip'] : '';
switch ($sebagai) {
case 'pemb1': $fieldName = 'verifPemb1'; $expectedNip = (string) $rekap['pemb1']; break;
case 'pemb2': $fieldName = 'verifPemb2'; $expectedNip = (string) $rekap['pemb2']; break;
case 'peng1': $fieldName = 'verifPeng1'; $expectedNip = (string) $rekap['peng1']; break;
case 'peng2': $fieldName = 'verifPeng2'; $expectedNip = (string) $rekap['peng2']; break;
default: jsonResponse(['status' => false, 'msg' => 'Status Dosen Tidak Dikenali'], 422);
}
if ($expectedNip === '' || $expectedNip !== $dosenNip) {
jsonResponse(['status' => false, 'msg' => 'Forbidden'], 403);
}
$sql = 'SELECT id FROM tb_verif_berkas WHERE idRekapHasil = :idRekapHasil AND jenisSidang = :jenis';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':idRekapHasil', $idRekapHasil);
$stmt->bindParam(':jenis', $jenis);
$stmt->execute();
if ($stmt->rowCount() === 0) {
$sql = 'INSERT INTO tb_verif_berkas(idRekapHasil, jenisSidang, catatanDariAdmin, verifPemb1, verifPemb2, verifPeng1, verifPeng2) VALUES(:idRekapHasil, :jenis, "", 0, 0, 0, 0)';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':idRekapHasil', $idRekapHasil);
$stmt->bindParam(':jenis', $jenis);
$stmt->execute();
}
$sql = "UPDATE tb_verif_berkas SET {$fieldName} = :verif WHERE idRekapHasil = :idRekapHasil AND jenisSidang = :jenis";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':verif', $verif);
$stmt->bindParam(':idRekapHasil', $idRekapHasil);
$stmt->bindParam(':jenis', $jenis);
$stmt->execute();
echo json_encode([
'status' => true,
'msg' => 'Verifikasi berhasil',
]);