Skip to content

Commit 823b054

Browse files
committed
Add missing API function clause
1 parent ab183ea commit 823b054

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

lib/ex_rss/feed.ex

+9-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,15 @@ defmodule ExRss.Feed do
4848
"""
4949
def changeset(struct, params \\ %{}) do
5050
struct
51-
|> cast(params, [:title, :url])
51+
|> cast(params, [:title, :url, :position])
52+
|> validate_required([:user_id, :title, :url])
53+
|> assoc_constraint(:user)
54+
|> unique_constraint(:url)
55+
end
56+
57+
def api_changeset(struct, params \\ %{}) do
58+
struct
59+
|> cast(params, [:position])
5260
|> validate_required([:user_id, :title, :url])
5361
|> assoc_constraint(:user)
5462
|> unique_constraint(:url)

lib/ex_rss_web/controllers/api/v1/feed_controller.ex

+19
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,25 @@ defmodule ExRssWeb.Api.V1.FeedController do
114114
end
115115
end
116116

117+
def update(conn, %{"id" => id, "feed" => feed_params}) do
118+
changeset =
119+
Repo.get!(User, conn.assigns.current_account.id)
120+
|> assoc(:feeds)
121+
|> Repo.get!(id)
122+
|> Repo.preload(:entries)
123+
|> Feed.api_changeset(feed_params)
124+
125+
case Repo.update(changeset) do
126+
{:ok, feed} ->
127+
json(conn, feed)
128+
129+
_ ->
130+
conn
131+
|> resp(:bad_request, "")
132+
|> halt
133+
end
134+
end
135+
117136
def update(conn, _) do
118137
conn
119138
|> resp(:bad_request, "")

0 commit comments

Comments
 (0)