cb-api 3.1.1 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/cb/clients/application.rb +34 -34
- data/lib/cb/clients/recommendation.rb +30 -6
- data/lib/cb/config.rb +1 -1
- data/lib/cb/criteria/application/cover_letter.rb +10 -0
- data/lib/cb/criteria/application/create.rb +42 -0
- data/lib/cb/criteria/application/get.rb +10 -0
- data/lib/cb/criteria/application/response.rb +10 -0
- data/lib/cb/criteria/application/resume.rb +10 -0
- data/lib/cb/criteria/application/update.rb +43 -0
- data/lib/cb/models/implementations/application.rb +28 -73
- data/lib/cb/models/implementations/application/cover_letter.rb +22 -0
- data/lib/cb/models/implementations/application/response.rb +21 -0
- data/lib/cb/models/implementations/application/resume.rb +24 -0
- data/lib/cb/models/implementations/job.rb +9 -0
- data/lib/cb/responses/application.rb +23 -0
- data/lib/cb/utils/api.rb +8 -0
- data/lib/cb/version.rb +1 -1
- metadata +12 -3
- data/lib/cb/models/implementations/application_schema.rb +0 -75
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NzI1MWYyNThkYmJlYWQ1ZjRkZjYwM2RhMDA4NDg1ODRiODhhNDJlYQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZGZhYTA3M2RmOTAzNWMzN2Y2ZjU5YzEyNTQwMjZhNjdlMGJhYmI5MA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YTFhMzg0NjgyYTJjN2M4MzdjN2QxMDRhNmJmN2FkYWNkMTNhYjQ1MjQwZTkz
|
10
|
+
OWJiZjg2ZmY5NjcyYjc4MjRhNzNjZDk2NzFkZTBlYzJkOGRjNWE4NTc3YzA0
|
11
|
+
MGVjYjg1NTdlODZkYTRmZWRkMTAxNTNhNTEyNWY3NTE0ZjFiMTQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YTE1OTY2YmI0NWQzODM5NDhlZWY2Y2Q1ZDVmOWI0Yzk2YTU3OTU0N2NiYWJk
|
14
|
+
OTEyNjlmNjE1NWQ5NDU5NmQ0YjI0MWViYzUyODI2YjY3ZjYwNGM4ZjgzYWQ0
|
15
|
+
ODVjOTliYTkwZDUwNmYzMTkzNjA0ODY4Zjc5NGRjZWRkNjk4OWY=
|
@@ -1,52 +1,52 @@
|
|
1
|
-
require 'json'
|
2
|
-
|
3
1
|
module Cb
|
4
2
|
module Clients
|
5
3
|
class Application
|
4
|
+
class << self
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
json_hash = my_api.cb_get(Cb.configuration.uri_application, :query => {:JobDID => did})
|
11
|
-
|
12
|
-
if json_hash.has_key?('ResponseBlankApplication')
|
13
|
-
if json_hash['ResponseBlankApplication'].has_key?('BlankApplication')
|
14
|
-
app = Cb::Models::ApplicationSchema.new(json_hash['ResponseBlankApplication']['BlankApplication'])
|
15
|
-
end
|
6
|
+
def get(criteria)
|
7
|
+
response cb_call(:get, criteria)
|
8
|
+
end
|
16
9
|
|
17
|
-
|
10
|
+
def create(criteria)
|
11
|
+
response cb_call(:post, criteria)
|
18
12
|
end
|
19
13
|
|
20
|
-
|
21
|
-
|
14
|
+
def update(criteria)
|
15
|
+
response cb_call(:put, criteria)
|
16
|
+
end
|
22
17
|
|
23
|
-
|
24
|
-
return send_to_api(Cb.configuration.uri_application_registered, app)
|
25
|
-
end
|
18
|
+
private
|
26
19
|
|
27
|
-
|
28
|
-
|
29
|
-
|
20
|
+
def cb_call(http_method, criteria)
|
21
|
+
options = { headers: headers }
|
22
|
+
if [:post, :put].include? http_method
|
23
|
+
options[:body] = criteria.to_json
|
24
|
+
end
|
30
25
|
|
31
|
-
|
32
|
-
|
26
|
+
uri = uri(criteria)
|
27
|
+
api_client.method(:"cb_#{http_method}").call uri, options
|
28
|
+
end
|
33
29
|
|
34
|
-
|
35
|
-
|
30
|
+
def response(response_hash)
|
31
|
+
Responses::Application.new response_hash
|
32
|
+
end
|
36
33
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
app.redirect_url = ''
|
42
|
-
end
|
34
|
+
def uri(criteria)
|
35
|
+
did = criteria.respond_to?(:application_did) ? criteria.application_did : ''
|
36
|
+
Cb.configuration.uri_application.sub ':did', did
|
37
|
+
end
|
43
38
|
|
44
|
-
|
45
|
-
|
46
|
-
|
39
|
+
def headers
|
40
|
+
{
|
41
|
+
'DeveloperKey' => Cb.configuration.dev_key,
|
42
|
+
'HostSite' => Cb.configuration.host_site,
|
43
|
+
'Content-Type' => 'application/json'
|
44
|
+
}
|
47
45
|
end
|
48
46
|
|
49
|
-
|
47
|
+
def api_client
|
48
|
+
Cb::Utils::Api.new
|
49
|
+
end
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
@@ -4,11 +4,12 @@ module Cb
|
|
4
4
|
module Clients
|
5
5
|
class Recommendation
|
6
6
|
|
7
|
-
def self.for_job(
|
7
|
+
def self.for_job(*args)
|
8
8
|
my_api = Cb::Utils::Api.new
|
9
|
+
hash = normalize_args(args)
|
10
|
+
hash = set_hash_defaults(hash)
|
9
11
|
json_hash = my_api.cb_get(Cb.configuration.uri_recommendation_for_job,
|
10
|
-
:query =>
|
11
|
-
:CoBrand => co_brand, :HostSite => Cb.configuration.host_site})
|
12
|
+
:query => hash)
|
12
13
|
|
13
14
|
jobs = []
|
14
15
|
if json_hash.has_key?('ResponseRecommendJob')
|
@@ -28,11 +29,12 @@ module Cb
|
|
28
29
|
my_api.append_api_responses(jobs, json_hash)
|
29
30
|
end
|
30
31
|
|
31
|
-
def self.for_user(
|
32
|
+
def self.for_user(*args)
|
32
33
|
my_api = Cb::Utils::Api.new
|
34
|
+
hash = normalize_args(args)
|
35
|
+
hash = set_hash_defaults(hash)
|
33
36
|
json_hash = my_api.cb_get(Cb.configuration.uri_recommendation_for_user,
|
34
|
-
:query =>
|
35
|
-
:HostSite => Cb.configuration.host_site})
|
37
|
+
:query => hash)
|
36
38
|
|
37
39
|
jobs = []
|
38
40
|
if json_hash.has_key?('ResponseRecommendUser')
|
@@ -71,6 +73,28 @@ module Cb
|
|
71
73
|
my_api.append_api_responses(jobs, json_hash)
|
72
74
|
end
|
73
75
|
|
76
|
+
private
|
77
|
+
|
78
|
+
def self.normalize_args(args)
|
79
|
+
return args[0] if args[0].class == Hash
|
80
|
+
{
|
81
|
+
:ExternalID => args[0],
|
82
|
+
:JobDID => args[0],
|
83
|
+
:CountLimit => args[1] || '25',
|
84
|
+
:SiteID => args[2] || "",
|
85
|
+
:CoBrand => args[3] || ""
|
86
|
+
}
|
87
|
+
end
|
88
|
+
|
89
|
+
def self.set_hash_defaults(hash)
|
90
|
+
hash[:CountLimit] ||= '25'
|
91
|
+
hash[:HostSite] ||= Cb.configuration.host_site
|
92
|
+
hash
|
93
|
+
end
|
94
|
+
|
74
95
|
end
|
96
|
+
|
97
|
+
|
98
|
+
|
75
99
|
end
|
76
100
|
end
|
data/lib/cb/config.rb
CHANGED
@@ -36,7 +36,7 @@ module Cb
|
|
36
36
|
@uri_recommendation_for_job ||= '/v1/Recommendations/ForJob'
|
37
37
|
@uri_recommendation_for_user ||= '/v1/Recommendations/ForUser'
|
38
38
|
@uri_recommendation_for_company ||= '/Employer/JobRecommendation'
|
39
|
-
@uri_application ||= '/
|
39
|
+
@uri_application ||= '/cbapi/application/:did'
|
40
40
|
@uri_application_submit ||= '/v1/Application/submit'
|
41
41
|
@uri_application_registered ||= '/v3/application/registered'
|
42
42
|
@uri_application_external ||= '/v1/application/external'
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Cb
|
2
|
+
module Criteria
|
3
|
+
module Application
|
4
|
+
class Create
|
5
|
+
extend Cb::Utils::FluidAttributes
|
6
|
+
fluid_attr_accessor :job_did, :is_submitted, :external_user_id, :vid, :bid, :sid, :site_id, :ipath_id, :tn_did, :resume,
|
7
|
+
:cover_letter, :responses
|
8
|
+
|
9
|
+
def to_json
|
10
|
+
{
|
11
|
+
JobDID: job_did,
|
12
|
+
IsSubmitted: is_submitted,
|
13
|
+
ExternalUserID: external_user_id,
|
14
|
+
BID: bid,
|
15
|
+
SID: sid,
|
16
|
+
SiteID: site_id,
|
17
|
+
IPathID: ipath_id,
|
18
|
+
TNDID: tn_did,
|
19
|
+
Resume: {
|
20
|
+
ExternalResumeID: resume.external_resume_id,
|
21
|
+
ResumeFileName: resume.resume_file_name,
|
22
|
+
ResumeData: resume.resume_data,
|
23
|
+
ResumeExtension: resume.resume_extension,
|
24
|
+
ResumeTitle: resume.resume_title
|
25
|
+
},
|
26
|
+
CoverLetter: {
|
27
|
+
CoverLetterID: cover_letter.cover_letter_id,
|
28
|
+
CoverLetterText: cover_letter.cover_letter_text,
|
29
|
+
CoverLetterTitle: cover_letter.cover_letter_title
|
30
|
+
},
|
31
|
+
Responses: responses.map do |response|
|
32
|
+
{
|
33
|
+
QuestionID: response.question_id,
|
34
|
+
ResponseText: response.response_text
|
35
|
+
}
|
36
|
+
end
|
37
|
+
}.to_json
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Cb
|
2
|
+
module Criteria
|
3
|
+
module Application
|
4
|
+
class Update
|
5
|
+
extend Cb::Utils::FluidAttributes
|
6
|
+
fluid_attr_accessor :application_did, :job_did, :is_submitted, :external_user_id, :vid, :bid, :sid, :site_id,
|
7
|
+
:ipath_id, :tn_did, :resume, :cover_letter, :responses
|
8
|
+
|
9
|
+
def to_json
|
10
|
+
{
|
11
|
+
ApplicationDID: application_did,
|
12
|
+
JobDID: job_did,
|
13
|
+
IsSubmitted: is_submitted,
|
14
|
+
ExternalUserID: external_user_id,
|
15
|
+
BID: bid,
|
16
|
+
SID: sid,
|
17
|
+
SiteID: site_id,
|
18
|
+
IPathID: ipath_id,
|
19
|
+
TNDID: tn_did,
|
20
|
+
Resume: {
|
21
|
+
ExternalResumeID: resume.external_resume_id,
|
22
|
+
ResumeFileName: resume.resume_file_name,
|
23
|
+
ResumeData: resume.resume_data,
|
24
|
+
ResumeExtension: resume.resume_extension,
|
25
|
+
ResumeTitle: resume.resume_title
|
26
|
+
},
|
27
|
+
CoverLetter: {
|
28
|
+
CoverLetterID: cover_letter.cover_letter_id,
|
29
|
+
CoverLetterText: cover_letter.cover_letter_text,
|
30
|
+
CoverLetterTitle: cover_letter.cover_letter_title
|
31
|
+
},
|
32
|
+
Responses: responses.map do |response|
|
33
|
+
{
|
34
|
+
QuestionID: response.question_id,
|
35
|
+
ResponseText: response.response_text
|
36
|
+
}
|
37
|
+
end
|
38
|
+
}.to_json
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -1,92 +1,47 @@
|
|
1
1
|
module Cb
|
2
2
|
module Models
|
3
|
-
class Application
|
4
|
-
|
5
|
-
|
6
|
-
:resume_file_name, :resume,
|
7
|
-
:user_external_id, :user_external_resume_id,
|
8
|
-
:answers
|
3
|
+
class Application < ApiResponseModel
|
4
|
+
attr_accessor :resume, :is_submitted, :vid, :bid, :sid, :site_id, :ipath_id, :application_did, :cover_letter,
|
5
|
+
:responses, :tn_did, :external_user_id, :redirect_url
|
9
6
|
|
10
|
-
|
11
|
-
#redirect_url is returned from the api for shared apply applications.
|
12
|
-
attr_accessor :redirect_url
|
7
|
+
protected
|
13
8
|
|
14
|
-
def
|
15
|
-
|
16
|
-
@site_id = args[:site_id] || 'cbnsv'
|
17
|
-
@ipath = args[:ipath] || ''
|
18
|
-
@co_brand = args[:co_brand] || ''
|
19
|
-
@test = args[:test] || 'false'
|
20
|
-
@resume_file_name = args[:resume_file_name] || ''
|
21
|
-
@resume = args[:resume] || ''
|
22
|
-
@user_external_id = args[:user_external_id] || ''
|
23
|
-
@user_external_resume_id = args[:user_external_resume_id] || ''
|
24
|
-
@answers = []
|
25
|
-
@redirect_url = ''
|
9
|
+
def required_fields
|
10
|
+
%w(Resume IsSubmitted BID ApplicationDID CoverLetter Responses)
|
26
11
|
end
|
27
12
|
|
28
|
-
def
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
13
|
+
def set_model_properties
|
14
|
+
@resume = extract_resume
|
15
|
+
@is_submitted = api_response['IsSubmitted'].to_s == 'true'
|
16
|
+
@vid = api_response['VID']
|
17
|
+
@bid = api_response['BID']
|
18
|
+
@sid = api_response['SID']
|
19
|
+
@site_id = api_response['SiteID']
|
20
|
+
@ipath_id = api_response['IPathID']
|
21
|
+
@application_did = api_response['ApplicationDID']
|
22
|
+
@cover_letter = extract_cover_letter
|
23
|
+
@responses = extract_responses
|
24
|
+
@tn_did = api_response['TNDID']
|
25
|
+
@external_user_id = api_response['ExternalUserID']
|
26
|
+
@redirect_url = api_response['redirectURL']
|
38
27
|
end
|
39
28
|
|
40
|
-
|
41
|
-
!is_registered?
|
42
|
-
end
|
29
|
+
private
|
43
30
|
|
44
|
-
def
|
45
|
-
|
31
|
+
def extract_resume
|
32
|
+
Resume.new api_response['Resume']
|
46
33
|
end
|
47
34
|
|
48
|
-
def
|
49
|
-
|
35
|
+
def extract_cover_letter
|
36
|
+
CoverLetter.new api_response['CoverLetter']
|
50
37
|
end
|
51
38
|
|
52
|
-
def
|
53
|
-
|
54
|
-
|
55
|
-
ret = "#{ret}<DeveloperKey>#{Cb.configuration.dev_key}</DeveloperKey>"
|
56
|
-
ret = "#{ret}<JobDID>#{@job_did}</JobDID>"
|
57
|
-
ret = "#{ret}<Test>#{@test}</Test>" unless @test.blank?
|
58
|
-
ret = "#{ret}<SiteID>#{@site_id}</SiteID>" unless @site_id.blank?
|
59
|
-
#ret = "#{ret}<IPath>#{@ipath}</IPath>" unless @ipath.blank? #this has to be passed by query string because the api is lame.
|
60
|
-
ret = "#{ret}<CoBrand>#{@co_brand}</CoBrand>" unless @co_brand.blank?
|
61
|
-
ret = "#{ret}<HostSite>#{Cb.configuration.host_site}</HostSite>"
|
62
|
-
ret = "#{ret}<Resume><ResumeFileName>#{@resume_file_name}</ResumeFileName><ResumeData>#{@resume}</ResumeData></Resume>" if is_unregistered?
|
63
|
-
|
64
|
-
unless @answers.count == 0
|
65
|
-
ret = "#{ret}<Responses>"
|
66
|
-
@answers.each do | ans |
|
67
|
-
ret = "#{ret}#{ans.to_xml}"
|
68
|
-
end
|
69
|
-
ret = "#{ret}</Responses>"
|
39
|
+
def extract_responses
|
40
|
+
api_response['Responses'].map do |response_hash|
|
41
|
+
Response.new response_hash
|
70
42
|
end
|
71
|
-
|
72
|
-
ret = "#{ret}<ExternalUserID>#{@user_external_id}</ExternalUserID>" if is_registered?
|
73
|
-
ret = "#{ret}<ExternalResumeID>#{@user_external_resume_id}</ExternalResumeID>" if is_registered?
|
74
|
-
|
75
|
-
"#{ret}</RequestApplication>"
|
76
|
-
end # to_xml
|
77
|
-
end # CbApplication
|
78
|
-
|
79
|
-
class Application::Answer
|
80
|
-
attr_accessor :id, :text
|
81
|
-
|
82
|
-
def initialize(id, text)
|
83
|
-
@id = id
|
84
|
-
@text = text
|
85
43
|
end
|
86
44
|
|
87
|
-
def to_xml
|
88
|
-
"<Response><QuestionID>#{@id}</QuestionID><ResponseText>#{@text}</ResponseText></Response>"
|
89
|
-
end
|
90
45
|
end
|
91
46
|
end
|
92
47
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Cb
|
2
|
+
module Models
|
3
|
+
class Application < ApiResponseModel
|
4
|
+
class CoverLetter < ApiResponseModel
|
5
|
+
attr_accessor :cover_letter_id, :cover_letter_text, :cover_letter_title
|
6
|
+
|
7
|
+
protected
|
8
|
+
|
9
|
+
def required_fields
|
10
|
+
[]
|
11
|
+
end
|
12
|
+
|
13
|
+
def set_model_properties
|
14
|
+
@cover_letter_id = api_response['CoverLetterID']
|
15
|
+
@cover_letter_text = api_response['CoverLetterText']
|
16
|
+
@cover_letter_title = api_response['CoverLetterTitle']
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Cb
|
2
|
+
module Models
|
3
|
+
class Application < ApiResponseModel
|
4
|
+
class Response < ApiResponseModel
|
5
|
+
attr_accessor :question_id, :response_text
|
6
|
+
|
7
|
+
protected
|
8
|
+
|
9
|
+
def required_fields
|
10
|
+
%w(QuestionID ResponseText)
|
11
|
+
end
|
12
|
+
|
13
|
+
def set_model_properties
|
14
|
+
@question_id = api_response['QuestionID']
|
15
|
+
@response_text = api_response['ResponseText']
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Cb
|
2
|
+
module Models
|
3
|
+
class Application < ApiResponseModel
|
4
|
+
class Resume < ApiResponseModel
|
5
|
+
attr_accessor :external_resume_id, :resume_file_name, :resume_data, :resume_extension, :resume_title
|
6
|
+
|
7
|
+
protected
|
8
|
+
|
9
|
+
def required_fields
|
10
|
+
%w(ExternalResumeID)
|
11
|
+
end
|
12
|
+
|
13
|
+
def set_model_properties
|
14
|
+
@external_resume_id = api_response['ExternalResumeID']
|
15
|
+
@resume_file_name = api_response['ResumeFileName']
|
16
|
+
@resume_data = api_response['ResumeData']
|
17
|
+
@resume_extension = api_response['ResumeExtension']
|
18
|
+
@resume_title = api_response['ResumeTitle']
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -110,6 +110,9 @@ module Cb
|
|
110
110
|
@company_details_url = figure_out_company_info(args['CompanyDetailsURL'],args['Company'],'CompanyDetailsURL')
|
111
111
|
|
112
112
|
|
113
|
+
load_extra_fields(args)
|
114
|
+
|
115
|
+
|
113
116
|
end
|
114
117
|
|
115
118
|
def find_company
|
@@ -162,6 +165,12 @@ module Cb
|
|
162
165
|
end
|
163
166
|
end
|
164
167
|
|
168
|
+
protected
|
169
|
+
|
170
|
+
def load_extra_fields(args)
|
171
|
+
#for internal use only :)
|
172
|
+
end
|
173
|
+
|
165
174
|
private
|
166
175
|
|
167
176
|
def figure_out_company_info(job_search, recommendation, rec_key)
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'cb/responses/api_response'
|
2
|
+
|
3
|
+
module Cb
|
4
|
+
module Responses
|
5
|
+
class Application < ApiResponse
|
6
|
+
|
7
|
+
protected
|
8
|
+
|
9
|
+
def hash_containing_metadata
|
10
|
+
response
|
11
|
+
end
|
12
|
+
|
13
|
+
def validate_api_hash
|
14
|
+
required_response_field('Results', response)
|
15
|
+
end
|
16
|
+
|
17
|
+
def extract_models
|
18
|
+
response['Results'].map { |application_data| Cb::Models::Application.new(application_data) }
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/cb/utils/api.rb
CHANGED
@@ -31,6 +31,14 @@ module Cb
|
|
31
31
|
validated_response
|
32
32
|
end
|
33
33
|
|
34
|
+
def cb_put(*args, &block)
|
35
|
+
self.class.base_uri Cb.configuration.base_uri
|
36
|
+
response = self.class.put(*args, &block)
|
37
|
+
validated_response = ResponseValidator.validate(response)
|
38
|
+
set_api_error(validated_response)
|
39
|
+
validated_response
|
40
|
+
end
|
41
|
+
|
34
42
|
def append_api_responses(obj, resp)
|
35
43
|
meta_class = obj.respond_to?('cb_response') ? obj.cb_response : Cb::Utils::MetaValues.new
|
36
44
|
|
data/lib/cb/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cb-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The CareerBuilder.com Niche and Consumer Development teams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -201,13 +201,21 @@ files:
|
|
201
201
|
- lib/cb/clients/user.rb
|
202
202
|
- lib/cb/config.rb
|
203
203
|
- lib/cb/convenience.rb
|
204
|
+
- lib/cb/criteria/application/cover_letter.rb
|
205
|
+
- lib/cb/criteria/application/create.rb
|
206
|
+
- lib/cb/criteria/application/get.rb
|
207
|
+
- lib/cb/criteria/application/response.rb
|
208
|
+
- lib/cb/criteria/application/resume.rb
|
209
|
+
- lib/cb/criteria/application/update.rb
|
204
210
|
- lib/cb/criteria/job/details.rb
|
205
211
|
- lib/cb/criteria/spot/retrieve.rb
|
206
212
|
- lib/cb/exceptions.rb
|
207
213
|
- lib/cb/models/api_response_model.rb
|
214
|
+
- lib/cb/models/implementations/application/cover_letter.rb
|
215
|
+
- lib/cb/models/implementations/application/response.rb
|
216
|
+
- lib/cb/models/implementations/application/resume.rb
|
208
217
|
- lib/cb/models/implementations/application.rb
|
209
218
|
- lib/cb/models/implementations/application_external.rb
|
210
|
-
- lib/cb/models/implementations/application_schema.rb
|
211
219
|
- lib/cb/models/implementations/branding/media.rb
|
212
220
|
- lib/cb/models/implementations/branding/section.rb
|
213
221
|
- lib/cb/models/implementations/branding/style.rb
|
@@ -235,6 +243,7 @@ files:
|
|
235
243
|
- lib/cb/responses/anonymous_saved_search/create.rb
|
236
244
|
- lib/cb/responses/anonymous_saved_search/delete.rb
|
237
245
|
- lib/cb/responses/api_response.rb
|
246
|
+
- lib/cb/responses/application.rb
|
238
247
|
- lib/cb/responses/employee_types/search.rb
|
239
248
|
- lib/cb/responses/errors.rb
|
240
249
|
- lib/cb/responses/job/singular.rb
|
@@ -1,75 +0,0 @@
|
|
1
|
-
module Cb
|
2
|
-
module Models
|
3
|
-
class ApplicationSchema
|
4
|
-
attr_accessor :did, :title, :requirements,
|
5
|
-
:apply_url, :submit_service_url, :is_shared_apply,
|
6
|
-
:total_questions, :total_required_questions, :questions
|
7
|
-
|
8
|
-
def initialize(args = {})
|
9
|
-
return if args.nil?
|
10
|
-
|
11
|
-
# Job Info related
|
12
|
-
@did = args['JobDID'] || ''
|
13
|
-
@title = args['JobTitle'] || ''
|
14
|
-
@requirements = args['Requirements'] || ''
|
15
|
-
|
16
|
-
# Apply URL related
|
17
|
-
@submit_service_url = args['ApplicationSubmitServiceURL'] || ''
|
18
|
-
@apply_url = args['ApplyURL'] || ''
|
19
|
-
@is_shared_apply = (args['IsSharedApply'].downcase == 'true')
|
20
|
-
|
21
|
-
# Question related
|
22
|
-
@total_questions = args['TotalQuestions'] || ''
|
23
|
-
@total_required_questions = args['TotalRequiredQuestions'] || ''
|
24
|
-
@total_questions = @total_questions.to_i if Cb::Utils::Api.is_numeric? @total_questions
|
25
|
-
@total_required_questions = @total_required_questions.to_i if Cb::Utils::Api.is_numeric? @total_required_questions
|
26
|
-
|
27
|
-
@questions = []
|
28
|
-
if args.has_key?('Questions')
|
29
|
-
unless args['Questions'].empty?
|
30
|
-
args['Questions']['Question'].each do | qq |
|
31
|
-
@questions << ApplicationSchema::QuestionSchema.new(qq)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end # Initialize
|
36
|
-
end # CbApplicationSchema
|
37
|
-
|
38
|
-
#################################################################
|
39
|
-
class ApplicationSchema::QuestionSchema
|
40
|
-
attr_accessor :id, :type, :required, :format, :text, :answers
|
41
|
-
|
42
|
-
def initialize(args = {})
|
43
|
-
return if args.nil?
|
44
|
-
|
45
|
-
@id = args['QuestionID'] || ''
|
46
|
-
@type = args['QuestionType'] || ''
|
47
|
-
@required = (args['IsRequired'].downcase == 'true')
|
48
|
-
@format = args['ExpectedResponseFormat'] || ''
|
49
|
-
@text = args['QuestionText'] || ''
|
50
|
-
|
51
|
-
@answers = []
|
52
|
-
if args.has_key?('Answers')
|
53
|
-
unless args['Answers'].empty?
|
54
|
-
args['Answers']['Answer'].each do | aa |
|
55
|
-
@answers << ApplicationSchema::AnswerSchema.new(aa)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end # CbQuestionSchema
|
61
|
-
|
62
|
-
#################################################################
|
63
|
-
class ApplicationSchema::AnswerSchema
|
64
|
-
attr_accessor :question_id, :id, :text
|
65
|
-
|
66
|
-
def initialize(args = {})
|
67
|
-
return if args.nil?
|
68
|
-
|
69
|
-
@question_id = args['QuestionID']
|
70
|
-
@id = args['AnswerID']
|
71
|
-
@text = args['AnswerText']
|
72
|
-
end
|
73
|
-
end # CbAnswerSchema
|
74
|
-
end
|
75
|
-
end
|