20 lines
575 B
Elixir
20 lines
575 B
Elixir
defmodule MusicLibraryWeb.LastFmController do
|
|
use MusicLibraryWeb, :controller
|
|
|
|
def callback(conn, %{"token" => token}) do
|
|
case LastFm.get_session(token) do
|
|
{:ok, session} ->
|
|
conn
|
|
|> put_session(:last_fm_user, session.name)
|
|
|> put_session(:last_fm_key, session.key)
|
|
|> put_flash(:info, "Successfully authenticated with Last.fm.")
|
|
|> redirect(to: ~p"/")
|
|
|
|
{:error, reason} ->
|
|
conn
|
|
|> put_flash(:error, "Failed to authenticate with Last.fm: #{reason}")
|
|
|> redirect(to: ~p"/")
|
|
end
|
|
end
|
|
end
|