module HawatelSearchJobs::Api::CareerJet

Constants

DEFAULT
RESULT_LIMIT

Public Class Methods

page(args) click to toggle source

Show next page of results

@param args [Hash] @option args [Integer] :page specified page number (default 0) @option args [String] :query_key full url from last query

@example

page({:query_key => result.key, :page => 2}

@return [Hash<OpenStrunct>]

# File lib/hawatel_search_jobs/api/careerjet.rb, line 72
def page(args)
  args[:page] = 0 if args[:page].nil?
  args[:query_key] = args[:query_key].gsub(/&page=.*/, '') << "&page=#{args[:page]+1}"
  return search(args)
end

Private Class Methods

build_url(args) click to toggle source

Build query URL

@param args [Hash] @option args query [Hash] - search criteria

- *:keywords* (String) - keywords for search
- *:location* (String) - specified location for search criteria (default: europe)

@option settings [Hash]

- *:api* (String) - api ip or domainname

@example

build_url(:query => {:keywords => 'ruby'}, :settings => {:api => 'http://api...'} }

@return [String] ready to call URL

# File lib/hawatel_search_jobs/api/careerjet.rb, line 93
def build_url(args)
  keywords  = args[:query][:keywords] if !args[:query][:keywords].to_s.empty?
  api_url   = args[:settings][:api]   if !args[:settings][:api].to_s.empty?
  page_size = args[:settings][:page_size].to_s.empty? ? RESULT_LIMIT : args[:settings][:page_size].to_i
  page_size = RESULT_LIMIT if page_size <= 0 || page_size > 99

  if keywords && api_url
    !args[:query][:location].to_s.empty? ? location = args[:query][:location] : location = 'worldwide'
    "http://#{api_url}/search?locale_code=US_en&pagesize=#{page_size}&sort=date&keywords=#{keywords}&location=#{location}&page=1"
  end
end
parse_raw_data(result) click to toggle source

Build jobs array with specified attributes

@param result [Hash] @option result [Hash] :jobs jobs hash array return from API

@return [Array<OpenStruct>]

# File lib/hawatel_search_jobs/api/careerjet.rb, line 112
def parse_raw_data(result)
  jobs = Array.new
  return jobs if result['jobs'].to_s.empty?
  result['jobs'].each do |offer|
    job = Hash.new
    job[:jobtitle] = offer['title']
    job[:location] = offer['locations']
    job[:company]  = offer['company']
    job[:date]     = convert_date_to_format(offer['date'],'%d/%m/%y')
    job[:url]      = offer['url']
    job = convert_empty_to_nil(job)
    jobs << OpenStruct.new(job)
  end
  return jobs
end