18F/identity-idp

View on GitHub
app/services/completions_decider.rb

Summary

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

class CompletionsDecider
  def initialize(user_agent:, request_url:)
    @user_agent = user_agent
    @request_url = request_url
  end

  def go_back_to_mobile_app?
    return false if request_url.blank? || redirect_uri.blank?
    desktop_and_app_redirect_uri?
  end

  private

  attr_reader :user_agent, :request_url

  def desktop_and_app_redirect_uri?
    !client.mobile? && !redirect_uri.start_with?('http')
  end

  def client
    @client ||= BrowserCache.parse(user_agent)
  end

  def redirect_uri
    @redirect_uri ||= UriService.params(request_url)[:redirect_uri]
  end
end