Store last fm information into session (doesn't work yet)
This commit is contained in:
+7
-1
@@ -1,7 +1,7 @@
|
||||
defmodule LastFm.API do
|
||||
require Logger
|
||||
|
||||
alias LastFm.{Artist, Track}
|
||||
alias LastFm.{Artist, Session, Track}
|
||||
|
||||
defmodule ErrorResponse do
|
||||
defstruct [:error, :message]
|
||||
@@ -71,6 +71,7 @@ defmodule LastFm.API do
|
||||
|> new_request()
|
||||
|> Req.merge(url: "/", params: params)
|
||||
|> Req.Request.append_response_steps(parse_error: &parse_error/1)
|
||||
|> Req.Request.append_response_steps(parse_session: &parse_session/1)
|
||||
|> get_request()
|
||||
end
|
||||
|
||||
@@ -181,6 +182,11 @@ defmodule LastFm.API do
|
||||
request
|
||||
end
|
||||
|
||||
defp parse_session({request, response}) do
|
||||
session = Session.parse(response.body)
|
||||
{request, Map.put(response, :body, session)}
|
||||
end
|
||||
|
||||
defp parse_error({request, response}) do
|
||||
case response.body do
|
||||
%{"error" => error_number, "message" => message} ->
|
||||
|
||||
Reference in New Issue
Block a user