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