diff options
Diffstat (limited to 'app/services/users/upsert_credit_card_validation_service.rb')
-rw-r--r-- | app/services/users/upsert_credit_card_validation_service.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/app/services/users/upsert_credit_card_validation_service.rb b/app/services/users/upsert_credit_card_validation_service.rb new file mode 100644 index 00000000000..70a96b3ec6b --- /dev/null +++ b/app/services/users/upsert_credit_card_validation_service.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Users + class UpsertCreditCardValidationService < BaseService + def initialize(params) + @params = params.to_h.with_indifferent_access + end + + def execute + ::Users::CreditCardValidation.upsert(@params) + + ServiceResponse.success(message: 'CreditCardValidation was set') + rescue ActiveRecord::InvalidForeignKey, ActiveRecord::NotNullViolation => e + ServiceResponse.error(message: "Could not set CreditCardValidation: #{e.message}") + rescue StandardError => e + Gitlab::ErrorTracking.track_exception(e, params: @params, class: self.class.to_s) + ServiceResponse.error(message: "Could not set CreditCardValidation: #{e.message}") + end + end +end |