Controladores restantes

This commit is contained in:
2026-09-25 10:27:36 +02:00
parent 6b7e54f1ee
commit 9657374edd
4 changed files with 1176 additions and 0 deletions
+987
View File
@@ -0,0 +1,987 @@
<?php
session_start();
require_once '../clases/ClasePartida.php';
switch ($_POST['orden']) {
case 'listar':
$partida = new Partida();
$listadoPartidas = $partida->listar();
echo json_encode($listadoPartidas);
break;
case 'buscar':
if (!isset($_POST['idPartida'])) {
echo json_encode([
'error' => 'No se ha indicado la partida.'
]);
break;
}
$partida = new Partida();
$partida->idPartida = intval($_POST['idPartida']);
$resultado = $partida->buscar();
echo json_encode($resultado);
break;
case 'crear':
//Comprobamos que haya un usuario conectado
if (!isset($_SESSION['idUsuario'])) {
echo json_encode([
'error' => 'Debes iniciar sesión para crear una partida.'
]);
break;
}
//Comprobamos que se haya introducido un nombre
if (
!isset($_POST['nombrePartida']) ||
trim($_POST['nombrePartida']) === ''
) {
echo json_encode([
'error' => 'El nombre de la partida es obligatorio.'
]);
break;
}
//Creamos la partida
$partida = new Partida();
$partida->nombrePartida = trim($_POST['nombrePartida']);
//El usuario conectado será el propietario de la partida.
$partida->idUsuario = $_SESSION['idUsuario'];
$resultado = $partida->insertar();
echo json_encode($resultado);
break;
case 'editar':
/*
|--------------------------------------------------------------
| Usuario conectado
|--------------------------------------------------------------
*/
if (!isset($_SESSION['idUsuario'])) {
echo json_encode([
'error' => 'Debes iniciar sesión.'
]);
break;
}
//Comprobamos los datos
if (
!isset($_POST['idPartida']) ||
!isset($_POST['nombrePartida'])
) {
echo json_encode([
'error' => 'Faltan datos para editar la partida.'
]);
break;
}
$partida = new Partida();
$partida->idPartida = intval($_POST['idPartida']);
$partida->nombrePartida = trim($_POST['nombrePartida']);
//Buscamos la partida
$datosPartida = $partida->buscar();
if (!$datosPartida || isset($datosPartida['error'])) {
echo json_encode([
'error' => 'La partida indicada no existe.'
]);
break;
}
//Comprobamos que el usuario sea el propietario
if (
$datosPartida['idUsuario'] !=
$_SESSION['idUsuario']
) {
echo json_encode([
'error' => 'No tienes permiso para editar esta partida.'
]);
break;
}
$partida->idUsuario = $datosPartida['idUsuario'];
$resultado = $partida->editar();
echo json_encode($resultado);
break;
case 'eliminar':
if (!isset($_SESSION['idUsuario'])) {
echo json_encode([
'error' => 'Debes iniciar sesión.'
]);
break;
}
if (!isset($_POST['idPartida'])) {
echo json_encode([
'error' => 'No se ha indicado la partida.'
]);
break;
}
$partida = new Partida();
$partida->idPartida = intval($_POST['idPartida']);
//Buscamos la partida
$datosPartida = $partida->buscar();
if (!$datosPartida || isset($datosPartida['error'])) {
echo json_encode([
'error' => 'La partida no existe.'
]);
break;
}
//Solo el propietario puede eliminarla
if (
$datosPartida['idUsuario'] !=
$_SESSION['idUsuario']
) {
echo json_encode([
'error' => 'No tienes permiso para eliminar esta partida.'
]);
break;
}
$resultado = $partida->eliminar();
echo json_encode($resultado);
break;
case 'listarDelUsuario':
if (!isset($_SESSION['idUsuario'])) {
echo json_encode([
'error' => 'Debes iniciar sesión.'
]);
break;
}
$partida = new Partida();
$partida->idUsuario = $_SESSION['idUsuario'];
$resultado = $partida->listarDelUsuario();
echo json_encode($resultado);
break;
case 'getPreguntas':
if (!isset($_POST['idPartida'])) {
echo json_encode([
'error' => 'No se ha indicado la partida.'
]);
break;
}
$partida = new Partida();
$partida->idPartida = intval($_POST['idPartida']);
$resultado = $partida->getPreguntas();
echo json_encode($resultado);
break;
// ASIGNAR UNA PREGUNTA A UNA PARTIDA
case 'asignarPregunta':
if (
!isset($_POST['idPartida']) ||
!isset($_POST['idPregunta'])
) {
echo json_encode([
'error' => 'Faltan datos.'
]);
break;
}
$partida = new Partida();
$partida->idPartida = intval($_POST['idPartida']);
$idPregunta = intval($_POST['idPregunta']);
//Comprobamos que no esté ya asignada
if ($partida->preguntaAsignada($idPregunta)) {
echo json_encode([
'error' =>
'La pregunta ya está asignada a esta partida.'
]);
break;
}
$resultado =
$partida->asignarPregunta($idPregunta);
echo json_encode($resultado);
break;
// COMPROBAR SI UNA PREGUNTA ESTÁ ASIGNADA
case 'preguntaAsignada':
if (
!isset($_POST['idPartida']) ||
!isset($_POST['idPregunta'])
) {
echo json_encode([
'error' => 'Faltan datos.'
]);
break;
}
$partida = new Partida();
$partida->idPartida =
intval($_POST['idPartida']);
$resultado =
$partida->preguntaAsignada(
intval($_POST['idPregunta'])
);
echo json_encode([
'asignada' => $resultado
]);
break;
// CONTAR PREGUNTAS DE UNA PARTIDA
case 'contarPreguntas':
if (!isset($_POST['idPartida'])) {
echo json_encode([
'error' => 'No se ha indicado la partida.'
]);
break;
}
$partida = new Partida();
$partida->idPartida =
intval($_POST['idPartida']);
$resultado =
$partida->contarPreguntasAsignadas();
echo json_encode([
'totalPreguntas' => $resultado
]);
break;
// REGISTRAR EQUIPO EN UNA PARTIDA
case 'registrarEquipo':
if (
!isset($_POST['idPartida']) ||
!isset($_POST['idEquipo'])
) {
echo json_encode([
'error' => 'Faltan datos.'
]);
break;
}
$partida = new Partida();
$partida->idPartida =
intval($_POST['idPartida']);
$resultado =
$partida->registrarEquipoEnPartida(
intval($_POST['idEquipo'])
);
echo json_encode($resultado);
break;
// OBTENER EQUIPOS DE UNA PARTIDA
case 'getEquipos':
if (!isset($_POST['idPartida'])) {
echo json_encode([
'error' => 'No se ha indicado la partida.'
]);
break;
}
$partida = new Partida();
$partida->idPartida =
intval($_POST['idPartida']);
$resultado =
$partida->getEquiposParticipantes();
echo json_encode($resultado);
break;
// OBTENER JUGADORES DE UNA PARTIDA
case 'getJugadores':
if (!isset($_POST['idPartida'])) {
echo json_encode([
'error' => 'No se ha indicado la partida.'
]);
break;
}
$partida = new Partida();
$partida->idPartida =
intval($_POST['idPartida']);
$resultado =
$partida->getJugadoresDeLaPartida();
echo json_encode($resultado);
break;
case 'iniciar':
/*
|--------------------------------------------------------------
| Debe haber un usuario conectado
|--------------------------------------------------------------
*/
if (!isset($_SESSION['idUsuario'])) {
echo json_encode([
'error' => 'Debes iniciar sesión.'
]);
break;
}
//Comprobamos que se haya indicado la partida
if (!isset($_POST['idPartida'])) {
echo json_encode([
'error' => 'No se ha indicado la partida.'
]);
break;
}
$partida = new Partida();
$partida->idPartida =
intval($_POST['idPartida']);
//Buscamos la partida
$datosPartida = $partida->buscar();
if (!$datosPartida || isset($datosPartida['error'])) {
echo json_encode([
'error' => 'La partida no existe.'
]);
break;
}
//Solo el creador puede iniciar la partida
if (
$datosPartida['idUsuario'] !=
$_SESSION['idUsuario']
) {
echo json_encode([
'error' =>
'Solo el creador de la partida puede iniciarla.'
]);
break;
}
//Comprobamos que haya preguntas
$numeroPreguntas =
$partida->contarPreguntasAsignadas();
if ($numeroPreguntas <= 0) {
echo json_encode([
'error' =>
'No puedes iniciar una partida sin preguntas.'
]);
break;
}
/*
Iniciamos la partida
Este método deberá cambiar el estado de la partida
de "esperando" a "jugando".
*/
$resultado = $partida->iniciar();
echo json_encode($resultado);
break;
// OBTENER LA PREGUNTA ACTUAL
case 'getPreguntaActual':
if (!isset($_POST['idPartida'])) {
echo json_encode([
'error' => 'No se ha indicado la partida.'
]);
break;
}
$partida = new Partida();
$partida->idPartida =
intval($_POST['idPartida']);
//Obtenemos la pregunta actual
$resultado =
$partida->getPreguntaActual();
echo json_encode($resultado);
break;
case 'siguientePregunta':
if (!isset($_SESSION['idUsuario'])) {
echo json_encode([
'error' => 'Debes iniciar sesión.'
]);
break;
}
if (!isset($_POST['idPartida'])) {
echo json_encode([
'error' => 'No se ha indicado la partida.'
]);
break;
}
$partida = new Partida();
$partida->idPartida =
intval($_POST['idPartida']);
//Comprobamos que el usuario sea el creador
$datosPartida = $partida->buscar();
if (!$datosPartida || isset($datosPartida['error'])) {
echo json_encode([
'error' => 'La partida no existe.'
]);
break;
}
if (
$datosPartida['idUsuario'] !=
$_SESSION['idUsuario']
) {
echo json_encode([
'error' =>
'Solo el creador puede pasar a la siguiente pregunta.'
]);
break;
}
//Pasamos a la siguiente pregunta
$resultado =
$partida->siguientePregunta();
echo json_encode($resultado);
break;
// REGISTRAR RESPUESTA
case 'responder':
if (!isset($_SESSION['idUsuario'])) {
echo json_encode([
'error' => 'Debes iniciar sesión.'
]);
break;
}
if (
!isset($_POST['idPartida']) ||
!isset($_POST['idPregunta']) ||
!isset($_POST['idRespuesta'])
) {
echo json_encode([
'error' => 'Faltan datos para registrar la respuesta.'
]);
break;
}
$partida = new Partida();
$partida->idPartida =
intval($_POST['idPartida']);
$idPregunta =
intval($_POST['idPregunta']);
$idRespuesta =
intval($_POST['idRespuesta']);
//Registramos la respuesta del usuario
$resultado =
$partida->registrarRespuesta(
$_SESSION['idUsuario'],
$idPregunta,
$idRespuesta
);
echo json_encode($resultado);
break;
// COMPROBAR SI LA PARTIDA HA TERMINADO PARA EL USUARIO
case 'estaFinalizada':
if (!isset($_SESSION['idUsuario'])) {
echo json_encode([
'error' => 'Debes iniciar sesión.'
]);
break;
}
if (!isset($_POST['idPartida'])) {
echo json_encode([
'error' => 'No se ha indicado la partida.'
]);
break;
}
$partida = new Partida();
$partida->idPartida =
intval($_POST['idPartida']);
$resultado =
$partida->estaFinalizadaParaUsuario(
$_SESSION['idUsuario']
);
echo json_encode([
'finalizada' => $resultado
]);
break;
// CONTAR RESPUESTAS DEL USUARIO
case 'contarRespuestas':
if (!isset($_SESSION['idUsuario'])) {
echo json_encode([
'error' => 'Debes iniciar sesión.'
]);
break;
}
if (!isset($_POST['idPartida'])) {
echo json_encode([
'error' => 'No se ha indicado la partida.'
]);
break;
}
$partida = new Partida();
$partida->idPartida =
intval($_POST['idPartida']);
$resultado =
$partida->contarRespuestasUsuario(
$_SESSION['idUsuario']
);
echo json_encode([
'totalRespondidas' => $resultado
]);
break;
case 'finalizar':
if (!isset($_SESSION['idUsuario'])) {
echo json_encode([
'error' => 'Debes iniciar sesión.'
]);
break;
}
if (!isset($_POST['idPartida'])) {
echo json_encode([
'error' => 'No se ha indicado la partida.'
]);
break;
}
$partida = new Partida();
$partida->idPartida =
intval($_POST['idPartida']);
//Buscamos la partida
$datosPartida = $partida->buscar();
if (!$datosPartida || isset($datosPartida['error'])) {
echo json_encode([
'error' => 'La partida no existe.'
]);
break;
}
//Solo el creador puede finalizarla
if (
$datosPartida['idUsuario'] !=
$_SESSION['idUsuario']
) {
echo json_encode([
'error' =>
'Solo el creador puede finalizar la partida.'
]);
break;
}
$resultado =
$partida->finalizar();
echo json_encode($resultado);
break;
default:
echo json_encode([
'error' => 'La orden indicada no existe.'
]);
break;
}
?>