'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(<< $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() ]); }