The small, replaceable HTTP boundary used by DodoPayments.Client.
An implementation receives a fully prepared request and performs exactly one network attempt. Authentication, retries, decoding, deadlines, telemetry, and Dodo-specific safety policy belong to the SDK request engine.
Custom implementations may use Tesla or an internal HTTP stack. Adapter state is created by the application and stored in the immutable client value; the SDK does not start an adapter process.
Summary
Types
@type result() :: {:ok, DodoPayments.HTTP.Response.t()} | {:error, DodoPayments.HTTP.TransportError.t()}
@type state() :: term()
Callbacks
@callback request(state(), DodoPayments.HTTP.Request.t()) :: result()