DiploMaster/api/cursos.php

56 lines
1.5 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'];
$user = $_SESSION['user'];
switch ($method) {
case 'GET':
if ($user['rol'] === 'admin') {
$stmt = $pdo->query("SELECT * FROM cursos");
} else {
$stmt = $pdo->prepare("
SELECT c.*, uc.estado, uc.fecha_inicio, uc.fecha_fin, uc.profesor
FROM usuario_cursos uc
JOIN cursos c ON uc.curso_id = c.id
WHERE uc.usuario_id = ?
");
$stmt->execute([$user['id']]);
}
echo json_encode($stmt->fetchAll());
break;
case 'POST':
if ($user['rol'] !== 'admin') {
http_response_code(403);
echo json_encode(['error' => 'Acceso no autorizado']);
exit;
}
$data = json_decode(file_get_contents('php://input'), true);
$stmt = $pdo->prepare("
INSERT INTO cursos (nombre, tipo, competencias)
VALUES (?, ?, ?)
");
$stmt->execute([
$data['nombre'],
$data['tipo'],
$data['competencias'] ?? null
]);
echo json_encode(['success' => true, 'id' => $pdo->lastInsertId()]);
break;
default:
http_response_code(405);
echo json_encode(['error' => 'Método no permitido']);
}
?>