Initial Commit
This commit is contained in:
66
action/carrera.php
Normal file
66
action/carrera.php
Normal file
@@ -0,0 +1,66 @@
|
||||
<?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()
|
||||
]);
|
||||
}
|
||||
Reference in New Issue
Block a user