Module: Hooksmith::Idempotency::Extractors

Defined in:
lib/hooksmith/idempotency.rb

Overview

Common idempotency key extractors for popular webhook providers.

Constant Summary collapse

STRIPE =

Stripe uses the event ID as the idempotency key.

->(payload) { payload['id'] || payload[:id] }
GITHUB =

GitHub uses the delivery ID header (must be passed in payload).

->(payload) { payload['delivery_id'] || payload[:delivery_id] }
GENERIC =

Generic extractor that looks for common ID fields.

lambda do |payload|
  payload['id'] || payload[:id] ||
    payload['event_id'] || payload[:event_id] ||
    payload['webhook_id'] || payload[:webhook_id]
end