Files
music_library/lib/music_library_web/controllers/last_fm_controller.ex
T
2026-03-30 14:42:20 +01:00

25 lines
720 B
Elixir

defmodule MusicLibraryWeb.LastFmController do
use MusicLibraryWeb, :controller
alias MusicLibrary.Secrets
alias MusicLibraryWeb.ErrorMessages
def callback(conn, %{"token" => token}) do
with {:ok, session} <- LastFm.get_session(token),
{:ok, _secret} <- Secrets.store("last_fm_session_key", session.key) do
conn
|> put_toast(:info, gettext("Successfully connected your Last.fm account"))
|> redirect(to: ~p"/")
else
{:error, reason} ->
conn
|> put_toast(
:error,
gettext("Failed to connect your Last.fm account") <>
": " <> ErrorMessages.friendly_message(reason)
)
|> redirect(to: ~p"/")
end
end
end