cb-api 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,29 +3,55 @@ require 'nokogiri'
3
3
 
4
4
  module Cb
5
5
  class UserApi
6
- #############################################################
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
+ cb_response = my_api.cb_post Cb.configuration.uri_user_retrieve, :body => build_retrieve_request(external_id, test_mode)
16
+
17
+ json_hash = JSON.parse cb_response.response.body
18
+
19
+ user = CbUser.new json_hash['ResponseUserInfo']['UserInfo']
20
+
21
+ my_api.append_api_responses user, json_hash['ResponseUserInfo']
22
+
23
+ return user
24
+ end
25
+
26
+ #############################################################
7
27
  ## Change a user's password
8
28
  ##
9
29
  ## For detailed information around this API please visit:
10
30
  ## http://www.careerbuilder.com/api/UserInfo.aspx
11
31
  #############################################################
12
32
  def self.change_password external_id, old_password, new_password, test_mode = false
13
- result = false
33
+ result = false
34
+
35
+ my_api = Cb::Utils::Api.new
36
+ cb_response = my_api.cb_post Cb.configuration.uri_user_change_password, :body => build_change_password_request(external_id, old_password, new_password, test_mode)
37
+ json_hash = JSON.parse cb_response.response.body
14
38
 
15
- my_api = Cb::Utils::Api.new
16
- cb_response = my_api.cb_post Cb.configuration.uri_user_change_password, :body => build_change_password_request(external_id, old_password, new_password, test_mode)
17
- json_hash = JSON.parse cb_response.response.body
39
+ my_api.append_api_responses result, json_hash['ResponseUserChangePW']
18
40
 
41
+ if result.cb_response.status.include? 'Success'
42
+ result = true
19
43
  my_api.append_api_responses result, json_hash['ResponseUserChangePW']
44
+ end
20
45
 
21
- if result.cb_response.status.include? 'Success'
22
- result = true
23
- my_api.append_api_responses result, json_hash['ResponseUserChangePW']
24
- end
25
-
26
- result
46
+ result
27
47
  end
28
48
 
49
+ #############################################################
50
+ ## De-activate a user
51
+ ##
52
+ ## For detailed information around this API please visit:
53
+ ## http://www.careerbuilder.com/api/UserInfo.aspx
54
+ #############################################################
29
55
  def self.delete external_id, password, test_mode = false
30
56
  result = false
31
57
 
@@ -44,18 +70,30 @@ module Cb
44
70
  end
45
71
 
46
72
  private
73
+ def self.build_retrieve_request external_id, test_mode
74
+ builder = Nokogiri::XML::Builder.new do
75
+ Request {
76
+ ExternalID_ external_id
77
+ Test_ test_mode.to_s
78
+ DeveloperKey_ Cb.configuration.dev_key
79
+ }
80
+ end
81
+
82
+ builder.to_xml
83
+ end
84
+
47
85
  def self.build_change_password_request external_id, old_password, new_password, test_mode
48
- builder = Nokogiri::XML::Builder.new do
49
- Request {
50
- ExternalID_ external_id
51
- OldPassword_ old_password
52
- NewPassword_ new_password
53
- Test_ test_mode.to_s
54
- DeveloperKey_ Cb.configuration.dev_key
55
- }
56
- end
57
-
58
- builder.to_xml
86
+ builder = Nokogiri::XML::Builder.new do
87
+ Request {
88
+ ExternalID_ external_id
89
+ OldPassword_ old_password
90
+ NewPassword_ new_password
91
+ Test_ test_mode.to_s
92
+ DeveloperKey_ Cb.configuration.dev_key
93
+ }
94
+ end
95
+
96
+ builder.to_xml
59
97
  end
60
98
 
61
99
  def self.build_delete_request external_id, password, test_mode
data/lib/cb/config.rb CHANGED
@@ -8,7 +8,7 @@ module Cb
8
8
  :uri_recommendation_for_company,
9
9
  :uri_application, :uri_application_submit,
10
10
  :uri_application_registered, :uri_user_change_password,
11
- :uri_user_delete
11
+ :uri_user_delete, :uri_user_retrieve
12
12
 
13
13
  def initialize
14
14
  Cb::Utils::Country.inject_convenience_methods
@@ -30,6 +30,7 @@ module Cb
30
30
  @uri_application_registered ||= '/v3/Application/registered'
31
31
  @uri_user_change_password ||= '/v2/User/ChangePW'
32
32
  @uri_user_delete ||= '/v2/User/delete'
33
+ @uri_user_retrieve ||= '/v2/user/retrieve'
33
34
  end
34
35
 
35
36
  def to_hash
@@ -50,7 +51,8 @@ module Cb
50
51
  :uri_application => @uri_application,
51
52
  :uri_application_submit => @uri_application_submit,
52
53
  :uri_application_registered => @uri_application_registered,
53
- :uri_user_change_password => @uri_user_change_password
54
+ :uri_user_change_password => @uri_user_change_password,
55
+ :uri_user_retrieve => @uri_user_retrieve
54
56
  }
55
57
  end
56
58
 
@@ -0,0 +1,52 @@
1
+ module Cb
2
+ class CbUser
3
+ attr_accessor :user_status, :password, :email, :address_1, :address_2, :city, :state,
4
+ :province, :postal_code, :zip, :country_code, :first_name,
5
+ :last_name, :phone, :fax, :last_login, :created, :allow_partner_emails,
6
+ :allow_newsletter_emails, :allow_email_from_headhunter, :domain, :registration_path,
7
+ :user_type, :gender, :birth_date, :cobrand_code, :resume_stats, :custom_values
8
+
9
+ def initialize(args = {})
10
+ return if args.nil?
11
+
12
+ @user_status = args['UserStatus'] || ''
13
+ @password = ''
14
+ @email = args['Email'] || ''
15
+ @address_1 = args['Address1'] || ''
16
+ @address_2 = args['Address2'] || ''
17
+ @city = args['City'] || ''
18
+ @state = args['State'] || ''
19
+ @province = args['Province'] || ''
20
+ @postal_code = args['PostalCode'] || ''
21
+ @zip = args['Zip'] || ''
22
+ @country_code = args['CountryCode'] || ''
23
+ @first_name = args['FirstName'] || ''
24
+ @last_name = args['LastName'] || ''
25
+ @phone = args['Phone'] || ''
26
+ @fax = args['Fax'] || ''
27
+ @last_login = args['LastLogin'] || ''
28
+ @created = args['CreatedDT'] || ''
29
+ @allow_partner_emails = args['AllowPartnerEmails'] || ''
30
+ @allow_newsletter_emails = args['AllowNewsletterEmails'] || ''
31
+ @allow_email_from_headhunter = args['AllowEmailFromHeadHunter'] || ''
32
+ @domain = args['Domain'] || ''
33
+ @registration_path = args['RegistrationPath'] || ''
34
+ @user_type = args['UserType'] || ''
35
+ @gender = args['Gender'] || ''
36
+ @birth_date = args['BirthDate'] || ''
37
+ @cobrand_code = args['CoBrandCode'] || ''
38
+ @resume_stats = args['ResumeStats'] || ''
39
+ @custom_values = args['CustomValues'] || ''
40
+ end
41
+
42
+ def custom_value custom_value_key
43
+ custom_value_value = nil
44
+
45
+ @custom_values['CustomValue'].each do |custom_value|
46
+ custom_value_value = custom_value['Value'] if custom_value['Key'] == custom_value_key
47
+ end
48
+
49
+ return custom_value_value
50
+ end
51
+ end
52
+ end
data/lib/cb/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Cb
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
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: 0.1.4
4
+ version: 0.1.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,10 +10,11 @@ authors:
10
10
  - Miriam Williams
11
11
  - David Posey
12
12
  - Kyle Bumpus
13
+ - Ben Schmaltz
13
14
  autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
- date: 2013-05-29 00:00:00.000000000 Z
17
+ date: 2013-06-04 00:00:00.000000000 Z
17
18
  dependencies:
18
19
  - !ruby/object:Gem::Dependency
19
20
  name: httparty
@@ -54,6 +55,7 @@ email:
54
55
  - MiriamDeana@gmail.com
55
56
  - David.Posey@Careerbuilder.com
56
57
  - Kyle.Bumpus@Careerbuilder.com
58
+ - Ben.Schmaltz@Careerbuilder.com
57
59
  executables: []
58
60
  extensions: []
59
61
  extra_rdoc_files: []
@@ -76,6 +78,7 @@ files:
76
78
  - lib/cb/models/cb_education.rb
77
79
  - lib/cb/models/cb_employee_type.rb
78
80
  - lib/cb/models/cb_job.rb
81
+ - lib/cb/models/cb_user.rb
79
82
  - lib/cb/utils/api.rb
80
83
  - lib/cb/utils/country.rb
81
84
  - lib/cb/utils/fluid_attributes.rb