View Source ExPipedrive.RateLimit (ex_pipedrive v0.1.0)

Parses Pipedrive rate-limit response headers.

Recognizes:

  • x-ratelimit-limit / x-ratelimit-remaining / x-ratelimit-reset
  • x-daily-requests-left
  • retry-after (seconds or HTTP-date)

Summary

Functions

Delay in milliseconds before retrying, preferring Retry-After, then x-ratelimit-reset, otherwise nil.

Builds a rate-limit map from a Tesla/HTTP header list.

Types

@type t() :: %{
  optional(:limit) => non_neg_integer(),
  optional(:remaining) => non_neg_integer(),
  optional(:reset) => non_neg_integer(),
  optional(:daily_requests_left) => non_neg_integer(),
  optional(:retry_after) => non_neg_integer()
}

Functions

@spec delay_ms(t() | nil | [{binary(), binary()}]) :: non_neg_integer() | nil

Delay in milliseconds before retrying, preferring Retry-After, then x-ratelimit-reset, otherwise nil.

@spec from_headers([{binary(), binary()}]) :: t() | nil

Builds a rate-limit map from a Tesla/HTTP header list.

Returns nil when no recognized rate-limit headers are present.