Sha256: 425930a02678312a1d3840028b7ad3fa0eb55445779f7301d8e14316ad0e9a40

Contents?: true

Size: 695 Bytes

Versions: 3

Compression:

Stored size: 695 Bytes

Contents

class PayURails::WebhooksController < ActionController::Base
  rescue_from PayURails::SignatureVerificationError, with: :unverified

  def confirmation
    process_webhook(resource_class: PayU::Confirmation)
  end


  def response_page
    process_webhook(resource_class: PayU::Response)
  end


  private def process_webhook(resource_class:)
    resource = validate(resource: resource_class.new(params))

    PayURails.instrument(resource_class::EVENT, resource: resource)

    head :ok
  rescue PayURails::SignatureVerificationError
    head :unauthorized
  end


  private def validate(resource:)
    raise PayURails::SignatureVerificationError unless resource.valid?

    resource
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
payu-latam-rails-1.0.3 app/controllers/pay_u_rails/webhooks_controller.rb
payu-latam-rails-1.0.2 app/controllers/pay_u_rails/webhooks_controller.rb
payu-latam-rails-1.0.1 app/controllers/pay_u_rails/webhooks_controller.rb