Skip to content

Instantly share code, notes, and snippets.

@TylerPachal
Created January 21, 2019 18:21
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save TylerPachal/307903c203ae580eb610f28d47aea0d1 to your computer and use it in GitHub Desktop.
Save TylerPachal/307903c203ae580eb610f28d47aea0d1 to your computer and use it in GitHub Desktop.
def join_game(user_id, game_id) do
with {:ok, user} <- Users.get(user_id),
{:ok, game} <- Games.get(game_id),
false <- Game.is_full?(game),
false <- Game.is_started?(game),
true <- User.has_permission?(user, game)
do
Game.add_user(game, user)
else
# Don't care what specific thing failed
_ -> :error
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment