elixir_todo/lib/todo/task.ex
2021-07-11 13:53:19 +02:00

33 lines
629 B
Elixir

defmodule Todo.Task do
use Ecto.Schema
import Ecto.Changeset
alias Todo.Repo
alias Todo.Task
import Ecto.Query
schema "tasks" do
field :is_completed, :boolean, default: false
field :title, :string
timestamps()
end
@doc false
def changeset(task, attrs) do
task
|> cast(attrs, [:title, :is_completed])
|> validate_required([:title, :is_completed])
end
def list_all() do
Repo.all(from t in Task, order_by: t.id)
end
def get_task!(id), do: Repo.get!(Task, id)
def update_task(%Task{} = task, attrs) do
task
|> Task.changeset(attrs)
|> Repo.update()
end
end