Tinkex.API.ResponseHandler (Tinkex v0.3.4)
View SourceHTTP response handling and error parsing for Tinkex API.
Handles:
- Status code-based response processing
- JSON decoding
- Error categorization
- Response wrapping for different modes
- Retry-After header parsing
Summary
Functions
Handles a Finch response or error, returning standardized result.
Parses Retry-After headers into milliseconds.
Functions
@spec handle( {:ok, Finch.Response.t()} | {:error, term()}, keyword() ) :: {:ok, map() | Tinkex.API.Response.t()} | {:error, Tinkex.Error.t()}
Handles a Finch response or error, returning standardized result.
Supports different response modes via opts[:response]:
- nil or :raw: Returns decoded JSON data
- :wrapped: Returns
Tinkex.API.Responsestruct with metadata
Options
:response- Response mode (:wrapped or nil):method- HTTP method (for response metadata):url- Request URL (for response metadata):retries- Number of retries performed:elapsed_native- Request duration in native time units
@spec parse_retry_after([{String.t(), String.t()}]) :: non_neg_integer()
Parses Retry-After headers into milliseconds.
Supports both formats:
- retry-after-ms: Direct milliseconds value
- retry-after: Seconds value (converted to ms)
Returns 1000ms (1 second) as default if header is missing or invalid.