defmodule FrenzyWeb.FilterController do use FrenzyWeb, :controller alias Frenzy.{Repo, Feed, Filter, Rule} alias FrenzyWeb.Router.Helpers, as: Routes alias FrenzyWeb.Endpoint import Ecto.Query def edit(conn, %{"id" => id}) do filter = Repo.get(Filter, id) |> Repo.preload(:rules) changeset = Filter.changeset(filter, %{}) render(conn, "edit.html", changeset: changeset) end def update(conn, %{"id" => id, "filter" => filter_params}) do filter = Repo.get(Filter, id) |> Repo.preload(:rules) changeset = Filter.changeset(filter, filter_params) Repo.update(changeset) redirect(conn, to: Routes.filter_path(Endpoint, :edit, id)) end def add_rule(conn, %{"id" => id}) do filter = Repo.get(Filter, id) changeset = Ecto.build_assoc(filter, :rules, %{ property: "title", mode: "contains_string", param: "", weight: 5 }) Repo.insert(changeset) redirect(conn, to: Routes.filter_path(Endpoint, :edit, id)) end def remove_rule(conn, %{"id" => id, "rule_id" => rule_id}) do rule = Repo.get(Rule, rule_id) Repo.delete(rule) redirect(conn, to: Routes.filter_path(Endpoint, :edit, id)) end end