action_reposiciones.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. $ruta = "../";
  3. require_once "../class/c_login.php";
  4. if (!isset($_SESSION['user']))
  5. die(json_encode(['error' => 'No se ha iniciado sesión']));
  6. $user = unserialize($_SESSION['user']);
  7. $ruta = "../";
  8. require_once "../include/bd_pdo.php";
  9. // if method is get
  10. header("Content-Type: application/json");
  11. if ($_SERVER['REQUEST_METHOD'] === 'GET') {
  12. $user->print_to_log("Acceso a reposiciones");
  13. $reposiciones = $db
  14. ->where('periodo_id', $_GET['periodo_id'] ?? null)
  15. ->where('profesor_id', $_GET['profesor_id'] ?? [])
  16. ->get("reposicion");
  17. echo json_encode([
  18. 'status' => 'success',
  19. 'reposiciones' => $reposiciones
  20. ]);
  21. } elseif ($_SERVER['REQUEST_METHOD'] === 'POST') {
  22. $user->print_to_log("Creación de reposición", new: $params);
  23. try {
  24. $requiredParams = ['horario_id', 'fecha', 'hora', 'duracion_id', 'descripcion', 'profesor_id', 'salon', 'unidad', 'periodo_id', 'fecha_clase'];
  25. // Filter params based on requiredParams
  26. $params = array_filter($_POST, function ($key) use ($requiredParams) {
  27. return in_array($key, $requiredParams);
  28. }, ARRAY_FILTER_USE_KEY);
  29. // Check if all required params are present
  30. if (count($params) !== count($requiredParams)) {
  31. throw new Exception('Falta uno o más parámetros requeridos');
  32. }
  33. $db->insert("reposicion", $params);
  34. // Return success response
  35. echo json_encode([
  36. "status" => "success",
  37. "message" => "Reposición creada correctamente",
  38. ]);
  39. } catch (Exception $e) {
  40. // Return error response
  41. echo json_encode([
  42. "status" => "error",
  43. "message" => "No se pudo crear la reposición",
  44. "error" => $e->getMessage(),
  45. ]);
  46. }
  47. }