Extract LastFm.Config module

This commit is contained in:
Claudio Ortolina
2024-12-03 08:56:23 +00:00
parent 9d02a8e00b
commit b49434b789
3 changed files with 20 additions and 8 deletions
+18
View File
@@ -0,0 +1,18 @@
defmodule LastFm.Config do
@type t :: %{
api: module(),
api_key: String.t(),
user: String.t(),
refresh_interval: pos_integer()
}
defstruct api: LastFm.Api,
api_key: "",
user: "",
refresh_interval: 60_000
@spec new(Enumerable.t()) :: t()
def new(opts) do
struct(__MODULE__, opts)
end
end
+1 -8
View File
@@ -5,12 +5,7 @@ defmodule LastFm.Refresh do
alias LastFm.Feed
@type config :: %{
api: module(),
api_key: String.t(),
user: String.t(),
refresh_interval: pos_integer()
}
@type config :: LastFm.Config.t()
@spec start_link(config) :: GenServer.on_start()
def start_link(config) do
@@ -25,8 +20,6 @@ defmodule LastFm.Refresh do
@impl true
@spec init(config) :: {:ok, config, {:continue, :refresh}} | :ignore
def init(config) do
config = Map.new(config)
if enabled?(config) do
{:ok, config, {:continue, :refresh}}
else
+1
View File
@@ -43,5 +43,6 @@ defmodule MusicLibrary.Application do
defp last_fm_config do
Application.get_env(:music_library, LastFm)
|> LastFm.Config.new()
end
end