cb-api 3.0.0 → 3.1.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/clients/job.rb +16 -0
- data/lib/cb/clients/user.rb +87 -61
- data/lib/cb/config.rb +3 -1
- data/lib/cb/responses/job/singular.rb +37 -0
- data/lib/cb/responses/user/check_existing.rb +59 -0
- data/lib/cb/version.rb +1 -1
- metadata +4 -2
data/lib/cb/clients/job.rb
CHANGED
@@ -4,6 +4,12 @@ module Cb
|
|
4
4
|
module Clients
|
5
5
|
class Job
|
6
6
|
|
7
|
+
attr_accessor :cb_client
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@cb_client ||= Cb.api_client.new
|
11
|
+
end
|
12
|
+
|
7
13
|
def self.search(api_args_hash)
|
8
14
|
my_api = Cb::Utils::Api.new
|
9
15
|
json_hash = my_api.cb_get(Cb.configuration.uri_job_search, :query => api_args_hash)
|
@@ -37,6 +43,12 @@ module Cb
|
|
37
43
|
my_api.append_api_responses(job, json_hash)
|
38
44
|
end
|
39
45
|
|
46
|
+
def find_by_criteria(criteria)
|
47
|
+
query = cb_client.class.criteria_to_hash(criteria)
|
48
|
+
json_response = cb_client.cb_get(Cb.configuration.uri_job_find, :query => query)
|
49
|
+
singular_model_response(json_response, criteria.did)
|
50
|
+
end
|
51
|
+
|
40
52
|
def self.find_by_did(did)
|
41
53
|
criteria = Cb::Criteria::Job::Details.new
|
42
54
|
criteria.did = did
|
@@ -51,6 +63,10 @@ module Cb
|
|
51
63
|
response_hash['SearchMetaData']['SearchLocations'] &&
|
52
64
|
response_hash['SearchMetaData']['SearchLocations']['SearchLocation']
|
53
65
|
end
|
66
|
+
|
67
|
+
def singular_model_response(json_hash, did = nil)
|
68
|
+
Responses::Job::Singular.new(json_hash)
|
69
|
+
end
|
54
70
|
end
|
55
71
|
end
|
56
72
|
end
|
data/lib/cb/clients/user.rb
CHANGED
@@ -4,91 +4,117 @@ require 'nokogiri'
|
|
4
4
|
module Cb
|
5
5
|
module Clients
|
6
6
|
class User
|
7
|
+
class << self
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
def check_existing(email, password)
|
10
|
+
xml = build_check_existing_request(email, password)
|
11
|
+
response = api_client.cb_post(Cb.configuration.uri_user_check_existing, body: xml)
|
12
|
+
Cb::Responses::User::CheckExisting.new(response)
|
13
|
+
end
|
14
|
+
|
15
|
+
def retrieve external_id, test_mode = false
|
16
|
+
my_api = Cb::Utils::Api.new
|
17
|
+
json_hash = my_api.cb_post Cb.configuration.uri_user_retrieve, :body => build_retrieve_request(external_id, true)
|
11
18
|
|
12
|
-
|
13
|
-
|
14
|
-
|
19
|
+
if json_hash.has_key? 'ResponseUserInfo'
|
20
|
+
if json_hash['ResponseUserInfo'].has_key? 'UserInfo'
|
21
|
+
user = Models::User.new json_hash['ResponseUserInfo']['UserInfo']
|
22
|
+
end
|
23
|
+
my_api.append_api_responses user, json_hash['ResponseUserInfo']
|
15
24
|
end
|
16
|
-
my_api.append_api_responses user, json_hash['ResponseUserInfo']
|
17
|
-
end
|
18
25
|
|
19
|
-
|
20
|
-
|
26
|
+
my_api.append_api_responses user, json_hash
|
27
|
+
end
|
21
28
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
29
|
+
def change_password external_id, old_password, new_password, test_mode = false
|
30
|
+
result = false
|
31
|
+
my_api = Cb::Utils::Api.new
|
32
|
+
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)
|
26
33
|
|
27
|
-
|
28
|
-
|
29
|
-
|
34
|
+
if json_hash.has_key? 'ResponseUserChangePW'
|
35
|
+
if json_hash['ResponseUserChangePW'].has_key?('Status') && json_hash['ResponseUserChangePW']['Status'].include?('Success')
|
36
|
+
result = true
|
37
|
+
end
|
38
|
+
my_api.append_api_responses result, json_hash['ResponseUserChangePW']
|
30
39
|
end
|
31
|
-
|
40
|
+
|
41
|
+
my_api.append_api_responses result, json_hash
|
32
42
|
end
|
33
43
|
|
34
|
-
|
35
|
-
|
44
|
+
def delete external_id, password, test_mode = false
|
45
|
+
result = false
|
46
|
+
my_api = Cb::Utils::Api.new
|
47
|
+
json_hash = my_api.cb_post Cb.configuration.uri_user_delete, :body => build_delete_request(external_id, password, test_mode)
|
48
|
+
|
49
|
+
if json_hash.has_key? 'ResponseUserDelete'
|
50
|
+
if json_hash['ResponseUserDelete'].has_key?('Status') && json_hash['ResponseUserDelete']['Status'].include?('Success')
|
51
|
+
result = true
|
52
|
+
end
|
53
|
+
my_api.append_api_responses result, json_hash['ResponseUserDelete']
|
54
|
+
end
|
55
|
+
|
56
|
+
my_api.append_api_responses result, json_hash
|
57
|
+
end
|
36
58
|
|
37
|
-
|
38
|
-
result = false
|
39
|
-
my_api = Cb::Utils::Api.new
|
40
|
-
json_hash = my_api.cb_post Cb.configuration.uri_user_delete, :body => build_delete_request(external_id, password, test_mode)
|
59
|
+
private
|
41
60
|
|
42
|
-
|
43
|
-
|
44
|
-
|
61
|
+
def build_check_existing_request(email, password)
|
62
|
+
builder = Nokogiri::XML::Builder.new do
|
63
|
+
Request {
|
64
|
+
DeveloperKey_ Cb.configuration.dev_key
|
65
|
+
Email_ email
|
66
|
+
Password_ password
|
67
|
+
Test_ 'false' # Test flag. Ignored for this request.
|
68
|
+
}
|
45
69
|
end
|
46
|
-
|
70
|
+
|
71
|
+
builder.to_xml
|
47
72
|
end
|
48
73
|
|
49
|
-
|
50
|
-
|
74
|
+
def build_retrieve_request external_id, test_mode
|
75
|
+
builder = Nokogiri::XML::Builder.new do
|
76
|
+
Request {
|
77
|
+
ExternalID_ external_id
|
78
|
+
Test_ test_mode.to_s
|
79
|
+
DeveloperKey_ Cb.configuration.dev_key
|
80
|
+
}
|
81
|
+
end
|
51
82
|
|
52
|
-
|
53
|
-
def self.build_retrieve_request external_id, test_mode
|
54
|
-
builder = Nokogiri::XML::Builder.new do
|
55
|
-
Request {
|
56
|
-
ExternalID_ external_id
|
57
|
-
Test_ test_mode.to_s
|
58
|
-
DeveloperKey_ Cb.configuration.dev_key
|
59
|
-
}
|
83
|
+
builder.to_xml
|
60
84
|
end
|
61
85
|
|
62
|
-
|
63
|
-
|
86
|
+
def build_change_password_request external_id, old_password, new_password, test_mode
|
87
|
+
builder = Nokogiri::XML::Builder.new do
|
88
|
+
Request {
|
89
|
+
ExternalID_ external_id
|
90
|
+
OldPassword_ old_password
|
91
|
+
NewPassword_ new_password
|
92
|
+
Test_ test_mode.to_s
|
93
|
+
DeveloperKey_ Cb.configuration.dev_key
|
94
|
+
}
|
95
|
+
end
|
64
96
|
|
65
|
-
|
66
|
-
builder = Nokogiri::XML::Builder.new do
|
67
|
-
Request {
|
68
|
-
ExternalID_ external_id
|
69
|
-
OldPassword_ old_password
|
70
|
-
NewPassword_ new_password
|
71
|
-
Test_ test_mode.to_s
|
72
|
-
DeveloperKey_ Cb.configuration.dev_key
|
73
|
-
}
|
97
|
+
builder.to_xml
|
74
98
|
end
|
75
99
|
|
76
|
-
|
77
|
-
|
100
|
+
def build_delete_request external_id, password, test_mode
|
101
|
+
builder = Nokogiri::XML::Builder.new do
|
102
|
+
Request {
|
103
|
+
ExternalID_ external_id
|
104
|
+
Password_ password
|
105
|
+
Test_ test_mode.to_s
|
106
|
+
DeveloperKey_ Cb.configuration.dev_key
|
107
|
+
}
|
108
|
+
end
|
78
109
|
|
79
|
-
|
80
|
-
builder = Nokogiri::XML::Builder.new do
|
81
|
-
Request {
|
82
|
-
ExternalID_ external_id
|
83
|
-
Password_ password
|
84
|
-
Test_ test_mode.to_s
|
85
|
-
DeveloperKey_ Cb.configuration.dev_key
|
86
|
-
}
|
110
|
+
builder.to_xml
|
87
111
|
end
|
88
112
|
|
89
|
-
|
90
|
-
|
113
|
+
def api_client
|
114
|
+
Cb::Utils::Api.new
|
115
|
+
end
|
91
116
|
|
117
|
+
end
|
92
118
|
end
|
93
119
|
end
|
94
120
|
end
|
data/lib/cb/config.rb
CHANGED
@@ -9,7 +9,7 @@ module Cb
|
|
9
9
|
:uri_application, :uri_application_submit,
|
10
10
|
:uri_application_external,
|
11
11
|
:uri_application_registered, :uri_user_change_password,
|
12
|
-
:uri_user_delete, :uri_user_retrieve,
|
12
|
+
:uri_user_delete, :uri_user_retrieve, :uri_user_check_existing,
|
13
13
|
:uri_job_branding,
|
14
14
|
:uri_resume_own_all, :uri_resume_retrieve,
|
15
15
|
:uri_resume_create, :uri_resume_update, :uri_resume_delete,
|
@@ -43,6 +43,7 @@ module Cb
|
|
43
43
|
@uri_user_change_password ||= '/v2/User/ChangePW'
|
44
44
|
@uri_user_delete ||= '/v2/User/delete'
|
45
45
|
@uri_user_retrieve ||= '/v2/user/retrieve'
|
46
|
+
@uri_user_check_existing ||= '/v2/user/checkexisting'
|
46
47
|
@uri_job_branding ||= '/branding'
|
47
48
|
@uri_resume_own_all ||= '/v2/resume/ownall'
|
48
49
|
@uri_resume_retrieve ||= '/v2/resume/retrieve'
|
@@ -88,6 +89,7 @@ module Cb
|
|
88
89
|
:uri_application_external => @uri_application_external,
|
89
90
|
:uri_user_change_password => @uri_user_change_password,
|
90
91
|
:uri_user_retrieve => @uri_user_retrieve,
|
92
|
+
:uri_user_check_existing => @uri_user_check_existing,
|
91
93
|
:uri_job_branding => @uri_job_branding,
|
92
94
|
:uri_resume_own_all => @uri_resume_own_all,
|
93
95
|
:uri_resume_retrieve => @uri_resume_retrieve,
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Cb
|
2
|
+
module Responses
|
3
|
+
module Job
|
4
|
+
class Singular < ApiResponse
|
5
|
+
|
6
|
+
protected
|
7
|
+
|
8
|
+
def validate_api_hash
|
9
|
+
required_response_field(root_node, response)
|
10
|
+
required_response_field(model_node, response[root_node])
|
11
|
+
end
|
12
|
+
|
13
|
+
def hash_containing_metadata
|
14
|
+
response[root_node]
|
15
|
+
end
|
16
|
+
|
17
|
+
def extract_models
|
18
|
+
Models::Job.new(model_hash)
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def root_node
|
24
|
+
'ResponseJob'
|
25
|
+
end
|
26
|
+
|
27
|
+
def model_node
|
28
|
+
'Job'
|
29
|
+
end
|
30
|
+
|
31
|
+
def model_hash
|
32
|
+
response[root_node][model_node]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Cb
|
2
|
+
module Responses
|
3
|
+
module User
|
4
|
+
|
5
|
+
class CheckExisting < ApiResponse
|
6
|
+
class Model < Struct.new(:email, :status, :external_id) ; end
|
7
|
+
|
8
|
+
protected
|
9
|
+
|
10
|
+
def validate_api_hash
|
11
|
+
required_response_field(root_node, response)
|
12
|
+
required_response_field(request_node, response[root_node])
|
13
|
+
required_response_field(email_node, response[root_node][request_node])
|
14
|
+
required_response_field(user_check_status_node, response[root_node])
|
15
|
+
end
|
16
|
+
|
17
|
+
def extract_models
|
18
|
+
model = Model.new
|
19
|
+
model.email = response[root_node][request_node][email_node]
|
20
|
+
model.status = response[root_node][user_check_status_node]
|
21
|
+
model.external_id = response[root_node][external_id_node]
|
22
|
+
model
|
23
|
+
end
|
24
|
+
|
25
|
+
def metadata_containing_node
|
26
|
+
response[root_node]
|
27
|
+
end
|
28
|
+
|
29
|
+
def hash_containing_metadata
|
30
|
+
response
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def root_node
|
36
|
+
'ResponseUserCheck'
|
37
|
+
end
|
38
|
+
|
39
|
+
def request_node
|
40
|
+
'Request'
|
41
|
+
end
|
42
|
+
|
43
|
+
def email_node
|
44
|
+
'Email'
|
45
|
+
end
|
46
|
+
|
47
|
+
def user_check_status_node
|
48
|
+
'UserCheckStatus'
|
49
|
+
end
|
50
|
+
|
51
|
+
def external_id_node
|
52
|
+
'ResponseExternalID'
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
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: 3.
|
4
|
+
version: 3.1.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:
|
12
|
+
date: 2014-01-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
@@ -262,12 +262,14 @@ files:
|
|
262
262
|
- lib/cb/responses/api_response.rb
|
263
263
|
- lib/cb/responses/employee_types/search.rb
|
264
264
|
- lib/cb/responses/errors.rb
|
265
|
+
- lib/cb/responses/job/singular.rb
|
265
266
|
- lib/cb/responses/metadata.rb
|
266
267
|
- lib/cb/responses/saved_search/delete.rb
|
267
268
|
- lib/cb/responses/saved_search/list.rb
|
268
269
|
- lib/cb/responses/saved_search/singular.rb
|
269
270
|
- lib/cb/responses/spot/retrieve_response.rb
|
270
271
|
- lib/cb/responses/timing.rb
|
272
|
+
- lib/cb/responses/user/check_existing.rb
|
271
273
|
- lib/cb/utils/api.rb
|
272
274
|
- lib/cb/utils/country.rb
|
273
275
|
- lib/cb/utils/fluid_attributes.rb
|