controlador y clase Partida
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user