| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?php
- require_once "{$_SERVER['DOCUMENT_ROOT']}/class/c_login.php";
- header('Content-Type: application/json');
- if (!Login::is_logged()) {
- header('HTTP/1.1 401 Unauthorized');
- echo json_encode(['error' => 'No se ha iniciado sesión']);
- exit();
- }
- $user = Login::get_user();
- try {
- switch ($_SERVER['REQUEST_METHOD']) {
- case 'GET':
- // Fetch all puestos
- $facultad_id = $user->facultad['facultad_id'] ?? -1;
- $puestos = $db->orderBy('puesto_id', 'desc')
- ->where('facultad_id', $facultad_id)
- ->get('puesto');
- echo json_encode($puestos);
- break;
- case 'POST':
- $raw_input = file_get_contents('php://input');
- $input_data = json_decode($raw_input, true);
- if (!$input_data || !isset($input_data['puesto_nombre'])) {
- header('HTTP/1.1 400 Bad Request');
- echo json_encode(['error' => 'Datos inválidos']);
- exit();
- }
- $puesto_id = $db->insert('puestos', ['puesto_nombre' => $input_data['puesto_nombre']]);
- echo json_encode(['msg' => 'Puesto creado exitosamente', 'puesto_id' => $puesto_id]);
- break;
- case 'PUT':
- $raw_input = file_get_contents('php://input');
- $input_data = json_decode($raw_input, true);
- if (!$input_data || !isset($input_data['puesto_id'], $input_data['puesto_nombre'])) {
- header('HTTP/1.1 400 Bad Request');
- echo json_encode(['error' => 'Datos inválidos']);
- exit();
- }
- $db->where('puesto_id', $input_data['puesto_id'])->update('puestos', ['puesto_nombre' => $input_data['puesto_nombre']]);
- echo json_encode(['msg' => 'Puesto actualizado exitosamente']);
- break;
- case 'DELETE':
- $raw_input = file_get_contents('php://input');
- $input_data = json_decode($raw_input, true);
- if (!$input_data || !isset($input_data['puesto_id'])) {
- header('HTTP/1.1 400 Bad Request');
- echo json_encode(['error' => 'Datos inválidos']);
- exit();
- }
- $db->where('puesto_id', $input_data['puesto_id'])->delete('puestos');
- echo json_encode(['msg' => 'Puesto eliminado exitosamente']);
- break;
- default:
- header('HTTP/1.1 405 Method Not Allowed');
- echo json_encode(['error' => 'Método no permitido']);
- break;
- }
- } catch (PDOException $e) {
- echo json_encode([
- 'error' => $e->getMessage(),
- 'query' => $db->getLastQuery(),
- 'exception' => $e->getTraceAsString()
- ]);
- }
|