puesto.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. require_once "{$_SERVER['DOCUMENT_ROOT']}/class/c_login.php";
  3. header('Content-Type: application/json');
  4. if (!Login::is_logged()) {
  5. header('HTTP/1.1 401 Unauthorized');
  6. echo json_encode(['error' => 'No se ha iniciado sesión']);
  7. exit();
  8. }
  9. $user = Login::get_user();
  10. try {
  11. switch ($_SERVER['REQUEST_METHOD']) {
  12. case 'GET':
  13. // Fetch all puestos
  14. $facultad_id = $user->facultad['facultad_id'] ?? -1;
  15. $puestos = $db->orderBy('puesto_id', 'desc')
  16. ->where('facultad_id', $facultad_id)
  17. ->get('puesto');
  18. echo json_encode($puestos);
  19. break;
  20. case 'POST':
  21. $raw_input = file_get_contents('php://input');
  22. $input_data = json_decode($raw_input, true);
  23. if (!$input_data || !isset($input_data['puesto_nombre'])) {
  24. header('HTTP/1.1 400 Bad Request');
  25. echo json_encode(['error' => 'Datos inválidos']);
  26. exit();
  27. }
  28. $puesto_id = $db->insert('puestos', ['puesto_nombre' => $input_data['puesto_nombre']]);
  29. echo json_encode(['msg' => 'Puesto creado exitosamente', 'puesto_id' => $puesto_id]);
  30. break;
  31. case 'PUT':
  32. $raw_input = file_get_contents('php://input');
  33. $input_data = json_decode($raw_input, true);
  34. if (!$input_data || !isset($input_data['puesto_id'], $input_data['puesto_nombre'])) {
  35. header('HTTP/1.1 400 Bad Request');
  36. echo json_encode(['error' => 'Datos inválidos']);
  37. exit();
  38. }
  39. $db->where('puesto_id', $input_data['puesto_id'])->update('puestos', ['puesto_nombre' => $input_data['puesto_nombre']]);
  40. echo json_encode(['msg' => 'Puesto actualizado exitosamente']);
  41. break;
  42. case 'DELETE':
  43. $raw_input = file_get_contents('php://input');
  44. $input_data = json_decode($raw_input, true);
  45. if (!$input_data || !isset($input_data['puesto_id'])) {
  46. header('HTTP/1.1 400 Bad Request');
  47. echo json_encode(['error' => 'Datos inválidos']);
  48. exit();
  49. }
  50. $db->where('puesto_id', $input_data['puesto_id'])->delete('puestos');
  51. echo json_encode(['msg' => 'Puesto eliminado exitosamente']);
  52. break;
  53. default:
  54. header('HTTP/1.1 405 Method Not Allowed');
  55. echo json_encode(['error' => 'Método no permitido']);
  56. break;
  57. }
  58. } catch (PDOException $e) {
  59. echo json_encode([
  60. 'error' => $e->getMessage(),
  61. 'query' => $db->getLastQuery(),
  62. 'exception' => $e->getTraceAsString()
  63. ]);
  64. }