cb-api 3.0.0 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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