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; } ?>