21 lines
680 B
Elixir
21 lines
680 B
Elixir
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
|