Sha256: 1c96a3c2a8a6bb7c9fbd9f6b1dad5e7207cc984221c4f87caa475e3048d77860
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
module Pay module Webhooks class LagoController < Pay::ApplicationController if Rails.application.config.action_controller.default_protect_from_forgery skip_before_action :verify_authenticity_token end def create return head :bad_request unless (event = verified_event) queue_event(event) head :ok end private def queue_event(event) return unless Pay::Webhooks.delegator.listening?("lago.#{event["webhook_type"]}") record = Pay::Webhook.create!(processor: :lago, event_type: event["webhook_type"], event: event) Pay::Webhooks::ProcessJob.perform_later(record) end def verified_event payload_json = JSON.parse(request.raw_post) return false unless valid_signature?(request.headers["HTTP_X_LAGO_SIGNATURE"], payload_json) payload_json rescue JSON::ParserError false end def valid_signature?(signature, payload) public_key = Pay::Lago.webhook_public_key Pay::Lago.client.webhooks.valid_signature?(signature, payload, public_key) end def verified_webhook?(signature, payload) Pay::Lago.client.webhooks.valid_signature?(signature, payload_json, public_key) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pay-lago-0.1.1 | app/controllers/pay/webhooks/lago_controller.rb |
pay-lago-0.1.0 | app/controllers/pay/webhooks/lago_controller.rb |