Class: RailsBase::Authentication::DestroyUser

Inherits:
ServiceBase
  • Object
show all
Includes:
UserSettingsHelper
Defined in:
app/services/rails_base/authentication/destroy_user.rb

Constant Summary

Constants included from UserSettingsHelper

UserSettingsHelper::CONFIRM_PASSWORD_FLOW, UserSettingsHelper::DATUM_LENGTH, UserSettingsHelper::DATUM_REASON, UserSettingsHelper::DATUM_TTL

Instance Method Summary collapse

Methods included from UserSettingsHelper

#datum

Methods inherited from ServiceBase

inherited, #internal_validate, #service_base_logging

Methods included from ServiceLogging

#aletered_message, #class_name, #log, #log_prefix, #logger, #service_id

Instance Method Details

#callObject



8
9
10
11
12
13
# File 'app/services/rails_base/authentication/destroy_user.rb', line 8

def call
  datum = get_short_lived_datum(data)
  validate_datum?(datum)
  # sign_out(current_user)
  destroy_user!
end

#destroy_user!Object



15
16
17
18
19
20
# File 'app/services/rails_base/authentication/destroy_user.rb', line 15

def destroy_user!
  log(level: :warn, msg: "Destroying user: #{current_user.id}")

  # delete the user
  current_user.soft_destroy_user!
end

#get_short_lived_datum(data) ⇒ Object



36
37
38
# File 'app/services/rails_base/authentication/destroy_user.rb', line 36

def get_short_lived_datum(data)
  ShortLivedData.find_datum(data: data, reason: DATUM_REASON)
end

#validate!Object



40
41
42
43
# File 'app/services/rails_base/authentication/destroy_user.rb', line 40

def validate!
  raise "Expected data to be a String. Received #{data.class}" unless data.is_a? String
  raise "Expected current_user to be a User. Received #{current_user.class}" unless current_user.is_a? User
end

#validate_datum?(datum) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/services/rails_base/authentication/destroy_user.rb', line 22

def validate_datum?(datum)
  return true if datum[:valid]

  if datum[:found]
    msg = "Errors with Destroy User token: #{datum[:invalid_reason].join(", ")}. Please try again"
    log(level: :warn, msg: msg)
    context.fail!(message: msg)
  end

  log(level: :warn, msg: "Could not find datum code. User may be doing Fishyyyyy things")

  context.fail!(message: "Invalid Data Code. Please retry action")
end