1
0
mirror of https://github.com/danbee/chess synced 2025-03-04 08:39:06 +00:00
chess/lib/chess_web/views/game_channel_view.ex

34 lines
787 B
Elixir

defmodule ChessWeb.GameChannelView do
@moduledoc false
use ChessWeb, :view
import ChessWeb.GameView, only: [player: 2, opponent: 2]
alias Chess.Board
alias Chess.MoveList
def after_join_payload(socket, game) do
%{
player_id: socket.assigns.user_id,
opponent_id: opponent(game, socket.assigns.user_id).id,
player: player(game, socket.assigns.user_id),
opponent: opponent(game, socket.assigns.user_id).name,
board: Board.transform(game.board),
turn: game.turn,
state: game.state,
moves: MoveList.transform(game.moves),
}
end
def update_payload(game) do
%{
board: Board.transform(game.board),
turn: game.turn,
state: game.state,
moves: MoveList.transform(game.moves),
}
end
end