18F/identity-idp

View on GitHub
app/forms/password_reset_email_form.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# frozen_string_literal: true

class PasswordResetEmailForm
  include ActiveModel::Model
  include FormEmailValidator

  attr_reader :email

  def initialize(email)
    @email = email
  end

  def resend
    'true'
  end

  def submit
    FormResponse.new(
      success: valid?, errors: errors,
      extra: extra_analytics_attributes
    )
  end

  private

  attr_writer :email

  def extra_analytics_attributes
    {
      user_id: user&.uuid || 'nonexistent-uuid',
      confirmed: user&.confirmed? == true,
      active_profile: user&.active_profile.present?,
    }
  end

  def user
    @user ||= User.find_with_email(email)
  end
end