diff --git a/lib/chess/game_state.ex b/lib/chess/game_state.ex index 79b78ce..76fd780 100644 --- a/lib/chess/game_state.ex +++ b/lib/chess/game_state.ex @@ -5,6 +5,11 @@ defmodule Chess.GameState do alias Chess.Moves alias Chess.Moves.Piece + def game_over?(game) do + game.state == "checkmate" || + game.state == "stalemate" + end + def state(board, colour) do cond do player_checkmated?(board, colour) -> diff --git a/lib/chess/store/game.ex b/lib/chess/store/game.ex index a412f33..cfa04ce 100644 --- a/lib/chess/store/game.ex +++ b/lib/chess/store/game.ex @@ -69,11 +69,6 @@ defmodule Chess.Store.Game do end def validate_king_in_check(changeset, _, _), do: changeset - def game_over?(game) do - game.state == "checkmate" || - game.state == "stalemate" - end - def ordered(query) do query |> order_by([game], desc: game.inserted_at) diff --git a/lib/chess_web/views/game_view.ex b/lib/chess_web/views/game_view.ex index 23a55f7..1ff0ac6 100644 --- a/lib/chess_web/views/game_view.ex +++ b/lib/chess_web/views/game_view.ex @@ -2,6 +2,7 @@ defmodule ChessWeb.GameView do use ChessWeb, :view alias Chess.Store.Game + alias Chess.GameState import Chess.Auth, only: [current_user: 1] @@ -12,7 +13,7 @@ defmodule ChessWeb.GameView do end def game_over?(game) do - Game.game_over?(game) + GameState.game_over?(game) end def state(conn, game) do