Class: Users::UpsertCreditCardValidationService
- Inherits:
-
BaseService
- Object
- BaseService
- Users::UpsertCreditCardValidationService
- Defined in:
- app/services/users/upsert_credit_card_validation_service.rb
Instance Attribute Summary
Attributes inherited from BaseService
#current_user, #params, #project
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(params) ⇒ UpsertCreditCardValidationService
constructor
A new instance of UpsertCreditCardValidationService.
Methods included from BaseServiceUtility
#deny_visibility_level, #event_service, #log_error, #log_info, #notification_service, #system_hook_service, #todo_service, #visibility_level
Methods included from Gitlab::Allowable
Constructor Details
#initialize(params) ⇒ UpsertCreditCardValidationService
Returns a new instance of UpsertCreditCardValidationService.
5 6 7 |
# File 'app/services/users/upsert_credit_card_validation_service.rb', line 5 def initialize(params) @params = params.to_h.with_indifferent_access end |
Instance Method Details
#execute ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/services/users/upsert_credit_card_validation_service.rb', line 9 def execute user_id = params.fetch(:user_id) @params = { user_id: user_id, credit_card_validated_at: params.fetch(:credit_card_validated_at), expiration_date: get_expiration_date(params), last_digits: Integer(params.fetch(:credit_card_mask_number), 10), network: params.fetch(:credit_card_type), holder_name: params.fetch(:credit_card_holder_name) } credit_card = Users::CreditCardValidation.find_or_initialize_by_user(user_id) credit_card.update(@params.except(:user_id)) ServiceResponse.success(message: 'CreditCardValidation was set') rescue ActiveRecord::InvalidForeignKey, ActiveRecord::NotNullViolation => e ServiceResponse.error(message: "Could not set CreditCardValidation: #{e.}") rescue StandardError => e Gitlab::ErrorTracking.track_exception(e, params: @params, class: self.class.to_s) ServiceResponse.error(message: "Could not set CreditCardValidation: #{e.}") end |