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

Use a changeset for inserting moves

This commit is contained in:
Daniel Barber 2018-12-04 13:10:02 -05:00 committed by Daniel Barber
parent e319dda506
commit c5885cc76c
Signed by: danbarber
GPG Key ID: 931D8112E0103DD8
2 changed files with 5 additions and 2 deletions

View File

@ -6,6 +6,7 @@ defmodule Chess.Moves do
alias Chess.Repo
alias Chess.Board
alias Chess.Store.Game
alias Chess.Store.Move
alias Chess.Moves.Pieces.Pawn
alias Chess.Moves.Pieces.Bishop
@ -21,7 +22,7 @@ defmodule Chess.Moves do
Multi.new
|> Multi.update(:game, Game.move_changeset(game, params))
|> Multi.insert(:move, Ecto.build_assoc(game, :moves, params))
|> Multi.insert(:move, Move.changeset(%Move{game_id: game.id}, params))
|> Repo.transaction
end

View File

@ -22,7 +22,7 @@ defmodule Chess.Store.Move do
def changeset(struct, params \\ %{}) do
struct
|> cast(params, required_attrs())
|> cast(params, permitted_attrs())
|> validate_required(required_attrs())
end
@ -36,5 +36,7 @@ defmodule Chess.Store.Move do
}
end
defp permitted_attrs, do: ~w[game_id from to piece piece_captured]a
defp required_attrs, do: ~w[game_id from to piece]a
end