JOL/lib/jol_web/feeds.ex

21 lines
680 B
Elixir
Raw Permalink Normal View History

2024-08-20 20:50:26 +00:00
defmodule JOLWeb.Feeds do
use Phoenix.VerifiedRoutes, endpoint: JOLWeb.Endpoint, router: JOLWeb.Router
alias Atomex.{Feed, Entry}
def build_feed(posts) do
Feed.new(url(~p"/"), DateTime.utc_now, "Jessica Online")
|> Feed.author("Jessica Phoenix Canady", email: "jess@canady.tech")
|> Feed.link(url(~p"/feed.xml"), rel: "self")
|> Feed.entries(Enum.map(posts, &build_entry/1))
|> Feed.build()
|> Atomex.generate_document()
end
defp build_entry(post) do
Entry.new(url(~p"/blog/#{post.slug}"), post.date, post.title)
|> Entry.author(post.author, uri: url(~p"/"))
|> Entry.content(post.body, type: "html")
|> Entry.build()
end
end