class Trusona::Workers::UserAccountFinder

Finds user accounts

Public Class Methods

new(user_accounts_service: nil, account_lookups_service: nil) click to toggle source
# File lib/trusona/workers/user_account_finder.rb, line 8
def initialize(user_accounts_service: nil, account_lookups_service: nil)
  @lookups = account_lookups_service ||
             Trusona::Services::AccountLookupsService.new
  @user_accounts = user_accounts_service ||
                   Trusona::Services::UserAccountsService.new
end

Public Instance Methods

find(opts) click to toggle source
# File lib/trusona/workers/user_account_finder.rb, line 15
def find(opts)
  raise ArgumentError, 'Missing email or trusona id' unless
    contains_required_arguments(opts)

  resource = build_resource(opts)

  return @user_accounts.get(resource) if opts[:trusona_id] || opts['trusona_id']

  @lookups.create(resource) if opts[:email] || opts['email']
end

Private Instance Methods

build_resource(options) click to toggle source
# File lib/trusona/workers/user_account_finder.rb, line 32
def build_resource(options)
  Trusona::Resources::UserAccount.new(options)
end
contains_required_arguments(opts) click to toggle source
# File lib/trusona/workers/user_account_finder.rb, line 28
def contains_required_arguments(opts)
  opts[:email] || opts['email'] || opts[:trusona_id] || opts['trusona_id']
end