Class: Careerjet::APIClient
- Inherits:
-
Object
- Object
- Careerjet::APIClient
- Defined in:
- lib/careerjet/version.rb,
lib/careerjet/api_client.rb
Class Method Summary collapse
Instance Method Summary collapse
- #check_locale_param ⇒ Object
- #check_search_params(search_params) ⇒ Object
- #init_locale ⇒ Object
-
#initialize(params) ⇒ APIClient
constructor
A new instance of APIClient.
- #raise_errors(response) ⇒ Object
- #search(search_params) ⇒ Object
Constructor Details
#initialize(params) ⇒ APIClient
Returns a new instance of APIClient.
9 10 11 12 13 |
# File 'lib/careerjet/api_client.rb', line 9 def initialize(params) @params = params || {} init_locale check_locale_param end |
Class Method Details
.version ⇒ Object
3 4 5 |
# File 'lib/careerjet/version.rb', line 3 def self.version '3.1.2' end |
Instance Method Details
#check_locale_param ⇒ Object
15 16 17 18 19 |
# File 'lib/careerjet/api_client.rb', line 15 def check_locale_param unless Careerjet::LOCALES.keys.include?(@params[:locale_code]) raise Careerjet::UnknownLocale, "Not supported locale '#{@params[:locale_code]}'" end end |
#check_search_params(search_params) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/careerjet/api_client.rb', line 35 def check_search_params(search_params) @search_params = search_params || {} #set search locale @search_params[:locale_code] = @search_params[:locale_code] || @search_params[:locale] || @params[:locale_code] @search_params.delete(:locale) @search_params.each_key do |k| unless Careerjet::ALLOWED_FIELDS.include? k raise InvalidParam, "Unknown param key '#{k}'" end end unless @search_params[:affid] raise MandatoryParamMissing,"Mandatory param 'affid' missing" end unless @search_params[:user_ip] raise MandatoryParamMissing,"Mandatory param 'user_ip' missing" end unless @search_params[:user_agent] raise MandatoryParamMissing,"Mandatory param 'user_agent' missing" end unless @search_params[:url] raise MandatoryParamMissing,"Mandatory param 'url' missing" end end |
#init_locale ⇒ Object
65 66 67 68 |
# File 'lib/careerjet/api_client.rb', line 65 def init_locale @params[:locale_code] = @params[:locale_code] || @params[:locale] || :en_GB @params.delete(:locale) end |
#raise_errors(response) ⇒ Object
70 71 72 73 74 75 76 77 |
# File 'lib/careerjet/api_client.rb', line 70 def raise_errors response case response.code.to_i when 400..405 raise Careerjet::NotFoundError, "(#{response.code}): #{response.}" when 500..503 raise Careerjet::UnavailableError, "(#{response.code}): #{response.}" end end |
#search(search_params) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/careerjet/api_client.rb', line 21 def search(search_params) @search_params = search_params || {} check_search_params(search_params) referer_uri = URI.parse(search_params.delete(:url)) unless referer_uri.kind_of?(URI::HTTP) or referer_uri.kind_of?(URI::HTTPS) raise URI::InvalidURIError, "Invalid param url #{referer_uri}" end response = RestClient.get [Careerjet::DOMAIN, 'search'].join('/'), params: @search_params,:user_agent => 'careerjet-api-client-v' + Careerjet::APIClient.version + '-ruby-v' + RUBY_VERSION,:referer => referer_uri raise_errors response results = response.body Careerjet::Mash.from_json results end |