Class: SpreeCmCommissioner::AccountDeletion

Inherits:
BaseInteractor show all
Defined in:
app/interactors/spree_cm_commissioner/account_deletion.rb

Instance Method Summary collapse

Instance Method Details

#callObject

:user​​​, :is_from_backend, :user_deletion_reason_id, :optional_reason



6
7
8
9
# File 'app/interactors/spree_cm_commissioner/account_deletion.rb', line 6

def call
  save_survey unless is_from_backend
  destroy_user
end

#destroy_userObject



23
24
25
# File 'app/interactors/spree_cm_commissioner/account_deletion.rb', line 23

def destroy_user
  context.user.update(account_deletion_at: Time.current)
end

#save_surveyObject



11
12
13
14
15
16
17
18
19
20
21
# File 'app/interactors/spree_cm_commissioner/account_deletion.rb', line 11

def save_survey
  survey = SpreeCmCommissioner::UserDeletionSurvey.new(
    user_id: context.user.id,
    user_deletion_reason_id: context.user_deletion_reason_id,
    optional_reason: context.optional_reason
  )

  return if survey.save

  context.fail!(message: survey.errors.full_messages.to_sentence)
end