55 lines
1.8 KiB
PHP
55 lines
1.8 KiB
PHP
<?php
|
|
$ruta = "../";
|
|
require_once "../class/c_login.php";
|
|
|
|
if (!isset($_SESSION['user']))
|
|
die(json_encode(['error' => 'No se ha iniciado sesión']));
|
|
|
|
$user = unserialize($_SESSION['user']);
|
|
$ruta = "../";
|
|
require_once "../include/bd_pdo.php";
|
|
|
|
// if method is get
|
|
header("Content-Type: application/json");
|
|
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
|
|
$user->print_to_log("Acceso a reposiciones");
|
|
$reposiciones = $db
|
|
->where('periodo_id', $_GET['periodo_id'] ?? null)
|
|
->where('profesor_id', $_GET['profesor_id'] ?? [])
|
|
->get("reposicion");
|
|
echo json_encode([
|
|
'status' => 'success',
|
|
'reposiciones' => $reposiciones
|
|
]);
|
|
} elseif ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$user->print_to_log("Creación de reposición", new: $params);
|
|
try {
|
|
$requiredParams = ['horario_id', 'fecha', 'hora', 'duracion_id', 'descripcion', 'profesor_id', 'salon', 'unidad', 'periodo_id', 'fecha_clase'];
|
|
|
|
// Filter params based on requiredParams
|
|
$params = array_filter($_POST, function ($key) use ($requiredParams) {
|
|
return in_array($key, $requiredParams);
|
|
}, ARRAY_FILTER_USE_KEY);
|
|
|
|
// Check if all required params are present
|
|
if (count($params) !== count($requiredParams)) {
|
|
throw new Exception('Falta uno o más parámetros requeridos');
|
|
}
|
|
|
|
$db->insert("reposicion", $params);
|
|
|
|
// Return success response
|
|
echo json_encode([
|
|
"status" => "success",
|
|
"message" => "Reposición creada correctamente",
|
|
]);
|
|
} catch (Exception $e) {
|
|
// Return error response
|
|
echo json_encode([
|
|
"status" => "error",
|
|
"message" => "No se pudo crear la reposición",
|
|
"error" => $e->getMessage(),
|
|
]);
|
|
}
|
|
}
|