taleo 0.1.1 → 0.6.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +5 -3
- data/README.md +9 -1
- data/lib/taleo/client.rb +9 -12
- data/lib/taleo/cursor.rb +12 -0
- data/lib/taleo/employee.rb +34 -0
- data/lib/taleo/location.rb +13 -0
- data/lib/taleo/version.rb +1 -1
- data/taleo.gemspec +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6324fb24d7887a2ce1b64e78be566b5166a0176351a4eb06fcbe9204f5c9bed
|
4
|
+
data.tar.gz: e817de316ddfa86c845c3cc7bb3ce5634851d2beadf541d717554941bb31f5a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 14b52d69ffe8a05775e360aa975c3876bcce1176fae2ff3442c9b5c71c8c1be81dd735d092772aa26d4deab2c3bc5ade0b626afb3f7da429cc297712f8421126
|
7
|
+
data.tar.gz: 7dc5324f2c20119468ccbae40962d72ec753ab88dced758e7572ad056f79727789789c6e3485fba0b3bbba61d4ccf650a2a54ff4926765e8cc7dad94ffdf19a3
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
taleo (0.
|
4
|
+
taleo (0.6.0)
|
5
5
|
faraday (~> 1.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -14,8 +14,9 @@ GEM
|
|
14
14
|
safe_yaml (~> 1.0.0)
|
15
15
|
diff-lcs (1.4.4)
|
16
16
|
docile (1.3.2)
|
17
|
-
faraday (1.0
|
17
|
+
faraday (1.1.0)
|
18
18
|
multipart-post (>= 1.2, < 3)
|
19
|
+
ruby2_keywords
|
19
20
|
hashdiff (1.0.0)
|
20
21
|
json (2.3.1)
|
21
22
|
multi_json (1.15.0)
|
@@ -39,6 +40,7 @@ GEM
|
|
39
40
|
diff-lcs (>= 1.2.0, < 2.0)
|
40
41
|
rspec-support (~> 3.9.0)
|
41
42
|
rspec-support (3.9.3)
|
43
|
+
ruby2_keywords (0.0.2)
|
42
44
|
safe_yaml (1.0.5)
|
43
45
|
simplecov (0.17.1)
|
44
46
|
docile (~> 1.1)
|
@@ -72,7 +74,7 @@ DEPENDENCIES
|
|
72
74
|
rspec (~> 3.0)
|
73
75
|
simplecov (~> 0.17.1)
|
74
76
|
sinatra (~> 2.0)
|
75
|
-
sinatra-contrib
|
77
|
+
sinatra-contrib (~> 2.0)
|
76
78
|
taleo!
|
77
79
|
webmock (~> 3.6)
|
78
80
|
yard
|
data/README.md
CHANGED
@@ -1,9 +1,17 @@
|
|
1
1
|
# Taleo
|
2
2
|
|
3
|
-
[](https://codeclimate.com/github/paulholden2/taleo/maintainability) [](https://codeclimate.com/github/paulholden2/taleo/test_coverage)
|
3
|
+
[](https://badge.fury.io/rb/taleo) [](https://travis-ci.org/paulholden2/taleo) [](http://inch-ci.org/github/paulholden2/taleo) [](https://codeclimate.com/github/paulholden2/taleo/maintainability) [](https://codeclimate.com/github/paulholden2/taleo/test_coverage)
|
4
4
|
|
5
5
|
A library for using the Taleo REST API.
|
6
6
|
|
7
|
+
**Note**: A Nov 2020 change to the Taleo API requires at least one search
|
8
|
+
criteria be passed to employee searches (performed by `client#employees` to
|
9
|
+
retrieve paged results). Versions prior to 0.6 do not support passing search
|
10
|
+
parameters, and as such you should not use them if you need to utilize
|
11
|
+
employee searches. See the Taleo REST API guide
|
12
|
+
[here](https://www.oracle.com/technical-resources/documentation/taleobusiness.html)
|
13
|
+
for more information.
|
14
|
+
|
7
15
|
## Installation
|
8
16
|
|
9
17
|
Add this line to your application's Gemfile:
|
data/lib/taleo/client.rb
CHANGED
@@ -9,7 +9,7 @@ require 'taleo/employee'
|
|
9
9
|
module Taleo
|
10
10
|
# Base object for executing queries and wrapping HTTP requests.
|
11
11
|
class Client
|
12
|
-
attr_reader :org_code, :username, :password, :service_url
|
12
|
+
attr_reader :org_code, :username, :password, :service_url, :auth_token
|
13
13
|
|
14
14
|
def initialize(org_code, username, password, service_url)
|
15
15
|
@org_code = org_code
|
@@ -34,14 +34,16 @@ module Taleo
|
|
34
34
|
Activity.new(show('activity', id), self)
|
35
35
|
end
|
36
36
|
|
37
|
-
def employees
|
38
|
-
|
37
|
+
def employees(start = 1, limit = 10, params: {})
|
38
|
+
raise ArgumentError, "At least one query parameter is required " \
|
39
|
+
"for employee search" if params.keys.size.zero?
|
40
|
+
cursor('employee', Employee, start, limit, params: params)
|
39
41
|
end
|
40
42
|
|
41
|
-
def cursor(resource, klass, start = 1, limit = 10)
|
43
|
+
def cursor(resource, klass, start = 1, limit = 10, params: {})
|
42
44
|
res = connection.get do |req|
|
43
45
|
req.url "object/#{resource}/search"
|
44
|
-
req.params.merge!({
|
46
|
+
req.params.merge!(params).merge!({
|
45
47
|
'start' => start,
|
46
48
|
'limit' => limit
|
47
49
|
})
|
@@ -49,7 +51,8 @@ module Taleo
|
|
49
51
|
data = JSON.parse(res.body)
|
50
52
|
pagination = data.dig('response', 'pagination')
|
51
53
|
results = data.dig('response', 'searchResults')
|
52
|
-
Cursor.new(pagination, results, resource, klass, self)
|
54
|
+
cursor = Cursor.new(pagination, results, resource, klass, self)
|
55
|
+
cursor.self_page
|
53
56
|
end
|
54
57
|
|
55
58
|
def show(resource, id)
|
@@ -120,11 +123,5 @@ module Taleo
|
|
120
123
|
@api_url = data.dig('response', 'URL')
|
121
124
|
@api_url
|
122
125
|
end
|
123
|
-
|
124
|
-
private
|
125
|
-
|
126
|
-
def auth_token
|
127
|
-
@auth_token
|
128
|
-
end
|
129
126
|
end
|
130
127
|
end
|
data/lib/taleo/cursor.rb
CHANGED
@@ -27,6 +27,18 @@ module Taleo
|
|
27
27
|
pagination.key?('previous')
|
28
28
|
end
|
29
29
|
|
30
|
+
def has_self?
|
31
|
+
pagination.key?('self')
|
32
|
+
end
|
33
|
+
|
34
|
+
def self_page
|
35
|
+
res = client.connection.get do |req|
|
36
|
+
req.url pagination.fetch('self')
|
37
|
+
end
|
38
|
+
|
39
|
+
new_cursor(res)
|
40
|
+
end
|
41
|
+
|
30
42
|
def next_page
|
31
43
|
raise Taleo::Error.new('No further results') unless has_next?
|
32
44
|
|
data/lib/taleo/employee.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'taleo/resource'
|
4
4
|
require 'taleo/candidate'
|
5
5
|
require 'taleo/packet'
|
6
|
+
require 'taleo/location'
|
6
7
|
|
7
8
|
module Taleo
|
8
9
|
# Stub for Packet resource class
|
@@ -13,7 +14,40 @@ module Taleo
|
|
13
14
|
data.fetch('employeeId')
|
14
15
|
end
|
15
16
|
|
17
|
+
def first_name
|
18
|
+
data.fetch('firstName')
|
19
|
+
end
|
20
|
+
|
21
|
+
def last_name
|
22
|
+
data.fetch('lastName')
|
23
|
+
end
|
24
|
+
|
25
|
+
def location_id
|
26
|
+
data.fetch('location')
|
27
|
+
end
|
28
|
+
|
29
|
+
def ssn
|
30
|
+
data.fetch('ssn')
|
31
|
+
end
|
32
|
+
|
16
33
|
has_one :candidate, Candidate
|
34
|
+
has_one :location, Location
|
17
35
|
has_many :packets, Packet, singular: 'packet', plural: 'activityPackets'
|
36
|
+
has_many :attachments, Attachment, singular: 'attachment', through: 'attachment'
|
37
|
+
|
38
|
+
# Override since employee relationship URLs will not include an
|
39
|
+
# attachments URL
|
40
|
+
def has_attachments?
|
41
|
+
true
|
42
|
+
end
|
43
|
+
|
44
|
+
# Annoying hack since the employee resource relationship URLs hash
|
45
|
+
# doesn't include an attachments link, even if there are attachments.
|
46
|
+
def relationship_urls
|
47
|
+
urls = super
|
48
|
+
urls.merge({
|
49
|
+
'attachment' => urls.fetch('historylog').gsub(/historylog$/, 'attachment')
|
50
|
+
})
|
51
|
+
end
|
18
52
|
end
|
19
53
|
end
|
data/lib/taleo/version.rb
CHANGED
data/taleo.gemspec
CHANGED
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_dependency 'faraday', '~> 1.0'
|
35
35
|
|
36
36
|
spec.add_development_dependency 'sinatra', '~> 2.0'
|
37
|
-
spec.add_development_dependency 'sinatra-contrib'
|
37
|
+
spec.add_development_dependency 'sinatra-contrib', '~> 2.0'
|
38
38
|
spec.add_development_dependency 'webmock', '~> 3.6'
|
39
39
|
spec.add_development_dependency 'yard'
|
40
40
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: taleo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Holden
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -42,16 +42,16 @@ dependencies:
|
|
42
42
|
name: sinatra-contrib
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
47
|
+
version: '2.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
54
|
+
version: '2.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: webmock
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -105,6 +105,7 @@ files:
|
|
105
105
|
- lib/taleo/client.rb
|
106
106
|
- lib/taleo/cursor.rb
|
107
107
|
- lib/taleo/employee.rb
|
108
|
+
- lib/taleo/location.rb
|
108
109
|
- lib/taleo/packet.rb
|
109
110
|
- lib/taleo/resource.rb
|
110
111
|
- lib/taleo/version.rb
|