DiploMaster/api/alumnos.php

64 lines
1.8 KiB
PHP

<?php
header('Content-Type: application/json');
require '../includes/config.php';
if (!is_logged_in()) {
http_response_code(401);
echo json_encode(['error' => 'No autenticado']);
exit;
}
$method = $_SERVER['REQUEST_METHOD'];
switch ($method) {
case 'GET':
try {
$stmt = $pdo->query("
SELECT a.*,
GROUP_CONCAT(ac.curso_id) AS cursos
FROM alumnos a
LEFT JOIN alumnos_cursos ac ON a.id = ac.alumno_id
GROUP BY a.id
");
$alumnos = $stmt->fetchAll();
// Convertir cursos a array
foreach ($alumnos as &$alumno) {
$alumno['cursos'] = $alumno['cursos'] ? explode(',', $alumno['cursos']) : [];
}
echo json_encode($alumnos);
} catch (PDOException $e) {
http_response_code(500);
echo json_encode(['error' => 'Error al cargar alumnos']);
}
break;
case 'POST':
$data = json_decode(file_get_contents('php://input'), true);
try {
$stmt = $pdo->prepare("
INSERT INTO alumnos (nombre, email, telefono)
VALUES (?, ?, ?)
");
$stmt->execute([
$data['nombre'],
$data['email'],
$data['telefono'] ?? null
]);
echo json_encode(['success' => true, 'id' => $pdo->lastInsertId()]);
} catch (PDOException $e) {
http_response_code(500);
echo json_encode(['error' => 'Error al crear alumno: ' . $e->getMessage()]);
}
break;
default:
http_response_code(405);
echo json_encode(['error' => 'Método no permitido']);
}
?>