37 lines
666 B
Elixir
37 lines
666 B
Elixir
defmodule Core.Statuses do
|
|
@moduledoc false
|
|
import Ecto.Changeset
|
|
import Ecto.Query
|
|
|
|
alias Core.Repo
|
|
|
|
def changeset(%Schema.Status{} = status, attrs \\ %{}) do
|
|
status
|
|
|> cast(attrs, [:body])
|
|
|> validate_required([:body])
|
|
end
|
|
|
|
def create_status(attrs) do
|
|
%Schema.Status{}
|
|
|> changeset(attrs)
|
|
|> Repo.insert()
|
|
end
|
|
|
|
def update_status(status, attrs) do
|
|
status
|
|
|> changeset(attrs)
|
|
|> Repo.update()
|
|
end
|
|
|
|
def get_status!(id) do
|
|
Repo.get!(Schema.Status, id)
|
|
end
|
|
|
|
def list_statuses do
|
|
query =
|
|
from status in Schema.Status,
|
|
order_by: [desc: status.inserted_at]
|
|
|
|
Repo.all(query)
|
|
end
|
|
end
|