cb-api 1.3.6 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/cb.rb +7 -99
- data/lib/cb/clients/anon_saved_search.rb +42 -0
- data/lib/cb/clients/application.rb +53 -0
- data/lib/cb/clients/application_external.rb +24 -0
- data/lib/cb/clients/category.rb +49 -0
- data/lib/cb/clients/company.rb +34 -0
- data/lib/cb/clients/education.rb +28 -0
- data/lib/cb/clients/email_subscription.rb +55 -0
- data/lib/cb/clients/employee_types.rb +31 -0
- data/lib/cb/clients/job.rb +57 -0
- data/lib/cb/clients/job_branding.rb +21 -0
- data/lib/cb/clients/recommendation.rb +76 -0
- data/lib/cb/clients/saved_search.rb +66 -0
- data/lib/cb/clients/spot.rb +27 -0
- data/lib/cb/clients/talent_network.rb +51 -0
- data/lib/cb/clients/user.rb +94 -0
- data/lib/cb/convenience.rb +83 -0
- data/lib/cb/criteria/job/details.rb +11 -0
- data/lib/cb/criteria/job/search.rb +25 -0
- data/lib/cb/criteria/spot/retrieve.rb +12 -0
- data/lib/cb/exceptions.rb +2 -1
- data/lib/cb/models/implementations/application.rb +92 -0
- data/lib/cb/models/implementations/application_external.rb +28 -0
- data/lib/cb/models/implementations/application_schema.rb +75 -0
- data/lib/cb/models/implementations/branding/media.rb +14 -14
- data/lib/cb/models/implementations/branding/section.rb +14 -15
- data/lib/cb/models/implementations/branding/style.rb +10 -10
- data/lib/cb/models/implementations/branding/styles/base.rb +12 -10
- data/lib/cb/models/implementations/branding/styles/buttons.rb +7 -6
- data/lib/cb/models/implementations/branding/styles/company_info.rb +14 -12
- data/lib/cb/models/implementations/branding/styles/container.rb +7 -6
- data/lib/cb/models/implementations/branding/styles/content.rb +7 -5
- data/lib/cb/models/implementations/branding/styles/css_adapter.rb +39 -41
- data/lib/cb/models/implementations/branding/styles/headings.rb +7 -5
- data/lib/cb/models/implementations/branding/styles/job_details.rb +12 -11
- data/lib/cb/models/implementations/branding/styles/page.rb +7 -5
- data/lib/cb/models/implementations/branding/widget.rb +9 -7
- data/lib/cb/models/implementations/category.rb +24 -0
- data/lib/cb/models/implementations/company.rb +135 -0
- data/lib/cb/models/implementations/education.rb +17 -0
- data/lib/cb/models/implementations/email_subscription.rb +17 -0
- data/lib/cb/models/implementations/employee_type.rb +13 -0
- data/lib/cb/models/implementations/job.rb +167 -0
- data/lib/cb/models/implementations/job_branding.rb +34 -0
- data/lib/cb/models/implementations/saved_search.rb +159 -0
- data/lib/cb/models/implementations/spot.rb +30 -0
- data/lib/cb/models/implementations/talent_network.rb +156 -0
- data/lib/cb/models/implementations/user.rb +58 -0
- data/lib/cb/responses/anonymous_saved_search/create.rb +36 -0
- data/lib/cb/responses/anonymous_saved_search/delete.rb +23 -0
- data/lib/cb/responses/api_response.rb +64 -0
- data/lib/cb/responses/employee_types/search.rb +48 -0
- data/lib/cb/responses/errors.rb +47 -0
- data/lib/cb/responses/metadata.rb +27 -0
- data/lib/cb/responses/saved_search/delete.rb +28 -0
- data/lib/cb/responses/saved_search/list.rb +43 -0
- data/lib/cb/responses/saved_search/singular.rb +50 -0
- data/lib/cb/responses/spot/retrieve_response.rb +31 -20
- data/lib/cb/responses/timing.rb +37 -0
- data/lib/cb/utils/api.rb +2 -2
- data/lib/cb/utils/response_array_extractor.rb +14 -4
- data/lib/cb/version.rb +1 -1
- metadata +114 -69
- data/lib/cb/clients/anon_saved_search_api.rb +0 -41
- data/lib/cb/clients/application_api.rb +0 -78
- data/lib/cb/clients/application_external_api.rb +0 -30
- data/lib/cb/clients/category_api.rb +0 -51
- data/lib/cb/clients/company_api.rb +0 -39
- data/lib/cb/clients/education_api.rb +0 -37
- data/lib/cb/clients/email_subscription_api.rb +0 -68
- data/lib/cb/clients/employee_types_api.rb +0 -48
- data/lib/cb/clients/job_api.rb +0 -70
- data/lib/cb/clients/job_branding_api.rb +0 -24
- data/lib/cb/clients/recommendation_api.rb +0 -98
- data/lib/cb/clients/resume_api.rb +0 -185
- data/lib/cb/clients/saved_search_api.rb +0 -139
- data/lib/cb/clients/spot_api.rb +0 -25
- data/lib/cb/clients/talent_network_api.rb +0 -70
- data/lib/cb/clients/user_api.rb +0 -118
- data/lib/cb/criteria/job_details_criteria.rb +0 -11
- data/lib/cb/criteria/job_search_criteria.rb +0 -29
- data/lib/cb/criteria/spot_retrieve_criteria.rb +0 -12
- data/lib/cb/models/implementations/cb_application.rb +0 -91
- data/lib/cb/models/implementations/cb_application_external.rb +0 -31
- data/lib/cb/models/implementations/cb_application_schema.rb +0 -78
- data/lib/cb/models/implementations/cb_category.rb +0 -22
- data/lib/cb/models/implementations/cb_company.rb +0 -133
- data/lib/cb/models/implementations/cb_education.rb +0 -25
- data/lib/cb/models/implementations/cb_email_subscription.rb +0 -19
- data/lib/cb/models/implementations/cb_employee_type.rb +0 -12
- data/lib/cb/models/implementations/cb_job.rb +0 -175
- data/lib/cb/models/implementations/cb_job_branding.rb +0 -33
- data/lib/cb/models/implementations/cb_resume.rb +0 -221
- data/lib/cb/models/implementations/cb_saved_search.rb +0 -228
- data/lib/cb/models/implementations/cb_spot.rb +0 -32
- data/lib/cb/models/implementations/cb_talent_network.rb +0 -155
- data/lib/cb/models/implementations/cb_user.rb +0 -56
- data/lib/cb/responses/raw_api_response.rb +0 -34
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
require 'json'
|
|
2
|
-
|
|
3
|
-
module Cb
|
|
4
|
-
class SavedSearchApi
|
|
5
|
-
|
|
6
|
-
#############################################################
|
|
7
|
-
## Create a Saved Search
|
|
8
|
-
##
|
|
9
|
-
## For detailed information around this API please visit:
|
|
10
|
-
## http://api.careerbuilder.com/savedsearchinfo.aspx
|
|
11
|
-
#############################################################
|
|
12
|
-
def self.create *args
|
|
13
|
-
args = args[0] if args.is_a?(Array) && args.count == 1
|
|
14
|
-
my_api = Cb::Utils::Api.new
|
|
15
|
-
json_hash = my_api.cb_post Cb.configuration.uri_saved_search_create, :body => CbSavedSearch.new(args).create_to_xml
|
|
16
|
-
|
|
17
|
-
if json_hash.has_key? 'SavedJobSearch'
|
|
18
|
-
if json_hash['SavedJobSearch'].has_key? 'SavedSearch'
|
|
19
|
-
saved_search = CbSavedSearch.new json_hash['SavedJobSearch']['SavedSearch']
|
|
20
|
-
else
|
|
21
|
-
saved_search = CbSavedSearch.new json_hash['SavedJobSearch']
|
|
22
|
-
end
|
|
23
|
-
my_api.append_api_responses saved_search, json_hash['SavedJobSearch']
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
my_api.append_api_responses saved_search, json_hash
|
|
27
|
-
|
|
28
|
-
return saved_search
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
#############################################################
|
|
32
|
-
## Update a Saved Search
|
|
33
|
-
##
|
|
34
|
-
## For detailed information around this API please visit:
|
|
35
|
-
## http://api.careerbuilder.com/savedsearchinfo.aspx
|
|
36
|
-
#############################################################
|
|
37
|
-
def self.update *args
|
|
38
|
-
args = args[0] if args.is_a?(Array) && args.count == 1
|
|
39
|
-
my_api = Cb::Utils::Api.new
|
|
40
|
-
json_hash = my_api.cb_post Cb.configuration.uri_saved_search_update, :body => CbSavedSearch.new(args).update_to_xml
|
|
41
|
-
|
|
42
|
-
if json_hash.has_key?('SavedJobSearch')
|
|
43
|
-
saved_search = CbSavedSearch.new json_hash['SavedJobSearch']
|
|
44
|
-
my_api.append_api_responses saved_search, json_hash['SavedJobSearch']
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
my_api.append_api_responses saved_search, json_hash
|
|
48
|
-
|
|
49
|
-
return saved_search
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
#############################################################
|
|
53
|
-
## Delete a Saved Search
|
|
54
|
-
##
|
|
55
|
-
## For detailed information around this API please visit:
|
|
56
|
-
## http://api.careerbuilder.com/savedsearchinfo.aspx
|
|
57
|
-
#############################################################
|
|
58
|
-
|
|
59
|
-
def self.delete *args
|
|
60
|
-
args = args[0] if args.is_a?(Array) && args.count == 1
|
|
61
|
-
my_api = Cb::Utils::Api.new
|
|
62
|
-
json_hash = my_api.cb_post Cb.configuration.uri_saved_search_delete, :body=>CbSavedSearch.new(args).delete_to_xml
|
|
63
|
-
|
|
64
|
-
if json_hash.has_key?('Request')
|
|
65
|
-
saved_search = CbSavedSearch.new json_hash['Request']
|
|
66
|
-
my_api.append_api_responses(saved_search, json_hash['Request'])
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
my_api.append_api_responses(saved_search, json_hash)
|
|
70
|
-
|
|
71
|
-
return saved_search
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
#############################################################
|
|
75
|
-
## Retrieve a Saved Search
|
|
76
|
-
##
|
|
77
|
-
## external_id is the unique ID for the specific Saved Search
|
|
78
|
-
## that is being requested from the API. This External_id is
|
|
79
|
-
## found from running a SavedSearchApi.all call. This is a
|
|
80
|
-
## 64 character long ID.
|
|
81
|
-
##
|
|
82
|
-
## HostSite (From Saved Search List) Required*
|
|
83
|
-
## Developer Key of the owning site for the User is Required*
|
|
84
|
-
##
|
|
85
|
-
## For detailed information around this API please visit:
|
|
86
|
-
## http://api.careerbuilder.com/savedsearchinfo.aspx
|
|
87
|
-
#############################################################
|
|
88
|
-
def self.retrieve developer_key, external_user_id, external_id, host_site
|
|
89
|
-
my_api = Cb::Utils::Api.new
|
|
90
|
-
json_hash = my_api.cb_get Cb.configuration.uri_saved_search_retrieve, :query => {:developerkey=> developer_key, :externaluserid=> external_user_id, :externalid=> external_id, :hostsite=> host_site}
|
|
91
|
-
|
|
92
|
-
if json_hash.has_key?('SavedJobSearch')
|
|
93
|
-
|
|
94
|
-
if json_hash['SavedJobSearch'].has_key?('SavedSearch')
|
|
95
|
-
saved_search = CbSavedSearch.new json_hash['SavedJobSearch']['SavedSearch']
|
|
96
|
-
my_api.append_api_responses saved_search, json_hash['SavedJobSearch']['SavedSearch']
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
my_api.append_api_responses saved_search, json_hash['SavedJobSearch']
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
my_api.append_api_responses saved_search, json_hash
|
|
103
|
-
|
|
104
|
-
return saved_search
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
#############################################################
|
|
108
|
-
## List of Saved Search's
|
|
109
|
-
##
|
|
110
|
-
## For detailed information around this API please visit:
|
|
111
|
-
## http://api.careerbuilder.com/savedsearchinfo.aspx
|
|
112
|
-
#############################################################
|
|
113
|
-
def self.list developer_key, external_user_id, host_site
|
|
114
|
-
my_api = Cb::Utils::Api.new
|
|
115
|
-
json_hash = my_api.cb_get Cb.configuration.uri_saved_search_list, :query => {:developerkey=>developer_key, :ExternalUserId=>external_user_id, :hostsite=> host_site}
|
|
116
|
-
saved_searches = []
|
|
117
|
-
if json_hash.has_key?('SavedJobSearches') && json_hash['SavedJobSearches'].has_key?('SavedSearches')
|
|
118
|
-
saved_search_hash = json_hash['SavedJobSearches']['SavedSearches']
|
|
119
|
-
|
|
120
|
-
unless saved_search_hash.nil?
|
|
121
|
-
if saved_search_hash['SavedSearch'].is_a?(Array)
|
|
122
|
-
saved_search_hash['SavedSearch'].each do |saved_search|
|
|
123
|
-
saved_searches << CbSavedSearch.new(saved_search)
|
|
124
|
-
end
|
|
125
|
-
elsif saved_search_hash['SavedSearch'].is_a?(Hash) && json_hash.length < 2
|
|
126
|
-
saved_searches << CbSavedSearch.new(saved_search_hash['SavedSearch'])
|
|
127
|
-
end
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
my_api.append_api_responses saved_searches, json_hash['SavedJobSearches']
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
my_api.append_api_responses(saved_searches, json_hash)
|
|
134
|
-
|
|
135
|
-
return saved_searches
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
end
|
|
139
|
-
end
|
data/lib/cb/clients/spot_api.rb
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
require 'json'
|
|
2
|
-
|
|
3
|
-
module Cb::ApiClients
|
|
4
|
-
class Spot
|
|
5
|
-
class << self
|
|
6
|
-
|
|
7
|
-
def retrieve(criteria)
|
|
8
|
-
response = retrieve_api_response criteria
|
|
9
|
-
Cb::Responses::Spot::Retrieve.extract_models response
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
private
|
|
13
|
-
|
|
14
|
-
def retrieve_api_response(criteria)
|
|
15
|
-
params = api_client.class.criteria_to_hash criteria
|
|
16
|
-
api_client.cb_get(Cb.configuration.uri_spot_retrieve, :query => params)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def api_client
|
|
20
|
-
@api ||= Cb::Utils::Api.new
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
module Cb
|
|
2
|
-
class TalentNetworkApi
|
|
3
|
-
####################################################
|
|
4
|
-
## Documentation:
|
|
5
|
-
## http://api.careerbuilder.com/TalentNetwork.aspx
|
|
6
|
-
####################################################
|
|
7
|
-
|
|
8
|
-
def self.join_form_questions(tndid)
|
|
9
|
-
## Load the join form questions for a TalentNetworkDID
|
|
10
|
-
my_api = Cb::Utils::Api.new()
|
|
11
|
-
json_hash = my_api.cb_get("#{Cb.configuration.uri_tn_join_questions}/#{tndid}/json")
|
|
12
|
-
|
|
13
|
-
tn_questions_collection = TalentNetwork.new(json_hash)
|
|
14
|
-
my_api.append_api_responses(tn_questions_collection, json_hash)
|
|
15
|
-
|
|
16
|
-
return tn_questions_collection
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def self.join_form_branding(tndid)
|
|
20
|
-
## Gets branding information (stylesheets, copytext, etc...) for the join form.
|
|
21
|
-
my_api = Cb::Utils::Api.new
|
|
22
|
-
|
|
23
|
-
json_hash = my_api.cb_get("#{Cb.configuration.uri_tn_join_form_branding}/#{tndid}/json")
|
|
24
|
-
|
|
25
|
-
if json_hash.has_key? 'Branding'
|
|
26
|
-
tn_join_form_branding = TalentNetwork::JoinFormBranding.new(json_hash['Branding'])
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
my_api.append_api_responses(tn_join_form_branding, json_hash)
|
|
30
|
-
|
|
31
|
-
return tn_join_form_branding
|
|
32
|
-
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def self.join_form_geography(tnlanguage="USEnglish")
|
|
36
|
-
## Gets locations needed to fill the Geography question from the Join Form Question API
|
|
37
|
-
my_api = Cb::Utils::Api.new
|
|
38
|
-
json_hash = my_api.cb_get("#{Cb.configuration.uri_tn_join_form_geo}", :query=>{:TNLanguage=>"#{tnlanguage}"})
|
|
39
|
-
|
|
40
|
-
geo_dropdown = TalentNetwork::JoinFormGeo.new(json_hash)
|
|
41
|
-
my_api.append_api_responses(geo_dropdown, json_hash)
|
|
42
|
-
|
|
43
|
-
return geo_dropdown
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def self.member_create(args={})
|
|
47
|
-
## Creates a member based on the form built with the Join Form Questions API call
|
|
48
|
-
my_api = Cb::Utils::Api.new
|
|
49
|
-
tn_member = TalentNetwork::Member.new(args)
|
|
50
|
-
json_hash = my_api.cb_post("#{Cb.configuration.uri_tn_member_create}/json", :body => tn_member.to_xml )
|
|
51
|
-
my_api.append_api_responses(json_hash, json_hash)
|
|
52
|
-
|
|
53
|
-
return json_hash
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def self.tn_job_information(job_did, join_form_intercept="true")
|
|
57
|
-
my_api = Cb::Utils::Api.new
|
|
58
|
-
json_hash = my_api.cb_get("#{Cb.configuration.uri_tn_job_info}/#{job_did}/json", :query=> {
|
|
59
|
-
:RequestJoinFormIntercept=>join_form_intercept})
|
|
60
|
-
|
|
61
|
-
if json_hash.has_key? 'Response'
|
|
62
|
-
tn_job_info = TalentNetwork::JobInfo.new(json_hash['Response'])
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
my_api.append_api_responses(tn_job_info, json_hash)
|
|
66
|
-
|
|
67
|
-
return tn_job_info
|
|
68
|
-
end
|
|
69
|
-
end #TalentNetworkJoinQuestions
|
|
70
|
-
end #module
|
data/lib/cb/clients/user_api.rb
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
require 'json'
|
|
2
|
-
require 'nokogiri'
|
|
3
|
-
|
|
4
|
-
module Cb
|
|
5
|
-
class UserApi
|
|
6
|
-
#############################################################
|
|
7
|
-
## Retrieve a user
|
|
8
|
-
##
|
|
9
|
-
## For detailed information around this API please visit:
|
|
10
|
-
## http://www.careerbuilder.com/api/UserInfo.aspx
|
|
11
|
-
#############################################################
|
|
12
|
-
def self.retrieve external_id, test_mode = false
|
|
13
|
-
my_api = Cb::Utils::Api.new
|
|
14
|
-
|
|
15
|
-
json_hash = my_api.cb_post Cb.configuration.uri_user_retrieve, :body => build_retrieve_request(external_id, true)
|
|
16
|
-
|
|
17
|
-
if json_hash.has_key? 'ResponseUserInfo'
|
|
18
|
-
if json_hash['ResponseUserInfo'].has_key? 'UserInfo'
|
|
19
|
-
user = CbUser.new json_hash['ResponseUserInfo']['UserInfo']
|
|
20
|
-
end
|
|
21
|
-
my_api.append_api_responses user, json_hash['ResponseUserInfo']
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
my_api.append_api_responses user, json_hash
|
|
25
|
-
|
|
26
|
-
return user
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
#############################################################
|
|
30
|
-
## Change a user's password
|
|
31
|
-
##
|
|
32
|
-
## For detailed information around this API please visit:
|
|
33
|
-
## http://www.careerbuilder.com/api/UserInfo.aspx
|
|
34
|
-
#############################################################
|
|
35
|
-
def self.change_password external_id, old_password, new_password, test_mode = false
|
|
36
|
-
result = false
|
|
37
|
-
|
|
38
|
-
my_api = Cb::Utils::Api.new
|
|
39
|
-
json_hash = my_api.cb_post Cb.configuration.uri_user_change_password, :body => build_change_password_request(external_id, old_password, new_password, test_mode)
|
|
40
|
-
|
|
41
|
-
if json_hash.has_key? 'ResponseUserChangePW'
|
|
42
|
-
if json_hash['ResponseUserChangePW'].has_key?('Status') && json_hash['ResponseUserChangePW']['Status'].include?('Success')
|
|
43
|
-
result = true
|
|
44
|
-
end
|
|
45
|
-
my_api.append_api_responses result, json_hash['ResponseUserChangePW']
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
my_api.append_api_responses result, json_hash
|
|
49
|
-
|
|
50
|
-
result
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
#############################################################
|
|
54
|
-
## De-activate a user
|
|
55
|
-
##
|
|
56
|
-
## For detailed information around this API please visit:
|
|
57
|
-
## http://www.careerbuilder.com/api/UserInfo.aspx
|
|
58
|
-
#############################################################
|
|
59
|
-
def self.delete external_id, password, test_mode = false
|
|
60
|
-
result = false
|
|
61
|
-
|
|
62
|
-
my_api = Cb::Utils::Api.new
|
|
63
|
-
json_hash = my_api.cb_post Cb.configuration.uri_user_delete, :body => build_delete_request(external_id, password, test_mode)
|
|
64
|
-
|
|
65
|
-
if json_hash.has_key? 'ResponseUserDelete'
|
|
66
|
-
if json_hash['ResponseUserDelete'].has_key?('Status') && json_hash['ResponseUserDelete']['Status'].include?('Success')
|
|
67
|
-
result = true
|
|
68
|
-
end
|
|
69
|
-
my_api.append_api_responses result, json_hash['ResponseUserDelete']
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
my_api.append_api_responses result, json_hash
|
|
73
|
-
|
|
74
|
-
result
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
private
|
|
78
|
-
def self.build_retrieve_request external_id, test_mode
|
|
79
|
-
builder = Nokogiri::XML::Builder.new do
|
|
80
|
-
Request {
|
|
81
|
-
ExternalID_ external_id
|
|
82
|
-
Test_ test_mode.to_s
|
|
83
|
-
DeveloperKey_ Cb.configuration.dev_key
|
|
84
|
-
}
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
builder.to_xml
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
def self.build_change_password_request external_id, old_password, new_password, test_mode
|
|
91
|
-
builder = Nokogiri::XML::Builder.new do
|
|
92
|
-
Request {
|
|
93
|
-
ExternalID_ external_id
|
|
94
|
-
OldPassword_ old_password
|
|
95
|
-
NewPassword_ new_password
|
|
96
|
-
Test_ test_mode.to_s
|
|
97
|
-
DeveloperKey_ Cb.configuration.dev_key
|
|
98
|
-
}
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
builder.to_xml
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
def self.build_delete_request external_id, password, test_mode
|
|
105
|
-
builder = Nokogiri::XML::Builder.new do
|
|
106
|
-
Request {
|
|
107
|
-
ExternalID_ external_id
|
|
108
|
-
Password_ password
|
|
109
|
-
Test_ test_mode.to_s
|
|
110
|
-
DeveloperKey_ Cb.configuration.dev_key
|
|
111
|
-
}
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
builder.to_xml
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
end
|
|
118
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
module Cb
|
|
2
|
-
# Trying to simplify the large number of inputs our job search api accepts
|
|
3
|
-
# For indepth information around all of the different inputs, please visit:
|
|
4
|
-
# http://api.careerbuilder.com/JobSearchInfo.aspx
|
|
5
|
-
####################################################################################
|
|
6
|
-
class JobSearchCriteria
|
|
7
|
-
extend Cb::Utils::FluidAttributes
|
|
8
|
-
|
|
9
|
-
fluid_attr_accessor :advanced_grouping_mode, :boolean_operator, :category, :co_brand, :company_did,
|
|
10
|
-
:company_did_csv, :company_name, :company_name_boost_params, :country_code,
|
|
11
|
-
:education_code, :emp_type, :enable_company_collapse, :exclude_company_names,
|
|
12
|
-
:exclude_job_titles, :exclude_keywords, :exclude_national, :exclude_non_traditional_jobs,
|
|
13
|
-
:exclude_product_id, :facet_category, :facet_company, :facet_city, :facet_state,
|
|
14
|
-
:facet_city_state, :facet_pay, :facet_normalized_company_did, :host_site,
|
|
15
|
-
:include_company_children, :industry_codes, :job_title, :keywords, :location,
|
|
16
|
-
:normalized_company_did, :normalized_company_did_boost_params,
|
|
17
|
-
:normalized_company_name, :onet_code, :order_by, :order_direction, :page_number,
|
|
18
|
-
:partner_id, :pay_high, :pay_info_only, :pay_low, :per_page, :posted_within,
|
|
19
|
-
:product_id, :radius, :records_per_group, :relocate_jobs, :soc_code, :school_site_id,
|
|
20
|
-
:search_all_countries, :search_view, :show_categories, :show_apply_requirements,
|
|
21
|
-
:apply_requirements, :exclude_apply_requirements, :single_onet_search, :site_entity, :site_id, :skills, :specific_education,
|
|
22
|
-
:spoken_language, :tags, :talent_network_did, :url_compression_service, :use_facets,
|
|
23
|
-
:str_crit
|
|
24
|
-
|
|
25
|
-
def search
|
|
26
|
-
Cb::JobApi.search(Cb::Utils::Api.criteria_to_hash(self))
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
module Cb::Criteria
|
|
2
|
-
class SpotRetrieve
|
|
3
|
-
extend Cb::Utils::FluidAttributes
|
|
4
|
-
|
|
5
|
-
fluid_attr_accessor :contenttype, :language, :sortfield, :sortdirection, :maxitems
|
|
6
|
-
(1..8).each { |num| fluid_attr_accessor "field#{num.to_s}".to_sym }
|
|
7
|
-
|
|
8
|
-
def retrieve
|
|
9
|
-
Cb::ApiClients::Spot.retrieve self
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
module Cb
|
|
2
|
-
class CbApplication
|
|
3
|
-
#request params
|
|
4
|
-
attr_accessor :job_did, :site_id, :ipath, :co_brand, :test,
|
|
5
|
-
:resume_file_name, :resume,
|
|
6
|
-
:user_external_id, :user_external_resume_id,
|
|
7
|
-
:answers
|
|
8
|
-
|
|
9
|
-
#response params
|
|
10
|
-
#redirect_url is returned from the api for shared apply applications.
|
|
11
|
-
attr_accessor :redirect_url
|
|
12
|
-
|
|
13
|
-
def initialize(args = {})
|
|
14
|
-
@job_did = args[:job_did]
|
|
15
|
-
@site_id = args[:site_id] || 'cbnsv'
|
|
16
|
-
@ipath = args[:ipath] || ''
|
|
17
|
-
@co_brand = args[:co_brand] || ''
|
|
18
|
-
@test = args[:test] || 'false'
|
|
19
|
-
@resume_file_name = args[:resume_file_name] || ''
|
|
20
|
-
@resume = args[:resume] || ''
|
|
21
|
-
@user_external_id = args[:user_external_id] || ''
|
|
22
|
-
@user_external_resume_id = args[:user_external_resume_id] || ''
|
|
23
|
-
@answers = []
|
|
24
|
-
@redirect_url = ''
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def submit
|
|
28
|
-
if is_registered?
|
|
29
|
-
Cb.application.submit_registered_app(self)
|
|
30
|
-
else
|
|
31
|
-
Cb.application.submit_app(self)
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def is_registered?
|
|
36
|
-
!@user_external_id.blank? && @resume.blank?
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def is_unregistered?
|
|
40
|
-
!is_registered?
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def complete?
|
|
44
|
-
cb_response.application_status == 'Complete' || cb_response.application_status == 'Complete (Test)'
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def add_answer(id, text)
|
|
48
|
-
@answers << CbApplication::CbAnswer.new(id, text)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def to_xml
|
|
52
|
-
ret = '<RequestApplication>'
|
|
53
|
-
|
|
54
|
-
ret = "#{ret}<DeveloperKey>#{Cb.configuration.dev_key}</DeveloperKey>"
|
|
55
|
-
ret = "#{ret}<JobDID>#{@job_did}</JobDID>"
|
|
56
|
-
ret = "#{ret}<Test>#{@test}</Test>" unless @test.blank?
|
|
57
|
-
ret = "#{ret}<SiteID>#{@site_id}</SiteID>" unless @site_id.blank?
|
|
58
|
-
#ret = "#{ret}<IPath>#{@ipath}</IPath>" unless @ipath.blank? #this has to be passed by query string because the api is lame.
|
|
59
|
-
ret = "#{ret}<CoBrand>#{@co_brand}</CoBrand>" unless @co_brand.blank?
|
|
60
|
-
ret = "#{ret}<HostSite>#{Cb.configuration.host_site}</HostSite>"
|
|
61
|
-
ret = "#{ret}<Resume><ResumeFileName>#{@resume_file_name}</ResumeFileName><ResumeData>#{@resume}</ResumeData></Resume>" if is_unregistered?
|
|
62
|
-
|
|
63
|
-
unless @answers.count == 0
|
|
64
|
-
ret = "#{ret}<Responses>"
|
|
65
|
-
@answers.each do | ans |
|
|
66
|
-
ret = "#{ret}#{ans.to_xml}"
|
|
67
|
-
end
|
|
68
|
-
ret = "#{ret}</Responses>"
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
ret = "#{ret}<ExternalUserID>#{@user_external_id}</ExternalUserID>" if is_registered?
|
|
72
|
-
ret = "#{ret}<ExternalResumeID>#{@user_external_resume_id}</ExternalResumeID>" if is_registered?
|
|
73
|
-
|
|
74
|
-
"#{ret}</RequestApplication>"
|
|
75
|
-
end # to_xml
|
|
76
|
-
end # CbApplication
|
|
77
|
-
|
|
78
|
-
############################################################
|
|
79
|
-
class CbApplication::CbAnswer
|
|
80
|
-
attr_accessor :id, :text
|
|
81
|
-
|
|
82
|
-
def initialize(id, text)
|
|
83
|
-
@id = id
|
|
84
|
-
@text = text
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
def to_xml
|
|
88
|
-
"<Response><QuestionID>#{@id}</QuestionID><ResponseText>#{@text}</ResponseText></Response>"
|
|
89
|
-
end
|
|
90
|
-
end # CbAnswer
|
|
91
|
-
end # Cb
|