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 el nombre de la partida if ( !isset($_POST['nombrePartida']) || trim($_POST['nombrePartida']) === '' ) { echo json_encode([ 'error' => 'El nombre de la partida es obligatorio.' ]); break; } // Comprobamos los nombres de los equipos if ( !isset($_POST['nombreEquipo1']) || trim($_POST['nombreEquipo1']) === '' || !isset($_POST['nombreEquipo2']) || trim($_POST['nombreEquipo2']) === '' ) { echo json_encode([ 'error' => 'Los nombres de los equipos son obligatorios.' ]); break; } /* * ========================================== * 1. CREAMOS LA PARTIDA * ========================================== */ $partida = new Partida(); $partida->nombrePartida = trim($_POST['nombrePartida']); // El usuario conectado será el propietario $partida->idUsuario = $_SESSION['idUsuario']; $resultadoPartida = $partida->insertar(); if (isset($resultadoPartida['error'])) { echo json_encode($resultadoPartida); break; } $idPartida = (int)$resultadoPartida['exito_tecnico']; /* * ========================================== * 2. CREAMOS EL EQUIPO 1 * ========================================== */ $equipo1 = new Equipo(); $equipo1->nombreEquipo = trim($_POST['nombreEquipo1']); $resultadoEquipo1 = $equipo1->crear(); if (isset($resultadoEquipo1['error'])) { echo json_encode($resultadoEquipo1); break; } /* * ========================================== * 3. CREAMOS EL EQUIPO 2 * ========================================== */ $equipo2 = new Equipo(); $equipo2->nombreEquipo = trim($_POST['nombreEquipo2']); $resultadoEquipo2 = $equipo2->crear(); if (isset($resultadoEquipo2['error'])) { echo json_encode($resultadoEquipo2); break; } /* * ========================================== * 3. INSERTAMOS LOS EQUIPOS CON SU PARTIDA EN EQUIPOXPARTIDA * ========================================== */ $relacionEquipo1 = new EquipoxPartida( null, $equipo1->idEquipo, $idPartida ); $resultadoRelacion1 = $relacionEquipo1->insertar(); $relacionEquipo2 = new EquipoxPartida( null, $equipo2->idEquipo, $idPartida ); $resultadoRelacion2 = $relacionEquipo2->insertar(); /* * ========================================== * 4. ASIGNAMOS EL USUARIO AL EQUIPO 1 * ========================================== */ $usuarioEquipo = new EquipoxUsuario( null, $_SESSION['idUsuario'], $equipo1->idEquipo ); $resultadoUsuarioEquipo = $usuarioEquipo->registrarUsuarioEnEquipo(); if (isset($resultadoUsuarioEquipo['error'])) { echo json_encode($resultadoUsuarioEquipo); break; } /* * ========================================== * TODO CORRECTO * ========================================== */ echo json_encode([ 'exito' => 'Sala creada correctamente.', 'idPartida' => $resultadoPartida['exito_tecnico'], 'idEquipo1' => $equipo1->idEquipo, 'idEquipo2' => $equipo2->idEquipo ]); 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; } ?>