18F/identity-idp

View on GitHub
app/services/proofing/mock/device_profiling_backend.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module Proofing
  module Mock
    class DeviceProfilingBackend
      RESULTS = %w[
        no_result
        pass
        reject
        review
      ].to_set.freeze

      RESULT_TIMEOUT = 3600

      def record_profiling_result(session_id:, result:)
        raise ArgumentError, "unknown result=#{result}" if !RESULTS.include?(result)

        REDIS_POOL.with do |redis|
          redis.setex("redis-pool:device_profiling:#{session_id}", RESULT_TIMEOUT, result)
        end
      end

      def profiling_result(session_id)
        REDIS_POOL.with do |redis|
          redis.get("redis-pool:device_profiling:#{session_id}")
        end
      end
    end
  end
end