Class: Careerjet::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/careerjet/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ Client

Returns a new instance of Client.



8
9
10
11
12
13
# File 'lib/careerjet/client.rb', line 8

def initialize(params)
  @params = params || {}

  set_locale
  check_params
end

Instance Attribute Details

#paramsObject

Returns the value of attribute params.



6
7
8
# File 'lib/careerjet/client.rb', line 6

def params
  @params
end

Instance Method Details

#check_paramsObject



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/careerjet/client.rb', line 15

def check_params
  unless Careerjet::LOCALES.keys.include?(@params[:locale_code])
    raise Careerjet::UnknownLocale, "Not supported locale '#{@params[:locale_code]}'" 
  end

  @params.each_key do |k|
    unless Careerjet::ALLOWED_FIELDS.include? k
      raise InvalidParam, "Unknown param key `#{k}'"
    end
  end
end

#raise_errors(response) ⇒ Object



39
40
41
42
43
44
45
46
# File 'lib/careerjet/client.rb', line 39

def raise_errors response
  case response.code.to_i
  when 400..405
    raise Careerjet::NotFoundError, "(#{response.code}): #{response.message}"
  when 500..503
    raise Careerjet::UnavailableError, "(#{response.code}): #{response.message}"
  end
end

#searchObject



27
28
29
30
31
32
# File 'lib/careerjet/client.rb', line 27

def search
  response  = RestClient.get [Careerjet::DOMAIN, 'search'].join('/'),  params: @params
  raise_errors response

  response.body
end

#set_localeObject



34
35
36
37
# File 'lib/careerjet/client.rb', line 34

def set_locale
  @params[:locale_code] = @params[:locale_code] || @params[:locale] || :en_US
  @params.delete(:locale)
end