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:
parent
e319dda506
commit
c5885cc76c
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user