sloanelybutsurely.com/lib/core/posts.ex

37 lines
635 B
Elixir

defmodule Core.Posts do
@moduledoc false
import Ecto.Changeset
import Ecto.Query
alias Core.Repo
def changeset(%Schema.Post{} = post, attrs) do
post
|> cast(attrs, [:title, :body])
|> validate_required([:body])
end
def create_post(attrs) do
%Schema.Post{}
|> changeset(attrs)
|> Repo.insert()
end
def update_post(post, attrs) do
post
|> changeset(attrs)
|> Repo.update()
end
def get_post!(id) do
Repo.get!(Schema.Post, id)
end
def list_posts do
query =
from post in Schema.Post,
order_by: [desc: post.inserted_at]
Repo.all(query)
end
end