diff --git a/clases/ClasePartida.php b/clases/ClasePartida.php index 3c38d62..10c9f91 100644 --- a/clases/ClasePartida.php +++ b/clases/ClasePartida.php @@ -143,10 +143,63 @@ class Partida } } - /** - * Devuelve las preguntas asignadas a la partida, junto con el - * idPartidaxPregunta (necesario para guardar respuestas después). - */ + public function iniciar() + { + $conexion = conexionBD(); + if (is_array($conexion)) { + return $conexion; + } + try { + $consulta = $conexion->prepare(" + UPDATE partida + SET fechaInicio = NOW() + WHERE idPartida = :idPartida + AND fechaInicio IS NULL + "); + $consulta->bindParam(":idPartida", $this->idPartida); + $consulta->execute(); + return [ + "exito" => "La partida se inició correctamente.", + "exito_tecnico" => $this->idPartida + ]; + } catch (PDOException $error) { + return [ + "error" => "No se pudo iniciar la partida.", + 'error_tecnico' => $error->getMessage() + ]; + } + } + + + public function finalizar() + { + $conexion = conexionBD(); + if (is_array($conexion)) { + return $conexion; + } + try { + $consulta = $conexion->prepare(" + UPDATE partida + SET fechaFin = NOW() + WHERE idPartida = :idPartida + AND fechaInicio IS NOT NULL + AND fechaFin IS NULL + "); + $consulta->bindParam(":idPartida", $this->idPartida); + $consulta->execute(); + return [ + "exito" => "La partida se finalizó correctamente.", + "exito_tecnico" => $this->idPartida + ]; + } catch (PDOException $error) { + return [ + "error" => "No se pudo finalizar la partida.", + 'error_tecnico' => $error->getMessage() + ]; + } + } + + public function getPreguntas() { $conexion = conexionBD(); @@ -175,9 +228,7 @@ class Partida } } - /** - * Asocia una pregunta ya existente a esta partida. - */ + public function asignarPregunta($idPregunta) { $conexion = conexionBD();