diff --git a/lib/frenzy_web/controllers/feed_controller.ex b/lib/frenzy_web/controllers/feed_controller.ex index 7cb0e57..dcb05cc 100644 --- a/lib/frenzy_web/controllers/feed_controller.ex +++ b/lib/frenzy_web/controllers/feed_controller.ex @@ -36,20 +36,38 @@ defmodule FrenzyWeb.FeedController do end def create(conn, %{"feed" => %{"group_id" => group_id, "feed_url" => feed_url}}) do + user = conn.assigns[:user] group = Repo.get(Group, group_id) + feed_url = feed_url |> String.trim() - changeset = - Ecto.build_assoc(group, :feeds, %{ - feed_url: feed_url, - filter: %Filter{ - mode: "reject", - score: 0 - } - }) + cond do + group != nil && group.user_id == user.id -> + if String.length(feed_url) > 0 do + changeset = + Ecto.build_assoc(group, :feeds, %{ + feed_url: feed_url, + filter: %Filter{ + mode: "reject", + score: 0 + } + }) - {:ok, feed} = Repo.insert(changeset) + {:ok, feed} = Repo.insert(changeset) - redirect(conn, to: Routes.group_path(Endpoint, :show, group_id)) + conn + |> put_flash(:info, "Feed created") + |> redirect(to: Routes.group_path(Endpoint, :show, group_id)) + else + conn + |> put_flash(:error, "Feed URL must not be empty") + |> redirect(to: Routes.group_path(Endpoint, :show, group_id)) + end + + true -> + conn + |> put_flash(:error, "Invalid group") + |> redirect(to: Routes.group_path(Endpoint, :index)) + end end def edit(conn, _params) do