blank-white-cards/apps/bwc/lib/bwc.ex
2020-12-28 22:33:14 -08:00

46 lines
1.0 KiB
Elixir

defmodule Bwc do
@moduledoc """
The core module for the Blank White Cards game.
"""
alias Bwc.{Repo, Card, Player}
@repo Repo
def new_player, do: Player.changeset(%Player{})
def create_player(attrs), do: Player.changeset(%Player{},attrs) |> @repo.insert()
def delete_player(id), do: get_player(id) |> @repo.delete
def list_players, do: @repo.all(Player)
def get_player(id), do: @repo.get!(Player, id)
def list_cards, do: @repo.all(Card)
def get_card(id), do: @repo.get!(Card, id)
def get_card_by(attrs), do: @repo.get_by(Card, attrs)
def create_card(attrs), do: Card.changeset(%Card{},attrs) |> @repo.insert()
def new_card, do: Card.changeset(%Card{})
def size, do: Bwc.list_cards |> length
def draw_card, do: Bwc.list_cards |> Enum.random
def draw, do: draw_card()
def delete_card(%Bwc.Card{} = card), do: @repo.delete(card)
def delete_card!(%Bwc.Card{} = card), do: @repo.delete!(card)
def update_card(%Bwc.Card{} = card, updates) do
card
|> Card.changeset(updates)
|> @repo.update
end
end