class RailsIbm::Uprofile::Bluepages::Typeahead

Public Class Methods

new(query, serial: '000000', limit: 10, start: 0) click to toggle source
# File lib/rails_ibm/uprofile/bluepages/typeahead.rb, line 9
def initialize(query, serial: '000000', limit: 10, start: 0)
  uri = "#{RailsIbm::Uprofile::BLUEPAGES_V1_URI}?userId=#{serial}&rows=#{limit}&start=#{start}&query=#{query}&searchConfig=typeahead_search"
  @response = HTTParty.get(uri, header: headers, format: :plain)
end

Public Instance Methods

results(options) click to toggle source
# File lib/rails_ibm/uprofile/bluepages/typeahead.rb, line 14
def results(options)
  search_results(options)
end

Private Instance Methods

default_values(options) click to toggle source
# File lib/rails_ibm/uprofile/bluepages/typeahead.rb, line 47
def default_values(options)
  default_params = { parsed: true, detailed: false, remap: false, array: true }
  default_params.merge(options)
end
headers() click to toggle source
# File lib/rails_ibm/uprofile/bluepages/typeahead.rb, line 20
def headers
  {
    'Content-Type': 'application/json',
    accept: 'application/json'
  }
end
search_results(options) click to toggle source
# File lib/rails_ibm/uprofile/bluepages/typeahead.rb, line 31
def search_results(options)
  results = JSON.parse @response, symbolize_names: true
  return [] if results == nil

  return results unless default_values(options)[:parsed]

  results = parse_user results, %i[results], remap: default_values(options)[:remap]
  return results unless default_values(options)[:detailed]

  emails = [results].flatten.map { |u| u[:uid] }
  results = Uid.new(emails).results(parsed: default_values(options)[:parsed], remap: default_values(options)[:remap])

  return results.map{ |_k,v| v } if default_values(options)[:array]
  results
end
search_type() click to toggle source
# File lib/rails_ibm/uprofile/bluepages/typeahead.rb, line 27
def search_type
  'typeahead'
end