From fe0c58917f25489bb13ed6d39c49661a5ba8ddb7 Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Sun, 11 Mar 2018 13:23:39 -0400 Subject: [PATCH] Remove unnecessary API controller --- .../controllers/api/game_controller.ex | 60 -------------- .../controllers/api/game_controller_test.exs | 83 ------------------- 2 files changed, 143 deletions(-) delete mode 100644 lib/chess_web/controllers/api/game_controller.ex delete mode 100644 test/chess_web/controllers/api/game_controller_test.exs diff --git a/lib/chess_web/controllers/api/game_controller.ex b/lib/chess_web/controllers/api/game_controller.ex deleted file mode 100644 index 86358e8..0000000 --- a/lib/chess_web/controllers/api/game_controller.ex +++ /dev/null @@ -1,60 +0,0 @@ -defmodule ChessWeb.Api.GameController do - use ChessWeb, :controller - - alias Chess.Store.Game - alias Chess.Board - - alias ChessWeb.GameChannel - - import Chess.Auth, only: [current_user: 1] - - def show(conn, %{"id" => id}) do - game = - conn - |> current_user() - |> Game.for_user() - |> Repo.get!(id) - - conn - |> json(game_attrs(conn, game)) - end - - def update(conn, %{"id" => id, "move" => move_params}) do - game = - conn - |> current_user() - |> Game.for_user() - |> Repo.get!(id) - - changeset = Game.changeset( - game, %{ - board: Board.move_piece(game.board, move_params), - turn: Game.change_turn(game.turn) - } - ) - - case Repo.update(changeset) do - {:ok, game} -> - GameChannel.update_game(game) - - conn - |> json(game_attrs(conn, game)) - end - end - - defp game_attrs(conn, game) do - %{ - board: Board.transform(game.board), - player: player(conn, game), - turn: game.turn - } - end - - defp player(conn, game) do - if game.user_id == current_user(conn).id do - "white" - else - "black" - end - end -end diff --git a/test/chess_web/controllers/api/game_controller_test.exs b/test/chess_web/controllers/api/game_controller_test.exs deleted file mode 100644 index 61900c8..0000000 --- a/test/chess_web/controllers/api/game_controller_test.exs +++ /dev/null @@ -1,83 +0,0 @@ -defmodule Chess.ApiGameControllerTest do - use ChessWeb.ConnCase - - alias Chess.Auth.Guardian - - import Chess.Factory - - test "shows chosen game", %{conn: conn} do - user = insert(:user) - opponent = insert(:user, %{email: "revali@rito.village"}) - game = insert(:game, %{user_id: user.id, opponent_id: opponent.id}) - - conn = - conn - |> login(user) - |> get(api_game_path(conn, :show, game)) - - assert json_response(conn, 200) - end - - test "does not show a game if the user is not a player", %{conn: conn} do - user = insert(:user) - opponent = insert(:user, %{email: "revali@rito.village"}) - game = insert(:game, %{user_id: user.id, opponent_id: opponent.id}) - - other_user = insert(:user, %{email: "mipha@zora.domain"}) - - conn = - conn - |> login(other_user) - - assert_error_sent 404, fn -> - get(conn, api_game_path(conn, :show, game.id)) - end - end - - test "responds with 403 if user is not logged in", %{conn: conn} do - user = insert(:user) - opponent = insert(:user, %{email: "revali@rito.village"}) - game = insert(:game, %{user_id: user.id, opponent_id: opponent.id}) - - conn = - conn - |> get(api_game_path(conn, :show, game.id)) - - assert json_response(conn, 403) - end - - test "does not update a game if the user is not a player", %{conn: conn} do - user = insert(:user) - opponent = insert(:user, %{email: "revali@rito.village"}) - game = insert(:game, %{user_id: user.id, opponent_id: opponent.id}) - - other_user = insert(:user, %{email: "mipha@zora.domain"}) - - conn = - conn - |> login(other_user) - - assert_error_sent 404, fn -> - patch( - conn, - api_game_path(conn, :update, game.id), - %{move: %{from: [1, 1], to: [2, 1]}} - ) - end - end - - test "renders page not found when id is nonexistent", %{conn: conn} do - user = insert(:user) - conn = login(conn, user) - - assert_error_sent 404, fn -> - get(conn, api_game_path(conn, :show, -1)) - end - end - - defp login(conn, user) do - conn - |> Guardian.Plug.sign_in(user) - end -end -