Use NimbleOptions to validate MusicBrainz.Config

This commit is contained in:
Claudio Ortolina
2024-12-04 15:01:52 +00:00
parent 8c5f199773
commit 39b925676f
+16 -1
View File
@@ -7,9 +7,24 @@ defmodule MusicBrainz.Config do
defstruct api: MusicBrainz.APIImpl,
user_agent: "change me"
@schema NimbleOptions.new!(
api: [
type: :atom,
required: true
],
user_agent: [
type: :string,
required: false,
default: "change me"
]
)
@doc NimbleOptions.docs(@schema)
@spec resolve(atom) :: t
def resolve(otp_app) do
app_config = Application.get_env(otp_app, MusicBrainz)
app_config =
Application.get_env(otp_app, MusicBrainz)
|> NimbleOptions.validate!(@schema)
struct(__MODULE__, app_config)
end