From 79d1b9077b2712d4d4651eaa36c8e63119efd565 Mon Sep 17 00:00:00 2001 From: Zach Daniel Date: Tue, 1 Nov 2022 14:07:56 -0400 Subject: [PATCH] fix: user link as URL --- lib/ash_blog.ex | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/ash_blog.ex b/lib/ash_blog.ex index 5b70821..2869676 100644 --- a/lib/ash_blog.ex +++ b/lib/ash_blog.ex @@ -32,19 +32,25 @@ defmodule AshBlog do element(:updated, DateTime.to_iso8601(last_updated)) ] ++ Enum.map(blog_posts, fn %resource{} = blog_post -> + link = + if opts[:linker] do + opts[:linker].(blog_post) + end + inners = [ element( :id, - Ash.Resource.Info.primary_key(resource) - |> Enum.map_join("-", &to_string(Map.get(blog_post, &1))) + link || + Ash.Resource.Info.primary_key(resource) + |> Enum.map_join("-", &to_string(Map.get(blog_post, &1))) ), element(:title, Map.get(blog_post, AshBlog.DataLayer.Info.title_attribute(resource))), element(:updated, DateTime.to_iso8601(updated.(blog_post))) ] inners = - if opts[:linker] do - [element(:link, %{rel: "alternate", href: opts[:linker].(blog_post)}) | inners] + if link do + [element(:link, %{rel: "alternate", href: link}) | inners] else inners end