spear-cb-api 0.0.1 → 0.0.2
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.
- checksums.yaml +4 -4
- data/lib/spear.rb +58 -5
- data/lib/spear/configuration.rb +62 -0
- data/lib/spear/exceptions.rb +19 -1
- data/lib/spear/plugins/model/application.rb +8 -0
- data/lib/spear/plugins/model/job.rb +8 -0
- data/lib/spear/plugins/model/resume.rb +38 -0
- data/lib/spear/plugins/model/talent_network.rb +8 -0
- data/lib/spear/plugins/model/user.rb +23 -0
- data/lib/spear/plugins/models.rb +11 -0
- data/lib/spear/plugins/save_apis.rb +64 -0
- data/lib/spear/request.rb +69 -57
- data/lib/spear/resource/application.rb +22 -0
- data/lib/spear/resource/job.rb +20 -0
- data/lib/spear/resource/resume.rb +44 -34
- data/lib/spear/resource/talent_network.rb +30 -0
- data/lib/spear/resource/user.rb +23 -4
- data/lib/spear/resources.rb +10 -0
- data/lib/spear/structure/base.rb +43 -0
- data/lib/spear/structure/resume/create.rb +17 -0
- data/lib/spear/structure/resume/edit.rb +17 -0
- data/lib/spear/structure/resume/embeded_class.rb +62 -0
- data/lib/spear/structure/resume/ownall.rb +28 -0
- data/lib/spear/structure/resume/parse.rb +80 -0
- data/lib/spear/structure/resume/retrieve.rb +21 -0
- data/lib/spear/structure/resume/upload.rb +8 -0
- data/lib/spear/structure/user/check_existing.rb +17 -0
- data/lib/spear/structure/user/create.rb +15 -0
- data/lib/spear/structure/user/retrieve.rb +21 -0
- data/lib/spear/version.rb +1 -1
- data/spear-cb-api.gemspec +5 -0
- data/spec/spear_spec.rb +30 -0
- metadata +83 -6
- data/lib/spear/async_job.rb +0 -23
- data/lib/spear/client.rb +0 -58
- data/spec/client_spec.rb +0 -5
@@ -0,0 +1,21 @@
|
|
1
|
+
module Spear
|
2
|
+
module Structure
|
3
|
+
module Resume
|
4
|
+
class Retrieve < Structure::Base
|
5
|
+
include EmbededClass
|
6
|
+
|
7
|
+
attr_accessor :title, :total_years_experience, :educations, :company_experiences
|
8
|
+
|
9
|
+
def initialize(response)
|
10
|
+
super(response)
|
11
|
+
|
12
|
+
@resume = @root['Resume']
|
13
|
+
@title = @resume['Title']
|
14
|
+
@total_years_experience = (@resume['TotalYearsExperience'].to_i rescue 0)
|
15
|
+
@educations = generate_educations(@resume['Educations'])
|
16
|
+
@company_experiences = generate_experiences(@resume['CompanyExperiences'])
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spear
|
2
|
+
module Structure
|
3
|
+
module User
|
4
|
+
class CheckExisting < Structure::Base
|
5
|
+
attr_reader :external_id, :oauth_token, :check_status
|
6
|
+
|
7
|
+
# http://api.careerbuilder.com/UserInfo.aspx
|
8
|
+
def initialize(response)
|
9
|
+
super(response)
|
10
|
+
@external_id = @root["ResponseExternalID"]
|
11
|
+
@oauth_token = @root["ResponseOAuthToken"]
|
12
|
+
@check_status = @root['UserCheckStatus']
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Spear
|
2
|
+
module Structure
|
3
|
+
module User
|
4
|
+
class Create < Structure::Base
|
5
|
+
attr_reader :external_id
|
6
|
+
|
7
|
+
# http://api.careerbuilder.com/UserInfo.aspx
|
8
|
+
def initialize(response)
|
9
|
+
super(response)
|
10
|
+
@external_id = @root["ResponseExternalID"]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Spear
|
2
|
+
module Structure
|
3
|
+
module User
|
4
|
+
class Retrieve < Structure::Base
|
5
|
+
attr_reader :external_id
|
6
|
+
attr_accessor :email, :first_name, :last_name, :phone
|
7
|
+
|
8
|
+
# http://api.careerbuilder.com/UserInfo.aspx
|
9
|
+
def initialize(response)
|
10
|
+
super(response)
|
11
|
+
@user_info = @root['UserInfo']
|
12
|
+
@external_id = @root['Request']['ExternalID']
|
13
|
+
@email = @user_info['Email']
|
14
|
+
@first_name = @user_info['FirstName']
|
15
|
+
@last_name = @user_info['LastName']
|
16
|
+
@phone = @user_info['Phone']
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/spear/version.rb
CHANGED
data/spear-cb-api.gemspec
CHANGED
@@ -18,7 +18,12 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
+
spec.add_development_dependency "builder", "~> 3.2"
|
22
|
+
spec.add_development_dependency "activesupport", "~> 4.2"
|
23
|
+
spec.add_development_dependency "activemodel", "~> 4.2"
|
24
|
+
|
21
25
|
spec.add_development_dependency "sucker_punch", "~> 1.0"
|
26
|
+
spec.add_development_dependency "httparty", "~> 0.13"
|
22
27
|
spec.add_development_dependency "rspec", "~> 3.2", ">= 3.2.0"
|
23
28
|
|
24
29
|
spec.add_development_dependency "bundler", "~> 1.6"
|
data/spec/spear_spec.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
describe Spear do
|
2
|
+
before :each do
|
3
|
+
Spear.config({dev_key: 'xxx', :project => 'ProjectName'})
|
4
|
+
end
|
5
|
+
|
6
|
+
it "check user existing" do
|
7
|
+
s = Spear.check_existing('zhangfei@163.com.cn', '111111111')
|
8
|
+
puts s
|
9
|
+
end
|
10
|
+
|
11
|
+
it "application history" do
|
12
|
+
s = Spear.history('XRHR3NV6S8SK6DJ0GKSD')
|
13
|
+
puts s
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'search job' do
|
17
|
+
s = Spear.search_job({:TalentNetworkDID => 'TN818G76D6YWYNBXHB3Z', :SiteEntity => 'TalentNetworkJob', :CountryCode => 'IN'})
|
18
|
+
puts s
|
19
|
+
end
|
20
|
+
|
21
|
+
it "retrieve job" do
|
22
|
+
s = Spear.retrieve_job('J3J4BP6MGVH2DJZ6MJH', 'IN')
|
23
|
+
puts s
|
24
|
+
end
|
25
|
+
|
26
|
+
it "create application" do
|
27
|
+
s = Spear.create_application('IN')
|
28
|
+
puts s
|
29
|
+
end
|
30
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spear-cb-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CBluowei
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: builder
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.2'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.2'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.2'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: activemodel
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '4.2'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '4.2'
|
13
55
|
- !ruby/object:Gem::Dependency
|
14
56
|
name: sucker_punch
|
15
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -24,6 +66,20 @@ dependencies:
|
|
24
66
|
- - "~>"
|
25
67
|
- !ruby/object:Gem::Version
|
26
68
|
version: '1.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: httparty
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.13'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.13'
|
27
83
|
- !ruby/object:Gem::Dependency
|
28
84
|
name: rspec
|
29
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,15 +142,36 @@ files:
|
|
86
142
|
- README.md
|
87
143
|
- Rakefile
|
88
144
|
- lib/spear.rb
|
89
|
-
- lib/spear/
|
90
|
-
- lib/spear/client.rb
|
145
|
+
- lib/spear/configuration.rb
|
91
146
|
- lib/spear/exceptions.rb
|
147
|
+
- lib/spear/plugins/model/application.rb
|
148
|
+
- lib/spear/plugins/model/job.rb
|
149
|
+
- lib/spear/plugins/model/resume.rb
|
150
|
+
- lib/spear/plugins/model/talent_network.rb
|
151
|
+
- lib/spear/plugins/model/user.rb
|
152
|
+
- lib/spear/plugins/models.rb
|
153
|
+
- lib/spear/plugins/save_apis.rb
|
92
154
|
- lib/spear/request.rb
|
155
|
+
- lib/spear/resource/application.rb
|
156
|
+
- lib/spear/resource/job.rb
|
93
157
|
- lib/spear/resource/resume.rb
|
158
|
+
- lib/spear/resource/talent_network.rb
|
94
159
|
- lib/spear/resource/user.rb
|
160
|
+
- lib/spear/resources.rb
|
161
|
+
- lib/spear/structure/base.rb
|
162
|
+
- lib/spear/structure/resume/create.rb
|
163
|
+
- lib/spear/structure/resume/edit.rb
|
164
|
+
- lib/spear/structure/resume/embeded_class.rb
|
165
|
+
- lib/spear/structure/resume/ownall.rb
|
166
|
+
- lib/spear/structure/resume/parse.rb
|
167
|
+
- lib/spear/structure/resume/retrieve.rb
|
168
|
+
- lib/spear/structure/resume/upload.rb
|
169
|
+
- lib/spear/structure/user/check_existing.rb
|
170
|
+
- lib/spear/structure/user/create.rb
|
171
|
+
- lib/spear/structure/user/retrieve.rb
|
95
172
|
- lib/spear/version.rb
|
96
173
|
- spear-cb-api.gemspec
|
97
|
-
- spec/
|
174
|
+
- spec/spear_spec.rb
|
98
175
|
- spec/spec_helper.rb
|
99
176
|
homepage: https://github.com/hilotus/spear-cb-api
|
100
177
|
licenses:
|
@@ -121,5 +198,5 @@ signing_key:
|
|
121
198
|
specification_version: 4
|
122
199
|
summary: Cb api wrapper
|
123
200
|
test_files:
|
124
|
-
- spec/
|
201
|
+
- spec/spear_spec.rb
|
125
202
|
- spec/spec_helper.rb
|
data/lib/spear/async_job.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Spear
|
4
|
-
class AsyncJob
|
5
|
-
include SuckerPunch::Job
|
6
|
-
|
7
|
-
def perform(options={})
|
8
|
-
# TODO: save the error to log
|
9
|
-
HTTParty.post(
|
10
|
-
%q{http://ciws.hilotus.com/api/v1/api-info},
|
11
|
-
:body => {
|
12
|
-
:project => options[:project],
|
13
|
-
:url => options[:url],
|
14
|
-
:method => options[:method],
|
15
|
-
:request => options[:request],
|
16
|
-
:response => options[:response],
|
17
|
-
:duration => options[:duration]
|
18
|
-
}.to_json,
|
19
|
-
:options => {:headers => {'Content-Type' => 'application/json'}}
|
20
|
-
) rescue options
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/lib/spear/client.rb
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Spear
|
4
|
-
class Client
|
5
|
-
include Spear::Resource::User
|
6
|
-
include Spear::Resource::Resume
|
7
|
-
|
8
|
-
attr_reader :options, :request
|
9
|
-
|
10
|
-
def initialize(options={})
|
11
|
-
raise Spear::InvalidClientOptionsException.new('DeveloperKey is missing!') if options[:dev_key].nil?
|
12
|
-
raise Spear::InvalidClientOptionsException.new('ProjectName is missing!') if options[:project].nil?
|
13
|
-
|
14
|
-
@options = options
|
15
|
-
@request = generate_request
|
16
|
-
end
|
17
|
-
|
18
|
-
def test?
|
19
|
-
@options[:use_test] || false
|
20
|
-
end
|
21
|
-
|
22
|
-
# use https or http
|
23
|
-
def ssh?
|
24
|
-
@options[:use_ssh] || true
|
25
|
-
end
|
26
|
-
|
27
|
-
def hostname
|
28
|
-
@options[:hostname] || 'api.careerbuilder.com'
|
29
|
-
end
|
30
|
-
|
31
|
-
def port
|
32
|
-
@options[:port] || 443
|
33
|
-
end
|
34
|
-
|
35
|
-
def version
|
36
|
-
@options[:version] || "v2"
|
37
|
-
end
|
38
|
-
|
39
|
-
def dev_key
|
40
|
-
@options[:dev_key]
|
41
|
-
end
|
42
|
-
|
43
|
-
# need save api info
|
44
|
-
def save_api?
|
45
|
-
@options[:use_saving_api] || false
|
46
|
-
end
|
47
|
-
|
48
|
-
def project
|
49
|
-
@options[:project]
|
50
|
-
end
|
51
|
-
|
52
|
-
private
|
53
|
-
def generate_request(options={})
|
54
|
-
options = {:client => self}.merge(options)
|
55
|
-
return Spear::Request.new(options)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|