988 lines
16 KiB
PHP
988 lines
16 KiB
PHP
|
|
<?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;
|
|
}
|
|
|
|
?>
|
|
|