Sha256: b23e85ade7174003d3a1f3b7d6006529f0aca3590d2da39c5b210556471ca2d8

Contents?: true

Size: 791 Bytes

Versions: 26

Compression:

Stored size: 791 Bytes

Contents

module Spree
  module Wallet
    class CreatePaymentSource
      prepend Spree::ServiceModule::Base

      def call(payment_method:, params: {}, user: nil)
        return failure(nil, :missing_attributes) if params.nil?

        source_attributes = {
          payment_method_id: payment_method.id,
          user_id: user&.id,
          gateway_payment_profile_id: params[:gateway_payment_profile_id],
          gateway_customer_profile_id: params[:gateway_customer_profile_id],
          last_digits: params[:last_digits],
          month: params[:month],
          year: params[:year],
          name: params[:name]
        }

        source = payment_method.payment_source_class.new(source_attributes)

        source.save ? success(source) : failure(source)
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
spree_core-4.10.1 app/services/spree/wallet/create_payment_source.rb
spree_core-4.10.0 app/services/spree/wallet/create_payment_source.rb
spree_core-4.9.0 app/services/spree/wallet/create_payment_source.rb
spree_core-4.8.3 app/services/spree/wallet/create_payment_source.rb
spree_core-4.8.2 app/services/spree/wallet/create_payment_source.rb
spree_core-4.7.3 app/services/spree/wallet/create_payment_source.rb
spree_core-4.6.6 app/services/spree/wallet/create_payment_source.rb
spree_core-4.5.5 app/services/spree/wallet/create_payment_source.rb
spree_core-4.4.1 app/services/spree/wallet/create_payment_source.rb
spree_core-4.5.4 app/services/spree/wallet/create_payment_source.rb
spree_core-4.6.5 app/services/spree/wallet/create_payment_source.rb
spree_core-4.7.2 app/services/spree/wallet/create_payment_source.rb
spree_core-4.7.1 app/services/spree/wallet/create_payment_source.rb
spree_core-4.6.4 app/services/spree/wallet/create_payment_source.rb
spree_core-4.7.0 app/services/spree/wallet/create_payment_source.rb
spree_core-4.6.3 app/services/spree/wallet/create_payment_source.rb
spree_core-4.6.2 app/services/spree/wallet/create_payment_source.rb
spree_core-4.6.1 app/services/spree/wallet/create_payment_source.rb
spree_core-4.6.0 app/services/spree/wallet/create_payment_source.rb
spree_core-4.5.3 app/services/spree/wallet/create_payment_source.rb