Sha256: 7a75e163e21729b1d0b96cfcd9db959581613da08b9ca2b963c0386bdf9d52d7

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

module Workarea
  module Forter
    module Tender
      class Paypal

        class PaypalDependencyError < StandardError; end
        attr_reader :tender, :options

        def initialize(tender, options = {})
          @tender = tender
          @options = options
        end

        # @return Hash
        def to_h
          raise PaypalDependencyError.new("Paypal plugin not installed but paypal transaction detected") unless Plugin.installed?("Workarea::Paypal")
          {
            paypal: {
              payerId: tender.payer_id,
              fullPaypalResponsePayload: transaction.response.params,
              payerEmail:  tender.details["payer"],
              paymentStatus: transaction.response.params["payment_status"],
              paymentMethod:  transaction.response.params["payment_type"],
              payerAddressStatus: tender.details["address_status"],
              payerStatus: tender.details["payer_status"]
            }
          }
        end

        private

          def transaction
            @transaction ||= tender.transactions.detect { |t| t.success? }
          end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
workarea-forter-1.2.2 app/services/workarea/forter/tender/paypal.rb