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 | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/app/services/users/upsert_credit_card_validation_service.rb b/app/services/users/upsert_credit_card_validation_service.rb index 61cf598f178..62df676db25 100644 --- a/app/services/users/upsert_credit_card_validation_service.rb +++ b/app/services/users/upsert_credit_card_validation_service.rb @@ -7,8 +7,10 @@ module Users end def execute + user_id = params.fetch(:user_id) + @params = { - user_id: params.fetch(:user_id), + 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), @@ -16,7 +18,9 @@ module Users holder_name: params.fetch(:credit_card_holder_name) } - ::Users::CreditCardValidation.upsert(@params) + 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 |