diff --git a/clases/ClasePartida.php b/clases/ClasePartida.php index b765afe..f9e9437 100644 --- a/clases/ClasePartida.php +++ b/clases/ClasePartida.php @@ -142,10 +142,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(); @@ -174,9 +227,7 @@ class Partida } } - /** - * Asocia una pregunta ya existente a esta partida. - */ + public function asignarPregunta($idPregunta) { $conexion = conexionBD();