20 lines
592 B
Elixir
20 lines
592 B
Elixir
defmodule MusicLibraryWeb.LastFmController do
|
|
use MusicLibraryWeb, :controller
|
|
|
|
alias MusicLibrary.Secrets
|
|
|
|
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_flash(:info, gettext("Successfully connected your Last.fm account"))
|
|
|> redirect(to: ~p"/")
|
|
else
|
|
{:error, reason} ->
|
|
conn
|
|
|> put_flash(:error, "Failed to connect your Last.fm account: #{reason}")
|
|
|> redirect(to: ~p"/")
|
|
end
|
|
end
|
|
end
|