35 lines
947 B
Elixir
35 lines
947 B
Elixir
defmodule PinchflatWeb.Pages.PageController do
|
|
use PinchflatWeb, :controller
|
|
|
|
alias Pinchflat.Repo
|
|
alias Pinchflat.Sources.Source
|
|
alias Pinchflat.Profiles.MediaProfile
|
|
|
|
def home(conn, params) do
|
|
force_onboarding = params["onboarding"]
|
|
media_profiles_exist = Repo.exists?(MediaProfile)
|
|
sources_exist = Repo.exists?(Source)
|
|
|
|
if !force_onboarding && media_profiles_exist && sources_exist do
|
|
render_home_page(conn)
|
|
else
|
|
render_onboarding_page(conn, media_profiles_exist, sources_exist)
|
|
end
|
|
end
|
|
|
|
defp render_home_page(conn) do
|
|
conn
|
|
|> put_session(:onboarding, false)
|
|
|> render(:home)
|
|
end
|
|
|
|
defp render_onboarding_page(conn, media_profiles_exist, sources_exist) do
|
|
conn
|
|
|> put_session(:onboarding, true)
|
|
|> render(:onboarding_checklist,
|
|
media_profiles_exist: media_profiles_exist,
|
|
sources_exist: sources_exist,
|
|
layout: {Layouts, :onboarding}
|
|
)
|
|
end
|
|
end
|