spear-cb-api 0.0.6 → 0.0.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 99a2043f153e08a27aca5f2460d0c8e740f54820
4
- data.tar.gz: b6860970868165b0524d84f8405e7ce141e99234
3
+ metadata.gz: 1e87624498835a51e4a275ae593bba7b34b39b38
4
+ data.tar.gz: 7c9e0297fa3def264fc0eea62d455b33b0b8cb8c
5
5
  SHA512:
6
- metadata.gz: 1a0125557056f2a98096a3b604523e38259adfa5303c112bdfc2b2a27ac302f1e5291c61b3679ee1a1c04b43321a9ac60bf207cc1e71847c78312cd0700967e6
7
- data.tar.gz: 4a62e65fe56416e23b67c06270f6f099f5f51bc7e6261816b4635b71da873fc42d01dbb44363efa2da8c2449be101b8140af49280e2e0b5681de4846e6fb7cdc
6
+ metadata.gz: 63c56495871130cd2b07dbde445532ad6cd96839d7c8390351ef253484ed40a87065e846587be287d28aa7b2a2eb752a65675cb107c1da6a242693289ac2a02b
7
+ data.tar.gz: 44ff0d4f658b74bd9aab92144619cde84c4d09a44a76fc55dc046ae62f1fc6a9212f62641fae31dcd31729e31e17f7bbf0153accdf64efccde8f66aad7736e6a
data/lib/spear.rb CHANGED
@@ -38,6 +38,9 @@ module Spear
38
38
  module Application
39
39
  autoload :Create, 'spear/structure/application/create'
40
40
  autoload :History, 'spear/structure/application/history'
41
+ autoload :State, 'spear/structure/application/state'
42
+ autoload :Blank, 'spear/structure/application/blank'
43
+ autoload :Submit, 'spear/structure/application/submit'
41
44
  end
42
45
 
43
46
  module Job
@@ -2,70 +2,74 @@ module Spear
2
2
  module Configuration
3
3
  @@options = {}
4
4
 
5
- # use https or http
6
- def ssh?
7
- @@options[:use_ssh].nil? ? true : @@options[:use_ssh]
8
- end
9
-
10
- def hostname
11
- @@options[:hostname] || 'api.careerbuilder.com'
12
- end
13
-
14
- def port
15
- @@options[:port] || 443
16
- end
17
-
18
- def version
19
- @@options[:version] || "v2"
20
- end
21
-
22
- def test?
23
- @@options[:use_test].nil? ? false : @@options[:use_test]
24
- end
25
-
26
- def dev_key
27
- @@options[:dev_key]
28
- end
29
-
30
- # need save api info
31
- def save_api?
32
- @@options[:saving_api].nil? ? false : @@options[:saving_api]
33
- end
34
-
35
- def use_model?
36
- @@options[:using_model].nil? ? false : @@options[:using_model]
37
- end
38
-
39
- def project
40
- @@options[:project]
41
- end
42
-
43
- # def use_dummy?
44
- # @@options[:using_dummy] || false
45
- # end
46
-
47
5
  def config(options={})
48
- @@options = options.merge!({use_ssh: true, hostname: 'api.careerbuilder.com', port: 443, version: 'v2'})
6
+ set_defaults(options)
49
7
 
50
8
  raise Spear::ParametersRequired.new('DeveloperKey') if dev_key.nil?
51
- raise Spear::ParametersNotValid.new('You must specify a project name, if you want save api info.') if save_api? and project.nil?
9
+ if save_api? and (!Options.instance_methods.include?(:project) or project.nil?)
10
+ raise Spear::ParametersNotValid.new('You must specify a project name, if you want save api info.')
11
+ end
52
12
 
53
13
  # add plugins to request
54
14
  include_plugins
55
15
  end
56
16
 
17
+ module Options
18
+ end
19
+
57
20
  private
58
21
  def include_plugins
59
22
  Request.include Plugins::SaveApis if save_api?
23
+ Spear.extend(use_model? ? Plugins::Models : Resources)
24
+ end
60
25
 
61
- if use_model?
62
- Spear.extend Plugins::Models
63
- else
64
- Spear.extend Resources
65
- end
66
-
67
- # Spear.extend Dummy if use_dummy?
26
+ def set_defaults(options)
27
+ defaults = {
28
+ use_test: false,
29
+ save_api: false,
30
+ use_model: false,
31
+ base_uri: 'https://api.careerbuilder.com',
32
+ time_out: 5,
33
+ uri_application_history: '/v1/application/history',
34
+ uri_application_create: '/cbapi/application',
35
+ uri_application_status: '/cn/wechat/getapplicationstatus.aspx',
36
+ uri_application_blank: '/v1/application/blank',
37
+ uri_application_submit: '/v1/application/submit',
38
+ uri_job_search: '/v2/jobsearch',
39
+ uri_job_retrieve: '/v2/job',
40
+ uri_resume_parse: '/v2/resume/parse',
41
+ uri_resume_create: '/v2/resume/create',
42
+ uri_resume_edit: '/v2/resume/edit',
43
+ uri_resume_upload: '/v2/resume/upload',
44
+ uri_resume_ownall: '/v2/resume/ownall',
45
+ uri_resume_retrieve: '/v2/resume/retrieve',
46
+ # job_did and format
47
+ uri_tn_join_form_question: '/talentnetwork/config/join/questions/%s/%s',
48
+ # format
49
+ uri_tn_menber_create: '/talentnetwork/member/create/%s',
50
+ uri_user_checkexisting: '/v2/user/checkexisting',
51
+ uri_user_create: '/v2/user/create',
52
+ uri_user_retrieve: '/v2/user/retrieve'
53
+ }
54
+
55
+ @@options = defaults.merge(options)
56
+ @@options[:base_uri] = 'https://wwwtest.api.careerbuilder.com' if @@options[:use_test]
57
+
58
+ set_option_readers
68
59
  end
69
60
 
61
+ def set_option_readers
62
+ @@options.each do |k, v|
63
+ Options.class_eval {
64
+ if v.kind_of?(FalseClass) or v.kind_of?(TrueClass)
65
+ define_method(k.to_s + '?') { return v }
66
+ else
67
+ define_method(k) { return v }
68
+ end
69
+ }
70
+ end
71
+ # add these option method into Spear module
72
+ Spear.extend Options
73
+ end
70
74
  end
71
75
  end
@@ -14,6 +14,21 @@ module Spear
14
14
  response = super(host_site, data)
15
15
  Structure::Application::Create.new(response)
16
16
  end
17
+
18
+ def application_status(app_dids=[])
19
+ response = super(app_dids)
20
+ Structure::Application::State.new(response)
21
+ end
22
+
23
+ def application_blank(job_did)
24
+ response = super(job_did)
25
+ Structure::Application::Blank.new(response)
26
+ end
27
+
28
+ def application_submit(job_did, questions=[])
29
+ response = super(job_did, questions)
30
+ Structure::Application::Submit.new(response)
31
+ end
17
32
  end
18
33
  end
19
34
  end
@@ -30,8 +30,11 @@ module Spear
30
30
 
31
31
  params[:request] = self.api_response.request.options[:body]
32
32
  if params[:request].kind_of?(String)
33
- # parse file api
34
- params[:request].gsub!(/<FileBytes>(.*?)<\/FileBytes>/m, '<FileBytes>...</FileBytes>')
33
+ params[:request]
34
+ # parse file api
35
+ .gsub!(/<FileBytes>(.*?)<\/FileBytes>/m, '<FileBytes>...</FileBytes>')
36
+ # apply job api
37
+ .gsub!(/<ResumeData>(.*?)<\/ResumeData>/m, '<ResumeData>...</ResumeData>')
35
38
  elsif params[:request].kind_of?(Hash)
36
39
  # upload file api
37
40
  params[:request][:FileBytes] = '...'
data/lib/spear/request.rb CHANGED
@@ -3,19 +3,25 @@ require 'active_model/callbacks'
3
3
 
4
4
  module Spear
5
5
  class Request
6
+ include HTTParty
6
7
  extend ActiveModel::Callbacks
8
+
9
+ # httparty perference
10
+ default_timeout Spear.time_out
11
+
12
+ # callback
7
13
  define_model_callbacks :execute, :only => [:before, :after]
8
14
 
9
- attr_accessor :method, :query, :body, :api_options, :url
15
+ attr_accessor :method, :query, :body, :url
10
16
 
11
- # params: {:body => {}, :query => {}, :api_options => {}}
12
- # exp: api_options: {:path => "/v1"}
17
+ # params: {:body => {}, :query => {}}
13
18
  def initialize(method, endpoint, params={})
14
19
  @method = method
15
20
  @query = params[:query] || {}
16
21
  @body = params[:body] || {}
22
+ @header = params[:header] || {}
17
23
  @api_options = params[:api_options] || {}
18
- @url = generate_resource + endpoint
24
+ @url = Spear.base_uri + endpoint
19
25
  end
20
26
 
21
27
  def execute
@@ -34,15 +40,15 @@ module Spear
34
40
  begin
35
41
  case @method
36
42
  when :get
37
- HTTParty.get(@url, query: splice_query)
43
+ self.class.get(@url, query: splice_query)
38
44
  when :post
39
- HTTParty.post(@url, body: splice_body, query: @query)
45
+ self.class.post(@url, body: splice_body, query: @query)
40
46
  when :upload_file
41
- HTTParty.post(@url, body: @body, query: splice_query)
47
+ self.class.post(@url, body: @body, query: splice_query)
42
48
  when :parse_file
43
- HTTParty.post(@url, body: splice_body)
49
+ self.class.post(@url, body: splice_body)
44
50
  when :apply
45
- HTTParty.post(@url, body: to_xml(@body), query: splice_query)
51
+ self.class.post(@url, body: to_xml(@body), headers: splice_header)
46
52
  else
47
53
  raise Spear::ParametersNotValid.new("#{method} is not support.")
48
54
  end
@@ -51,44 +57,33 @@ module Spear
51
57
  end
52
58
  end
53
59
 
54
- # generate cb api host and version
55
- def generate_resource
56
- uri = URI("")
57
- uri.scheme = Spear.ssh? ? 'https' : 'http'
58
- uri.host = Spear.hostname
59
- uri.port = Spear.port
60
-
61
- # Some api endpoint have no version and fixed pattern.
62
- if @api_options[:path].nil?
63
- uri.path = "/#{Spear.version}"
64
- else
65
- uri.path = "#{@api_options[:path]}"
66
- end
67
-
68
- uri.to_s
69
- end
70
-
71
60
  # splice request body
72
61
  def splice_body
73
62
  @body[:DeveloperKey] = Spear.dev_key
74
- @body[:Test] = Spear.test? if need_test_key?
63
+ @body[:Test] = Spear.use_test? if need_test_element?
75
64
  to_xml(@body)
76
65
  end
77
66
 
78
67
  # parse body from hash to xml format
79
68
  def to_xml(body)
80
- body.to_xml(root: 'Request', skip_instruct: true, skip_types: true)
69
+ root = @api_options[:root_element].nil? ? 'Request' : @api_options[:root_element]
70
+ body.to_xml(root: root, skip_instruct: true, skip_types: true)
81
71
  end
82
72
 
83
73
  # splice query(url params) {:query => {}} with DeveloperKey and Test
84
74
  def splice_query
85
75
  @query[:DeveloperKey] = Spear.dev_key
86
- @query[:Test] = Spear.test? if need_test_key?
76
+ @query[:Test] = Spear.use_test? if need_test_element?
87
77
  @query
88
78
  end
89
79
 
90
- def need_test_key?
91
- @api_options[:need_test_key].nil? ? true : @api_options[:need_test_key]
80
+ def splice_header
81
+ @header[:DeveloperKey] = Spear.dev_key
82
+ end
83
+
84
+ # some api need Test element.
85
+ def need_test_element?
86
+ @api_options[:need_test_element].nil? ? true : @api_options[:need_test_element]
92
87
  end
93
88
 
94
89
  end
@@ -4,17 +4,36 @@ module Spear
4
4
  def history(user_external_id)
5
5
  raise Spear::ParametersRequired.new('UserExternalId') if user_external_id.blank?
6
6
 
7
- Spear::Request.new(:get, "/application/history",
8
- {query: {:ExternalID => user_external_id}, api_options: {path: '/v1'}}).execute
7
+ Spear::Request.new(:get, Spear.uri_application_history, {
8
+ query: {:ExternalID => user_external_id}}).execute
9
9
  end
10
10
 
11
11
  # Application Creation
12
12
  def create_application(host_site, data={})
13
13
  raise Spear::ParametersRequired.new('HostSite') if host_site.blank?
14
- raise Spear::ParametersRequired.new(%w{JobID Resume Responses}) if data[:JobDID].blank? or data[:Resume].nil? or data[:Responses].nil?
15
14
 
16
- Spear::Request.new(:apply, '',
17
- {query: {:HostSite => host_site}, body: data, api_options: {path: "/cbapi/application"}}).execute
15
+ if data[:JobDID].blank? or data[:Resume].nil? or data[:Responses].nil?
16
+ raise Spear::ParametersRequired.new(%w{JobID Resume Responses})
17
+ end
18
+
19
+ Spear::Request.new(:apply, Spear.uri_application_create, {
20
+ header: {:HostSite => host_site}, body: data}).execute
21
+ end
22
+
23
+ def application_status(app_dids=[])
24
+ Spear::Request.new(:get, Spear.uri_application_status, {
25
+ query: {sApplDID: app_dids.join(',')}}).execute
26
+ end
27
+
28
+ def application_blank(job_did)
29
+ raise Spear::ParametersRequired.new('JobDID') if job_did.blank?
30
+ Spear::Request.new(:get, Spear.uri_application_blank, {query: {JobDID: job_did}}).execute
31
+ end
32
+
33
+ def application_submit(job_did, questions=[])
34
+ raise Spear::ParametersRequired.new('JobDID') if job_did.blank?
35
+ Spear::Request.new(:post, Spear.uri_application_submit, {
36
+ api_options: {root_element: 'RequestApplication'}, body: {JobDID: job_did, Responses: questions}}).execute
18
37
  end
19
38
  end
20
39
  end
@@ -2,7 +2,7 @@ module Spear
2
2
  module Resource
3
3
  module Job
4
4
  def search_job(params={})
5
- Spear::Request.new(:get, "/jobsearch", {:query => params}).execute
5
+ Spear::Request.new(:get, Spear.uri_job_search, {:query => params}).execute
6
6
  end
7
7
 
8
8
  # job_id:
@@ -11,7 +11,7 @@ module Spear
11
11
  def retrieve_job(job_id)
12
12
  raise Spear::ParametersRequired.new('JobID') if job_id.blank?
13
13
 
14
- Spear::Request.new(:get, "/job", {:query => {:DID => job_id}}).execute
14
+ Spear::Request.new(:get, Spear.uri_job_retrieve, {:query => {:DID => job_id}}).execute
15
15
  end
16
16
  end
17
17
  end
@@ -8,22 +8,18 @@ module Spear
8
8
  end
9
9
 
10
10
  file.rewind
11
- Spear::Request.new(:post, "/resume/parse", {
12
- :body => {
13
- :FileName => file.original_filename,
14
- :FileBytes => Base64.encode64(file.read)
15
- }
16
- }).execute
11
+ Spear::Request.new(:post, Spear.uri_resume_parse, {
12
+ body: {FileName: file.original_filename, FileBytes: Base64.encode64(file.read)}}).execute
17
13
  end
18
14
 
19
15
  def create_resume(data={})
20
- Spear::Request.new(:post, "/resume/create", {body: data}).execute
16
+ Spear::Request.new(:post, Spear.uri_resume_create, {body: data}).execute
21
17
  end
22
18
 
23
19
  def edit_resume(data={})
24
20
  raise Spear::ParametersRequired.new('Resume ExternalId') if data[:ExternalID].blank?
25
21
 
26
- Spear::Request.new(:post, "/resume/edit", {body: data}).execute
22
+ Spear::Request.new(:post, Spear.uri_resume_edit, {body: data}).execute
27
23
  end
28
24
 
29
25
  def upload_file(file, resume_external_id, user_external_id)
@@ -34,30 +30,27 @@ module Spear
34
30
  raise Spear::ParametersRequired.new(%w{UserExternalId ResumeExternalId}) if user_external_id.blank? or resume_external_id.blank?
35
31
 
36
32
  file.rewind
37
- Spear::Request.new(:upload_file, "/resume/upload", {
38
- :body => {
39
- :FileBytes => Base64.encode64(file.read)
40
- },
33
+ Spear::Request.new(:upload_file, Spear.uri_resume_upload, {
34
+ :body => {:FileBytes => Base64.encode64(file.read)},
41
35
  :query => {
42
36
  :FileName => file.original_filename,
43
37
  :ExternalID => resume_external_id,
44
- :ExternalUserID => user_external_id
45
- }
46
- }).execute
38
+ :ExternalUserID => user_external_id }
39
+ }).execute
47
40
  end
48
41
 
49
42
  # list all of my resumes
50
43
  def own_all(user_external_id, host_site)
51
44
  raise Spear::ParametersRequired.new(%w{UserExternalId HostSite}) if user_external_id.blank? or host_site.blank?
52
45
 
53
- Spear::Request.new(:get, "/resume/ownall", {
46
+ Spear::Request.new(:get, Spear.uri_resume_ownall, {
54
47
  :query => {:ExternalUserID => user_external_id, :HostSite => host_site}}).execute
55
48
  end
56
49
 
57
50
  def retrieve_resume(resume_external_id, user_external_id)
58
51
  raise Spear::ParametersRequired.new(%w{UserExternalId ResumeExternalId}) if user_external_id.blank? or resume_external_id.blank?
59
52
 
60
- Spear::Request.new(:get, "/resume/retrieve", {
53
+ Spear::Request.new(:get, Spear.uri_resume_retrieve, {
61
54
  :query => {:ExternalUserID => user_external_id, :ExternalID => resume_external_id}}).execute
62
55
  end
63
56
  end
@@ -4,13 +4,13 @@ module Spear
4
4
  def join_form_questions(talent_network_did)
5
5
  raise Spear::ParametersRequired.new('TalentNetworkDID') if talent_network_did.blank?
6
6
 
7
- Spear::Request.new(:get, '',
8
- {api_options: {path: "/talentnetwork/config/join/questions/#{talent_network_did}/json"}}).execute
7
+ Spear::Request.new(:get, Spear.uri_tn_join_form_question % [talent_network_did, 'json'], {
8
+ api_options: {need_test_element: true}}).execute
9
9
  end
10
10
 
11
11
  def create_member(data={})
12
- Spear::Request.new(:post, '', {api_options:
13
- {path: "/talentnetwork/member/create/json", :need_test_key => false}, body: data}).execute
12
+ Spear::Request.new(:post, Spear.uri_tn_menber_create % ['json'], {
13
+ api_options: {need_test_element: true}, body: data}).execute
14
14
  end
15
15
  end
16
16
  end
@@ -3,18 +3,20 @@ module Spear
3
3
  module User
4
4
  def check_existing(email, password='')
5
5
  if password.blank?
6
- Spear::Request.new(:post, "/user/checkexisting", {body: {:Email => email}}).execute
6
+ Spear::Request.new(:post, Spear.uri_user_checkexisting, {body: {:Email => email}}).execute
7
7
  else
8
- Spear::Request.new(:post, "/user/checkexisting", {body: {:Email => email, :Password => password}}).execute
8
+ Spear::Request.new(:post, Spear.uri_user_checkexisting, {
9
+ body: {:Email => email, :Password => password}}).execute
9
10
  end
10
11
  end
11
12
 
12
13
  def create_user(data={})
13
- Spear::Request.new(:post, "/user/create", {body: data}).execute
14
+ Spear::Request.new(:post, Spear.uri_user_create, {body: data}).execute
14
15
  end
15
16
 
16
17
  def retrieve_user(user_external_id, password)
17
- Spear::Request.new(:post, "/user/retrieve", {body: {:ExternalID => user_external_id, :Password => password}}).execute
18
+ Spear::Request.new(:post, Spear.uri_user_retrieve, {
19
+ body: {:ExternalID => user_external_id, :Password => password}}).execute
18
20
  end
19
21
  end
20
22
  end
@@ -0,0 +1,55 @@
1
+ module Spear
2
+ module Structure
3
+ module Application
4
+ class Blank < Structure::Base
5
+ attr_reader :job_did, :job_title, :total_questions, :total_required_questions,
6
+ :application_submit_service_url, :apply_url
7
+ attr_accessor :questions
8
+
9
+ def initialize(response)
10
+ super(response)
11
+
12
+ blank_application = @root['BlankApplication']
13
+
14
+ unless blank_application.nil?
15
+ @job_did = blank_application['JobDID']
16
+ @job_title = blank_application['JobTitle']
17
+ @total_questions = blank_application['TotalQuestions']
18
+ @total_required_questions = blank_application['TotalRequiredQuestions']
19
+ @application_submit_service_url = blank_application['ApplicationSubmitServiceURL']
20
+ @apply_url = blank_application['ApplyURL']
21
+
22
+ @questions = generate_questions(blank_application['Questions']['Question'])
23
+ end
24
+ end
25
+
26
+ class Question
27
+ attr_accessor :id, :type, :required, :text
28
+
29
+ def initialize(id, type, required, text)
30
+ @id = id
31
+ @type = type
32
+ @required = required
33
+ @text = text
34
+ end
35
+ end
36
+
37
+ private
38
+ def generate_questions(questions)
39
+ if !questions.nil?
40
+ if questions.kind_of?(Array)
41
+ questions.map {|q|
42
+ Question.new(q['QuestionID'], q['QuestionType'], q['IsRequired'], q['QuestionText'])
43
+ }
44
+ else # Hash
45
+ [] << Question.new(questions['QuestionID'],
46
+ questions['QuestionType'], questions['IsRequired'], questions['QuestionText'])
47
+ end
48
+ else
49
+ []
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,14 @@
1
+ module Spear
2
+ module Structure
3
+ module Application
4
+ class State < Structure::Base
5
+ attr_accessor :application_list
6
+
7
+ def initialize(response)
8
+ super(response)
9
+ @application_list = @root['ApplicationList']
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ module Spear
2
+ module Structure
3
+ module Application
4
+ class Submit < Structure::Base
5
+ def initialize(response)
6
+ super(response)
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -8,14 +8,21 @@ module Spear
8
8
  raise Spear::ParametersRequired.new('Response') if response.nil?
9
9
 
10
10
  @response = response
11
- # get the root keyvalue of the hash
12
- if response.to_h.has_key?('Errors')
13
- @root = response.to_h
14
- else
15
- @root = response.to_h.first.last
11
+
12
+ # Application Form Api return html string.
13
+
14
+ if response.kind_of?(Hash)
15
+ # get the root keyvalue of the hash
16
+ if response.to_h.has_key?('Errors')
17
+ @root = response.to_h
18
+ else
19
+ @root = response.to_h.first.last
20
+ end
21
+
22
+ # Application status is different
23
+ @status = @root["Status"] || @root['ApplicationStatus']
24
+ @error_message = get_error_message(@root)
16
25
  end
17
- @status = @root["Status"]
18
- @error_message = get_error_message(@root)
19
26
  end
20
27
 
21
28
  def success?
@@ -8,7 +8,7 @@ module Spear
8
8
  def initialize(response)
9
9
  super(response)
10
10
 
11
- if response.kind_of?(HTTParty::Response)
11
+ if response.class == HTTParty::Response
12
12
  @job_id = response.request.options[:query][:DID]
13
13
  end
14
14
 
@@ -10,7 +10,7 @@ module Spear
10
10
  def initialize(response)
11
11
  super(response)
12
12
 
13
- if response.kind_of?(HTTParty::Response)
13
+ if response.class == HTTParty::Response
14
14
  @tn_did = response.request.options[:query][:TalentNetworkDID]
15
15
  end
16
16
 
@@ -4,9 +4,9 @@ module Spear
4
4
  class CheckExisting < Structure::Base
5
5
  attr_reader :external_id, :oauth_token, :check_status
6
6
 
7
- # http://api.careerbuilder.com/UserInfo.aspx
8
7
  def initialize(response)
9
8
  super(response)
9
+
10
10
  @external_id = @root["ResponseExternalID"]
11
11
  @oauth_token = @root["ResponseOAuthToken"]
12
12
  @check_status = @root['UserCheckStatus']
data/lib/spear/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Spear
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
data/spear-cb-api.gemspec CHANGED
@@ -21,7 +21,11 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency "sucker_punch", "~> 1.0"
22
22
  spec.add_dependency "httparty", "~> 0.13"
23
23
 
24
- spec.add_development_dependency "rspec", "~> 3.2", ">= 3.2.0"
24
+ spec.add_development_dependency "rspec", "~> 3.2"
25
+ spec.add_development_dependency "pry", "~> 0.10"
26
+ spec.add_development_dependency "pry-stack_explorer", "~> 0.4"
27
+ spec.add_development_dependency "pry-byebug", "~> 3.0"
28
+
25
29
  spec.add_development_dependency "bundler", "~> 1.6"
26
30
  spec.add_development_dependency "rake", "~> 10.4"
27
31
 
data/spec/spear_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  describe Spear do
2
2
  before :each do
3
- Spear.config({dev_key: 'xxx', project: 'ProjectName', using_model: true})
3
+ Spear.config({dev_key: 'xxx', project: 'ProjectName', use_model: true})
4
4
  end
5
5
 
6
6
  it "check user existing" do
@@ -9,7 +9,7 @@ describe Spear do
9
9
  end
10
10
 
11
11
  it "application history" do
12
- s = Spear.history('XRHR3NV6S8SK6DJ0GKSD')
12
+ s = Spear.history('J3H0YY6LLK553R3Z32Z')
13
13
  puts s.response
14
14
  end
15
15
 
@@ -19,7 +19,7 @@ describe Spear do
19
19
  end
20
20
 
21
21
  it "retrieve job" do
22
- s = Spear.retrieve_job('J3J4BP6MGVH2DJZ6MJH')
22
+ s = Spear.retrieve_job('J3H0YY6LLK553R3Z32Z')
23
23
  puts s.response
24
24
  end
25
25
 
@@ -47,4 +47,23 @@ describe Spear do
47
47
  })
48
48
  puts s.response
49
49
  end
50
+
51
+ it "get application status" do
52
+ s = Spear.application_status(['JAWS4L16LFXD7ZL87LLC', 'JAWW63876DWNQGSWZ384', 'JA4M44C77CDSR0QHTRJ6'])
53
+ puts s.response
54
+ end
55
+
56
+ it "get application blank" do
57
+ s = Spear.application_blank('J3H0YY6LLK553R3Z32Z')
58
+ puts s.response
59
+ end
60
+
61
+ it "application submit" do
62
+ s = Spear.application_submit('J3H0YY6LLK553R3Z32Z', [
63
+ {QuestionID: 'ApplicantName', ResponseText: 'Zhangfei'},
64
+ {QuestionID: 'ApplicantEmail', ResponseText: 'zhangfei@sina.com.cn'},
65
+ {QuestionID: 'Resume', ResponseText: 'test resume'}
66
+ ])
67
+ puts s.response
68
+ end
50
69
  end
data/spec/spec_helper.rb CHANGED
@@ -3,6 +3,8 @@ Bundler.setup
3
3
 
4
4
  require 'spear' # and any other gems you need
5
5
 
6
+ require 'pry' # for debuge
7
+
6
8
  RSpec.configure do |config|
7
9
  # config.include Capybara::DSL,:type=>:request
8
10
  # The settings below are suggested to provide a good initial experience
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spear-cb-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - CBluowei
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-03 00:00:00.000000000 Z
11
+ date: 2015-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: builder
@@ -87,9 +87,6 @@ dependencies:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '3.2'
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- version: 3.2.0
93
90
  type: :development
94
91
  prerelease: false
95
92
  version_requirements: !ruby/object:Gem::Requirement
@@ -97,9 +94,48 @@ dependencies:
97
94
  - - "~>"
98
95
  - !ruby/object:Gem::Version
99
96
  version: '3.2'
100
- - - ">="
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.10'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.10'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry-stack_explorer
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.4'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.4'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry-byebug
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '3.0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
101
137
  - !ruby/object:Gem::Version
102
- version: 3.2.0
138
+ version: '3.0'
103
139
  - !ruby/object:Gem::Dependency
104
140
  name: bundler
105
141
  requirement: !ruby/object:Gem::Requirement
@@ -158,8 +194,11 @@ files:
158
194
  - lib/spear/resource/talent_network.rb
159
195
  - lib/spear/resource/user.rb
160
196
  - lib/spear/resources.rb
197
+ - lib/spear/structure/application/blank.rb
161
198
  - lib/spear/structure/application/create.rb
162
199
  - lib/spear/structure/application/history.rb
200
+ - lib/spear/structure/application/state.rb
201
+ - lib/spear/structure/application/submit.rb
163
202
  - lib/spear/structure/base.rb
164
203
  - lib/spear/structure/job/embeded_class.rb
165
204
  - lib/spear/structure/job/retrieve.rb