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