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.
@@ -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
@@ -4,91 +4,117 @@ require 'nokogiri'
4
4
  module Cb
5
5
  module Clients
6
6
  class User
7
+ class << self
7
8
 
8
- def self.retrieve external_id, test_mode = false
9
- my_api = Cb::Utils::Api.new
10
- json_hash = my_api.cb_post Cb.configuration.uri_user_retrieve, :body => build_retrieve_request(external_id, true)
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
- if json_hash.has_key? 'ResponseUserInfo'
13
- if json_hash['ResponseUserInfo'].has_key? 'UserInfo'
14
- user = Models::User.new json_hash['ResponseUserInfo']['UserInfo']
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
- my_api.append_api_responses user, json_hash
20
- end
26
+ my_api.append_api_responses user, json_hash
27
+ end
21
28
 
22
- def self.change_password external_id, old_password, new_password, test_mode = false
23
- result = false
24
- my_api = Cb::Utils::Api.new
25
- 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)
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
- if json_hash.has_key? 'ResponseUserChangePW'
28
- if json_hash['ResponseUserChangePW'].has_key?('Status') && json_hash['ResponseUserChangePW']['Status'].include?('Success')
29
- result = true
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
- my_api.append_api_responses result, json_hash['ResponseUserChangePW']
40
+
41
+ my_api.append_api_responses result, json_hash
32
42
  end
33
43
 
34
- my_api.append_api_responses result, json_hash
35
- end
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
- def self.delete external_id, password, test_mode = false
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
- if json_hash.has_key? 'ResponseUserDelete'
43
- if json_hash['ResponseUserDelete'].has_key?('Status') && json_hash['ResponseUserDelete']['Status'].include?('Success')
44
- result = true
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
- my_api.append_api_responses result, json_hash['ResponseUserDelete']
70
+
71
+ builder.to_xml
47
72
  end
48
73
 
49
- my_api.append_api_responses result, json_hash
50
- end
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
- private
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
- builder.to_xml
63
- end
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
- def self.build_change_password_request external_id, old_password, new_password, test_mode
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
- builder.to_xml
77
- end
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
- def self.build_delete_request external_id, password, test_mode
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
- builder.to_xml
90
- end
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
@@ -1,3 +1,3 @@
1
1
  module Cb
2
- VERSION = '3.0.0'
2
+ VERSION = '3.1.0'
3
3
  end
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.0.0
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: 2013-12-20 00:00:00.000000000 Z
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