123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?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'];
- $periodo_nivel_id = $db->where('periodo_id', $user->periodo_id)->getOne('periodo', 'nivel_id')['nivel_id'];
- $carreras = $db->query(<<<SQL
- SELECT carrera_id, carrera_nombre, clave_carrera,
- facultad_id, facultad_nombre,
- nivel_id, nivel_nombre
- FROM carrera
- join nivel using (nivel_id)
- join facultad using (facultad_id)
- WHERE facultad_id = :facultad_id OR :facultad_id IS NULL AND
- nivel.nivel_id = :periodo_nivel_id
- ORDER BY facultad_nombre, carrera_nombre
- SQL, [
- 'facultad_id' => $facultad_id,
- 'periodo_nivel_id' => $periodo_nivel_id
- ]);
- echo json_encode($carreras);
- break;
- case 'PUT':
- // Update carrera {nivel_id}
- $raw = file_get_contents('php://input');
- $data = json_decode($raw, true);
- if (!isset($data['carrera_id'], $data['nivel_id'])) {
- header('HTTP/1.1 400 Bad Request');
- echo json_encode(['error' => 'Falta el id de la carrera o el nivel']);
- exit();
- }
- $carrera_id = $data['carrera_id'];
- $nivel_id = $data['nivel_id'];
- $db->where('carrera_id', $carrera_id)->update('carrera', ['nivel_id' => $nivel_id]);
- $carrera_nombre = $db->where('carrera_id', $carrera_id)->getOne('carrera', 'carrera_nombre')['carrera_nombre'];
- $nivel_nombre = $db->where('nivel_id', $nivel_id)->getOne('nivel', 'nivel_nombre')['nivel_nombre'];
- echo json_encode(['success' => "$carrera_nombre actualizada a $nivel_nombre"]);
- 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()
- ]);
- }
|