66 lines
2.6 KiB
PHP
66 lines
2.6 KiB
PHP
<?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()
|
|
]);
|
|
} |