Sha256: 33ae31a11e661dfbad1ee91bb2bd75481e72f65e4322aa3d0931efd57b3ca582

Contents?: true

Size: 700 Bytes

Versions: 1

Compression:

Stored size: 700 Bytes

Contents

# frozen_string_literal: true

module PayPro
  class Webhook < Resource
    include PayPro::Operations::Deletable
    include PayPro::Operations::Updatable

    RESOURCE_PATH = 'webhooks'

    def self.create_event(
      payload:,
      signature:,
      secret:,
      timestamp:,
      tolerance: PayPro::Signature::DEFAULT_TOLERANCE
    )
      signature_verifier = PayPro::Signature.new(
        payload: payload,
        timestamp: Time.at(timestamp),
        secret: secret,
        tolerance: tolerance
      )

      return unless signature_verifier.verify(signature: signature)

      data = JSON.parse(payload)
      PayPro::Event.create_from_data(data, api_client: nil)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
paypro-2.0.0 lib/pay_pro/entities/webhook.rb