Explicit client configuration for MollieEx API calls.
A client is immutable and carries all user-visible SDK configuration. Resource modules receive it explicitly instead of reading process state, application environment, or environment variables.
Use new!/1 for boot-time configuration that should fail fast:
client =
MollieEx.Client.new!(
api_key: System.fetch_env!("MOLLIE_API_KEY")
)Use new/1 when configuration is dynamic and invalid values should be
returned as {:error, %MollieEx.Error{}}.
Summary
Functions
Builds a MollieEx client from explicit options.
Builds a MollieEx client or raises %MollieEx.Error{} for invalid config.
Types
@type auth() :: {:api_key, credential()} | {:oauth, credential()} | {:organization_token, credential()} | {:token_provider, module(), atom(), list()}
@type t() :: %MollieEx.Client{ auth: auth(), base_url: String.t(), connect_timeout: pos_integer(), finch_name: atom() | nil, max_retries: non_neg_integer(), max_retry_after: pos_integer(), pool_timeout: pos_integer(), profile_id: String.t() | nil, receive_timeout: pos_integer(), request_timeout: pos_integer(), telemetry_prefix: [atom()], testmode: boolean() | nil, transport: transport(), user_agent: String.t(), user_agent_suffix: String.t() | nil }
@type transport() :: :finch | {:req_test, atom()}
Functions
@spec new(keyword() | map()) :: {:ok, t()} | {:error, MollieEx.Error.t()}
Builds a MollieEx client from explicit options.
Exactly one auth mode must be configured. This function validates static configuration only; function credentials and token providers are not called during construction.
Supported auth options are :api_key, :oauth_token,
:organization_token, and :token_provider.
Builds a MollieEx client or raises %MollieEx.Error{} for invalid config.