diff --git a/lib/music_brainz/config.ex b/lib/music_brainz/config.ex index d14eb1e8..3f82f48c 100644 --- a/lib/music_brainz/config.ex +++ b/lib/music_brainz/config.ex @@ -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