Current section

Files

Jump to
shopifex lib shopifex_web controllers plan_controller.ex
Raw

lib/shopifex_web/controllers/plan_controller.ex

defmodule ShopifexWeb.PlanController do
use ShopifexWeb, :controller
alias Shopifex.Shops
def plan_schema, do: Application.fetch_env!(:shopifex, :plan_schema)
def index(conn, _params) do
plans = Shops.list_plans()
render(conn, "index.html", plans: plans)
end
def new(conn, _params) do
changeset = Shops.change_plan(struct!(plan_schema()))
render(conn, "new.html", changeset: changeset)
end
def create(conn, %{"plan" => plan_params}) do
case Shops.create_plan(plan_params) do
{:ok, plan} ->
conn
|> put_flash(:info, "Plan created successfully.")
|> redirect(to: Routes.plan_path(conn, :show, plan))
{:error, %Ecto.Changeset{} = changeset} ->
render(conn, "new.html", changeset: changeset)
end
end
def show(conn, %{"id" => id}) do
plan = Shops.get_plan!(id)
render(conn, "show.html", plan: plan)
end
def edit(conn, %{"id" => id}) do
plan = Shops.get_plan!(id)
changeset = Shops.change_plan(plan)
render(conn, "edit.html", plan: plan, changeset: changeset)
end
def update(conn, %{"id" => id, "plan" => plan_params}) do
plan = Shops.get_plan!(id)
case Shops.update_plan(plan, plan_params) do
{:ok, plan} ->
conn
|> put_flash(:info, "Plan updated successfully.")
|> redirect(to: Routes.plan_path(conn, :show, plan))
{:error, %Ecto.Changeset{} = changeset} ->
render(conn, "edit.html", plan: plan, changeset: changeset)
end
end
def delete(conn, %{"id" => id}) do
plan = Shops.get_plan!(id)
{:ok, _plan} = Shops.delete_plan(plan)
conn
|> put_flash(:info, "Plan deleted successfully.")
|> redirect(to: Routes.plan_path(conn, :index))
end
end