Sha256: 3481405399a503785bf6499abaf968a85e1d8fd8ef661c5823f39aae4a6f7c3e

Contents?: true

Size: 895 Bytes

Versions: 2

Compression:

Stored size: 895 Bytes

Contents

module CatarsePagarme
  class NotificationsController < CatarsePagarme::ApplicationController
    skip_before_filter :authenticate_user!

    def create
      if payment
        payment.payment_notifications.create(contribution: payment.contribution, extra_data: params.to_json)

        if PagarMe::validate_fingerprint(payment.try(:gateway_id), params[:fingerprint])

          if params[:current_status] == 'paid' && params[:desired_status] == 'refunded'
            payment.try(:invalid_refund)
          else
            delegator.change_status_by_transaction(params[:current_status])
            delegator.update_transaction
          end

          return render nothing: true, status: 200
        end
      end

      render nothing: true, status: 404
    end

    protected

    def payment
      @payment ||=  PaymentEngines.find_payment({ gateway_id: params[:id] })
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
catarse_pagarme-2.6.7 app/controllers/catarse_pagarme/notifications_controller.rb
catarse_pagarme-2.6.6 app/controllers/catarse_pagarme/notifications_controller.rb