Skip to content

Commit 0a769b0

Browse files
committed
Fall back to given url when feed does not contain one
1 parent 68315d0 commit 0a769b0

File tree

3 files changed

+19
-7
lines changed

3 files changed

+19
-7
lines changed

lib/ex_rss/feed_adder.ex

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,13 @@ defmodule ExRss.FeedAdder do
3535
{:ok, raw_feed} <- Feed.parse(response.body) do
3636
candidate = extract_candidate(raw_feed)
3737

38+
candidate =
39+
if is_nil(candidate.url) do
40+
Map.put(candidate, :url, url)
41+
else
42+
candidate
43+
end
44+
3845
{:ok, candidate}
3946
else
4047
i when is_integer(i) ->

lib/ex_rss_web/feed_live/new.ex

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,21 @@ defmodule ExRssWeb.FeedLive.New do
4040
Repo.get!(User, socket.assigns.current_user.id)
4141
|> FeedAdder.add_feed(feed_params)
4242

43-
case Repo.transaction(multi) do
44-
{:ok, %{feed: added_feed}} ->
45-
socket =
43+
socket =
44+
case Repo.transaction(multi) do
45+
{:ok, %{feed: added_feed}} ->
4646
socket
4747
|> assign(:candidate, nil)
4848
|> assign(:added_feed, added_feed)
49+
# TODO
50+
# Handle case where feed does not have a title.
51+
|> put_flash(:info, "Feed “#{added_feed.title}” was added")
4952

50-
{:noreply, socket}
53+
{:error, _error} ->
54+
socket
55+
end
5156

52-
{:error, _error} ->
53-
{:noreply, socket}
54-
end
57+
{:noreply, socket}
5558
end
5659

5760
def format_frequency(%{seconds: seconds, posts: posts}) do

lib/ex_rss_web/feed_live/new.html.heex

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,6 @@
2121
<h1 class="text-m">This feed has been added</h1>
2222

2323
<p><code>{@added_feed.url}</code></p>
24+
25+
<a href={~p"/feeds"}>Back to feeds</a>
2426
<% end %>

0 commit comments

Comments
 (0)