43 lines
1.1 KiB
Elixir
43 lines
1.1 KiB
Elixir
|
|
defmodule BerrypodWeb.SettingsController do
|
||
|
|
@moduledoc """
|
||
|
|
No-JS fallback for settings form submissions.
|
||
|
|
|
||
|
|
With JS enabled, the LiveView handles everything. Without JS,
|
||
|
|
the forms POST here and we redirect back to the LiveView page.
|
||
|
|
"""
|
||
|
|
use BerrypodWeb, :controller
|
||
|
|
|
||
|
|
alias Berrypod.Settings
|
||
|
|
alias Berrypod.Stripe.Setup, as: StripeSetup
|
||
|
|
|
||
|
|
def update_from_address(conn, %{"from_address" => address}) do
|
||
|
|
address = String.trim(address)
|
||
|
|
|
||
|
|
if address != "" do
|
||
|
|
Settings.put_setting("email_from_address", address)
|
||
|
|
|
||
|
|
conn
|
||
|
|
|> put_flash(:info, "From address saved")
|
||
|
|
|> redirect(to: ~p"/admin/settings")
|
||
|
|
else
|
||
|
|
conn
|
||
|
|
|> put_flash(:error, "From address can't be blank")
|
||
|
|
|> redirect(to: ~p"/admin/settings")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
def update_signing_secret(conn, %{"webhook" => %{"signing_secret" => secret}}) do
|
||
|
|
if secret == "" do
|
||
|
|
conn
|
||
|
|
|> put_flash(:error, "Please enter a signing secret")
|
||
|
|
|> redirect(to: ~p"/admin/settings")
|
||
|
|
else
|
||
|
|
StripeSetup.save_signing_secret(secret)
|
||
|
|
|
||
|
|
conn
|
||
|
|
|> put_flash(:info, "Signing secret saved")
|
||
|
|
|> redirect(to: ~p"/admin/settings")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end
|