cb-api 6.2.3 → 6.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/cb/clients/saved_search.rb +14 -7
- data/lib/cb/config.rb +1 -1
- data/lib/cb/models/implementations/saved_search.rb +53 -27
- data/lib/cb/responses/saved_search/update.rb +33 -0
- data/lib/cb/utils/api.rb +9 -9
- data/lib/cb/version.rb +1 -1
- metadata +3 -2
@@ -4,37 +4,44 @@ module Cb
|
|
4
4
|
class SavedSearch
|
5
5
|
def create(saved_search)
|
6
6
|
body = saved_search.create_to_xml
|
7
|
-
json = cb_client.cb_post(Cb.configuration.uri_saved_search_create, :
|
7
|
+
json = cb_client.cb_post(Cb.configuration.uri_saved_search_create, body: body)
|
8
8
|
singular_model_response(json, saved_search.external_user_id)
|
9
9
|
end
|
10
10
|
|
11
11
|
def update(saved_search)
|
12
|
-
body = saved_search.
|
13
|
-
json = cb_client.
|
14
|
-
|
12
|
+
body = saved_search.update_to_json
|
13
|
+
json = cb_client.cb_put(Cb.configuration.uri_saved_search_update, body: body, headers: headers)
|
14
|
+
Responses::SavedSearch::Update.new(json)
|
15
15
|
end
|
16
16
|
|
17
17
|
def delete(saved_search)
|
18
18
|
body = saved_search.delete_to_xml
|
19
|
-
json = cb_client.cb_post(Cb.configuration.uri_saved_search_delete, :
|
19
|
+
json = cb_client.cb_post(Cb.configuration.uri_saved_search_delete, body: body)
|
20
20
|
Responses::SavedSearch::Delete.new(json)
|
21
21
|
end
|
22
22
|
|
23
23
|
def retrieve(oauth_token, external_id)
|
24
24
|
query = retrieve_query(oauth_token)
|
25
25
|
uri = replace_uri_field(Cb.configuration.uri_saved_search_retrieve, ':did', external_id)
|
26
|
-
json = cb_client.cb_get(uri, :
|
26
|
+
json = cb_client.cb_get(uri, query: query)
|
27
27
|
Responses::SavedSearch::Retrieve.new(json)
|
28
28
|
end
|
29
29
|
|
30
30
|
def list(oauth_token, hostsite)
|
31
31
|
query = list_query(oauth_token, hostsite)
|
32
|
-
json = cb_client.cb_get(Cb.configuration.uri_saved_search_list, :
|
32
|
+
json = cb_client.cb_get(Cb.configuration.uri_saved_search_list, query: query)
|
33
33
|
Responses::SavedSearch::List.new(json)
|
34
34
|
end
|
35
35
|
|
36
36
|
private
|
37
37
|
|
38
|
+
def headers
|
39
|
+
{
|
40
|
+
"developerkey" => Cb.configuration.dev_key,
|
41
|
+
'Content-Type' => "application/json"
|
42
|
+
}
|
43
|
+
end
|
44
|
+
|
38
45
|
def cb_client
|
39
46
|
@cb_client ||= Cb::Utils::Api.instance
|
40
47
|
end
|
data/lib/cb/config.rb
CHANGED
@@ -55,7 +55,7 @@ module Cb
|
|
55
55
|
@uri_resume_delete ||= '/v2/resume/delete'
|
56
56
|
@uri_saved_search_retrieve ||= '/cbapi/savedsearches/:did'
|
57
57
|
@uri_saved_search_create ||= '/v2/savedsearch/create'
|
58
|
-
@uri_saved_search_update ||= '/
|
58
|
+
@uri_saved_search_update ||= '/cbapi/SavedSearches'
|
59
59
|
@uri_saved_search_delete ||= '/v1/savedsearch/delete'
|
60
60
|
@uri_saved_search_list ||= '/cbapi/savedsearches'
|
61
61
|
@uri_anon_saved_search_create ||= '/v1/anonymoussavedjobsearch/create'
|
@@ -6,22 +6,23 @@ module Cb
|
|
6
6
|
:keywords, :order_by, :order_direction, :radius, :pay_high, :pay_low, :posted_within,
|
7
7
|
:pay_info_only, :location, :job_category, :company, :city, :state, :is_daily_email, :external_id,
|
8
8
|
:external_user_id, :job_search_url, :jrdid, :errors, :browser_id, :session_id, :test, :email_address,
|
9
|
-
:country, :search_parameters, :did
|
9
|
+
:country, :search_parameters, :did, :user_oauth_token, :email_delivery_day
|
10
10
|
|
11
11
|
def initialize(args={})
|
12
|
-
@host_site = args['HostSite'] || String.new
|
13
|
-
@cobrand = args['Cobrand'] || String.new
|
14
|
-
@search_name = args['SearchName'] || String.new
|
15
|
-
@site_id = args['SiteId'] || String.new
|
16
|
-
@is_daily_email = args['IsDailyEmail'] || false
|
17
|
-
@email_delivery_day = args['EmailDeliveryDay'] || String.new
|
18
|
-
@job_search_url = args['JobSearchUrl'] || String.new
|
19
|
-
@external_id = args['ExternalID'] || String.new
|
20
|
-
@external_user_id = args['ExternalUserID'] || String.new
|
21
|
-
@browser_id = args['BrowserID'] || nil
|
22
|
-
@session_id = args['SessionID'] || String.new
|
23
|
-
@email_address = args['EmailAddress'] || String.new
|
24
|
-
@did = args['DID'] || String.new
|
12
|
+
@host_site = args['HostSite'] || args[:host_site] || String.new
|
13
|
+
@cobrand = args['Cobrand'] || args[:cobrand] || String.new
|
14
|
+
@search_name = args['SearchName'] || args[:search_name] || String.new
|
15
|
+
@site_id = args['SiteId'] || args[:site_id] || String.new
|
16
|
+
@is_daily_email = args['IsDailyEmail'] || args[:is_daily_email] || false
|
17
|
+
@email_delivery_day = args['EmailDeliveryDay'] || args[:email_delivery_day] || String.new
|
18
|
+
@job_search_url = args['JobSearchUrl'] || args[:job_search_url] || String.new
|
19
|
+
@external_id = args['ExternalID'] || args[:external_id] || String.new
|
20
|
+
@external_user_id = args['ExternalUserID'] || args[:external_user_id] || String.new
|
21
|
+
@browser_id = args['BrowserID'] || args[:browser_id] || nil
|
22
|
+
@session_id = args['SessionID'] || args[:session_id] || String.new
|
23
|
+
@email_address = args['EmailAddress'] || args[:email_address] || String.new
|
24
|
+
@did = args['DID'] || args[:did] || String.new
|
25
|
+
@user_oauth_token = args['userOAuthToken'] || args[:user_oauth_token] || String.new
|
25
26
|
@search_parameters = SearchParameters.new(args['SavedSearchParameters'] || {})
|
26
27
|
end
|
27
28
|
|
@@ -56,19 +57,19 @@ module Cb
|
|
56
57
|
eos
|
57
58
|
end
|
58
59
|
|
59
|
-
def
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
60
|
+
def update_to_json
|
61
|
+
hash = {
|
62
|
+
"DID" => did,
|
63
|
+
"SearchName" => search_name,
|
64
|
+
"HostSite" => host_site,
|
65
|
+
"SiteID" => site_id,
|
66
|
+
"Cobrand" => cobrand,
|
67
|
+
"IsDailyEmail" => is_daily_email,
|
68
|
+
"userOAuthToken" => user_oauth_token,
|
69
|
+
"SavedSearchParameters" => search_parameters.to_hash
|
70
|
+
}
|
71
|
+
hash["EmailDeliveryDay"] = email_delivery_day unless is_daily_email
|
72
|
+
hash.to_json
|
72
73
|
end
|
73
74
|
|
74
75
|
def delete_to_xml
|
@@ -166,6 +167,31 @@ module Cb
|
|
166
167
|
</SearchParameters>
|
167
168
|
eos
|
168
169
|
end
|
170
|
+
|
171
|
+
def to_hash
|
172
|
+
{
|
173
|
+
"BooleanOperator" => boolean_operator,
|
174
|
+
"JobCategory" => job_category,
|
175
|
+
"EducationCode" => education_code,
|
176
|
+
"EmpType" => emp_type,
|
177
|
+
"ExcludeCompanyNames" => exclude_company_names,
|
178
|
+
"ExcludeJobTitles" => exclude_job_titles,
|
179
|
+
"Country" => country,
|
180
|
+
"IndustryCodes" => industry_codes,
|
181
|
+
"JobTitle" => job_title,
|
182
|
+
"Keywords" => keywords,
|
183
|
+
"Location" => location,
|
184
|
+
"OrderBy" => order_by,
|
185
|
+
"OrderDirection" => order_direction,
|
186
|
+
"PayHigh" => pay_high,
|
187
|
+
"PayLow" => pay_low,
|
188
|
+
"PostedWithin" => posted_within,
|
189
|
+
"Radius" => radius,
|
190
|
+
"SpecificEducation" => specific_education,
|
191
|
+
"ExcludeNational" => exclude_national,
|
192
|
+
"PayInfoOnly" => pay_info_only
|
193
|
+
}
|
194
|
+
end
|
169
195
|
end
|
170
196
|
end
|
171
197
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Cb
|
2
|
+
module Responses
|
3
|
+
module SavedSearch
|
4
|
+
class Update < ApiResponse
|
5
|
+
|
6
|
+
protected
|
7
|
+
|
8
|
+
def validate_api_hash
|
9
|
+
required_response_field(collection_node, response)
|
10
|
+
end
|
11
|
+
|
12
|
+
def hash_containing_metadata
|
13
|
+
response
|
14
|
+
end
|
15
|
+
|
16
|
+
def extract_models
|
17
|
+
Models::SavedSearch.new(model_hash)
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def collection_node
|
23
|
+
'Results'
|
24
|
+
end
|
25
|
+
|
26
|
+
def model_hash
|
27
|
+
response[collection_node][0]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/cb/utils/api.rb
CHANGED
@@ -33,9 +33,7 @@ module Cb
|
|
33
33
|
cb_event(:cb_get_before, path, options, nil)
|
34
34
|
response = self.class.get(path, options)
|
35
35
|
cb_event(:cb_get_after, path, options, response)
|
36
|
-
|
37
|
-
set_api_error(validated_response)
|
38
|
-
validated_response
|
36
|
+
validate_response(response)
|
39
37
|
end
|
40
38
|
|
41
39
|
def cb_post(path, options={})
|
@@ -43,9 +41,7 @@ module Cb
|
|
43
41
|
cb_event(:cb_post_before, path, options, nil)
|
44
42
|
response = self.class.post(path, options)
|
45
43
|
cb_event(:cb_post_after, path, options, response)
|
46
|
-
|
47
|
-
set_api_error(validated_response)
|
48
|
-
validated_response
|
44
|
+
validate_response(response)
|
49
45
|
end
|
50
46
|
|
51
47
|
def cb_put(path, options={})
|
@@ -53,9 +49,7 @@ module Cb
|
|
53
49
|
cb_event(:cb_put_before, path, options, nil)
|
54
50
|
response = self.class.put(path, options)
|
55
51
|
cb_event(:cb_put_after, path, options, response)
|
56
|
-
|
57
|
-
set_api_error(validated_response)
|
58
|
-
validated_response
|
52
|
+
validate_response(response)
|
59
53
|
end
|
60
54
|
|
61
55
|
def append_api_responses(obj, resp)
|
@@ -106,6 +100,12 @@ module Cb
|
|
106
100
|
|
107
101
|
private
|
108
102
|
|
103
|
+
def validate_response(response)
|
104
|
+
validated_response = ResponseValidator.validate(response)
|
105
|
+
set_api_error(validated_response)
|
106
|
+
validated_response
|
107
|
+
end
|
108
|
+
|
109
109
|
def api_call_model(api_call_type, path, options, response)
|
110
110
|
Cb::Models::ApiCall.new(api_call_type, path, options, response)
|
111
111
|
end
|
data/lib/cb/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cb-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-04-
|
12
|
+
date: 2014-04-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
@@ -225,6 +225,7 @@ files:
|
|
225
225
|
- lib/cb/responses/saved_search/list.rb
|
226
226
|
- lib/cb/responses/saved_search/singular.rb
|
227
227
|
- lib/cb/responses/saved_search/delete.rb
|
228
|
+
- lib/cb/responses/saved_search/update.rb
|
228
229
|
- lib/cb/responses/saved_search/retrieve.rb
|
229
230
|
- lib/cb/responses/employee_types/search.rb
|
230
231
|
- lib/cb/responses/errors.rb
|