Sha256: c01472d034f7c867f80a34abcfbbdea8b09327be049c8a0be58ca4bdbd062b55

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

class CatarsePagarme::VerifyPagarmeWorker
  include Sidekiq::Worker
  sidekiq_options retry: 5

  def perform key
    source = find_source_by_key key
    payment = PaymentEngines.find_payment({ key: key })

    raise "payment not found" unless payment.present?
    raise "source not found" unless source.present? && source.try(:[], "metadata").try(:[], "key") == key

    payment.update(gateway_id: source["id"])
    payment.pagarme_delegator.update_transaction
    payment.pagarme_delegator.change_status_by_transaction source["status"]
  end

  private

  def find_source_by_key key
    ::PagarMe.api_key = CatarsePagarme.configuration.api_key
    request = PagarMe::Request.new('/search', 'GET')
    query = {
      type: 'transaction',
      query: {
        from: 0,
        size: 1,
        query: {
          bool: {
            must: {
              match: {
                "metadata.key" => key
              }
            }
          }
        }
      }.to_json
    }

    request.parameters.merge!(query)
    response = request.run
    response.try(:[], "hits").try(:[], "hits").try(:[], 0).try(:[], "_source")
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
catarse_pagarme-3.0.1 app/workers/catarse_pagarme/verify_pagarme_worker.rb