# frozen_string_literal: true class SecondFactor::AuthManagerResult STATUSES = { no_second_factor: 1, second_factor_auth_completed: 2, second_factor_auth_skipped: 3, }.freeze private_constant :STATUSES attr_reader :data def initialize(status, data) if !STATUSES.key?(status) raise ArgumentError.new( "#{status.inspect} is not a valid status. Allowed statuses: #{STATUSES.inspect}", ) end @status_id = STATUSES[status] @data = data end def no_second_factors_enabled? @status_id == STATUSES[:no_second_factor] end def second_factor_auth_completed? @status_id == STATUSES[:second_factor_auth_completed] end def second_factor_auth_skipped? @status_id == STATUSES[:second_factor_auth_skipped] end end