Module: Lipwa::Webhook
- Extended by:
- Dry::Container::Mixin
- Defined in:
- lib/lipwa/webhook.rb
Overview
Inbound-callback parsing/verification, pluggable per provider. Providers register a parser once (typically at load time — see Lipwa::Webhooks::Mpesa); consumers call Lipwa::Webhook.parse_webhook instead of hand-rolling per-provider payload parsing in their controllers.
Class Method Summary collapse
Class Method Details
.parse_webhook(provider:, body:, headers: {}) ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/lipwa/webhook.rb', line 59 def parse_webhook(provider:, body:, headers: {}) Success(resolve(provider.to_sym).call(body: body, headers: headers)) rescue Dry::Container::KeyError raise Lipwa::UnsupportedProviderError, "no webhook parser registered for #{provider.inspect}" rescue JSON::ParserError => e Failure(Lipwa::WebhookParseError.new(e.)) end |
.register(provider, parser) ⇒ Object
55 56 57 |
# File 'lib/lipwa/webhook.rb', line 55 def register(provider, parser) super(provider.to_sym, parser) end |