samanage 2.1.05 → 2.1.06

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8c12e9f23a7417d96f83d1c76e7e5780cba44460
4
- data.tar.gz: 1df4bc708e4688b5b84a6d33b358eb0f3d6eba0c
3
+ metadata.gz: 57907ba419f116d71c6213300a479cb66c295fb2
4
+ data.tar.gz: 5596f9279a0a966be653698370b0a7656d6ff492
5
5
  SHA512:
6
- metadata.gz: 96ab8a94116c16ae22b3a35e466f0826a03b43793937e9c34a6664811b41442b311c4bfd957e8abcc3fac37c703837e084a7ac6d08d5851e73963f0cefcbf7d4
7
- data.tar.gz: f64fc20a63cfa50828f909d9156f0fbb5bfca20834bcbf7f524cd2737539f66d649a0747fbca5a9211b4ccf8d08a5d33b5b19f9ad61dffeb711629570fed4117
6
+ metadata.gz: 037f7a2eb6dfcbea53e665458915205574141b560c31fc8808a89c705e2fa9d0daa7621946215b44d3912630fb9d16f2a5824a06f793ad8191b8ac96a912e78b
7
+ data.tar.gz: 659da3f6311b6810d69a1107ca8ca545da3c82010decf93c727dd702d698cf1671802bad00b83395754720551c2c98cb4db7529f7d279a7c5859d322cb26488c
data/Gemfile.lock CHANGED
@@ -6,7 +6,7 @@ GEM
6
6
  diff-lcs (1.3)
7
7
  faker (1.9.1)
8
8
  i18n (>= 0.7)
9
- ffi (1.9.23)
9
+ ffi (1.9.24)
10
10
  formatador (0.2.5)
11
11
  guard (2.14.2)
12
12
  formatador (>= 0.2.4)
@@ -30,7 +30,7 @@ GEM
30
30
  rb-fsevent (~> 0.9, >= 0.9.4)
31
31
  rb-inotify (~> 0.9, >= 0.9.7)
32
32
  ruby_dep (~> 1.2)
33
- lumberjack (1.0.12)
33
+ lumberjack (1.0.13)
34
34
  method_source (0.9.0)
35
35
  multi_xml (0.6.0)
36
36
  nenv (0.3.0)
@@ -40,7 +40,7 @@ GEM
40
40
  pry (0.11.3)
41
41
  coderay (~> 1.1.0)
42
42
  method_source (~> 0.9.0)
43
- rb-fsevent (0.10.2)
43
+ rb-fsevent (0.10.3)
44
44
  rb-inotify (0.9.10)
45
45
  ffi (>= 0.5.0, < 2)
46
46
  rspec (3.7.0)
data/README.md CHANGED
@@ -45,6 +45,26 @@ result = api_controller.update_hardware(id: 123, payload: hardware)
45
45
  ```
46
46
 
47
47
 
48
+ ### Listing and Searching
49
+ - Find All Users
50
+ ```ruby
51
+ users = api_controller.users # returns all users
52
+ ```
53
+ - Filtering Incidents matching custom field and updated in the last 7 days
54
+ ```ruby
55
+ incidents = api_controller.incidents(options: {'Custom Field' => 'Some Value', 'updated[]' => 7})
56
+ ```
57
+
58
+ - Listing / Searching also responds to blocks
59
+ ```ruby
60
+ api.controller.users(options: {'Some Filter' => 'Some Value'}) do |user|
61
+ if user['email'].match(/something/)
62
+ foo(bar: bar, user: user)
63
+ else
64
+ puts "User #{user['email']} did not match"
65
+ end
66
+ end
67
+ ```
48
68
 
49
69
 
50
70
 
data/changelog.md CHANGED
@@ -1,119 +1,89 @@
1
- # 2.1.05
1
+ ### 2.1.06
2
+ - Added time track support
3
+ ### 2.1.05
2
4
  - Adding new error checks
3
5
  - Using Faker for tests
4
- # 2.1.04
6
+ ### 2.1.04
5
7
  - params bug fix
6
- # 2.1.03
8
+ ### 2.1.03
7
9
  - Use paths
8
-
9
- # 2.1.02
10
+ ### 2.1.02
10
11
  - Use parmas in all collections
11
-
12
- # 2.1.01
12
+ ### 2.1.01
13
13
  - Added solutions
14
-
15
- # 2.1.0
16
- - Use `URI#encode_www_form`
17
-
18
- # 2.0.04
14
+ ### 2.1.0
15
+ - Use `URI###encode_www_form`
16
+ ### 2.0.04
19
17
  - Fix case sensitivity relationships
20
18
 
21
- # 2.0.03
19
+ ### 2.0.03
22
20
  - Bugfix for custom fields (fix httparty version)
23
-
24
- # 2.0.0
21
+ ### 2.0.0
25
22
  - Support for responding to blocks in all paginated collection methods
26
23
  - Added Changes (itsm)
27
-
28
- # 1.9.35
24
+ ### 1.9.35
29
25
  - Solve warnings
30
-
31
- # 1.9.34
26
+ ### 1.9.34
32
27
  - Solve warnings
33
-
34
- # 1.9.33
28
+ ### 1.9.33
35
29
  - Using new cert
36
-
37
- # 1.9.32
30
+ ### 1.9.32
38
31
  - Adding layout long for single incident
39
32
  - Adding attachment downloads
40
-
41
- # 1.9.31
33
+ ### 1.9.31
42
34
  - Alias original comment method
43
35
  - Remove (keyword: nil)
44
36
  - Collapse error retry output
45
-
46
- # 1.9.3
37
+ ### 1.9.3
47
38
  - Handle HTTP Read Timeout
48
-
49
- # 1.9.2
39
+ ### 1.9.2
50
40
  - Adding delete functionality for modules Contracts, Departments, Groups, Hardwares, Incidents, Mobiles, Other_assets, Sites, Users
51
-
52
- # 1.9.1
41
+ ### 1.9.1
53
42
  - Adding items to contracts & faster tests
54
-
55
- # 1.9.0
43
+ ### 1.9.0
56
44
  - Adding contracts
57
-
58
- # 1.8.91
45
+ ### 1.8.91
59
46
  - Group case sensitivity fix
60
-
61
- # 1.8.9
47
+ ### 1.8.9
62
48
  - Adding output verbosity for collection methods
63
-
64
- # 1.8.8
49
+ ### 1.8.8
65
50
  - Base level .execute delete functionality
66
51
  - Error message for invalid http methods
67
52
  - Added audit_archive to incident options
68
-
69
- # 1.8.7
53
+ ### 1.8.7
70
54
  - Fixing retry bug
71
-
72
- # 1.8.6
55
+ ### 1.8.6
73
56
  - Removing layout=long verbosity
74
-
75
- # 1.8.5
57
+ ### 1.8.5
76
58
  - Adding option for incidents layout=long
77
-
78
- # 1.8.3
59
+ ### 1.8.3
79
60
  - Additional Request Timeout retry support
80
61
  - Support for non-parsed responseq
81
62
  - Moving non object specific methods to samanage/api/utils
82
63
  - Added activation emails
83
-
84
- # 1.8.2
64
+ ### 1.8.2
85
65
  - Adding Category support
86
-
87
- #1.8.1
66
+ ###1.8.1
88
67
  - More flexible membership adding
89
68
  - Collection method aliasing for simpler api (old methods will be removed in v2.0)
90
-
91
- #1.8.0
69
+ ###1.8.0
92
70
  - Adding coverage for invalid api requests
93
-
94
- #1.7.9
71
+ ###1.7.9
95
72
  - Solving eu datacenter support against base_url
96
- #1.7.8
73
+ ###1.7.8
97
74
  - Fixing nil condition in user_id methods
98
-
99
- #1.7.6
75
+ ###1.7.6
100
76
  - Adding group_id find methods for group name and user email
101
-
102
- #1.7.5
77
+ ###1.7.5
103
78
  - Adding site, department, group creation
104
-
105
- #1.7.4
79
+ ###1.7.4
106
80
  - Solving admin listing issue
107
-
108
- #1.7.2
81
+ ###1.7.2
109
82
  - Catching refused connections as Samanage::Error
110
-
111
- #1.7.1
83
+ ###1.7.1
112
84
  - Client Side SSL certificate Forced
113
-
114
- #1.7.0
85
+ ###1.7.0
115
86
  - Switched to HTTParty
116
87
  - Payload now responds to `Hash`. `Strings` will be parsed using `JSON.parse(payload)`
117
-
118
- #1.6.9
88
+ ###1.6.9
119
89
  - Added support for Mobile Devices
data/lib/samanage.rb CHANGED
@@ -5,8 +5,8 @@ require 'samanage/api'
5
5
  require 'samanage/api/attachments'
6
6
  require 'samanage/api/category'
7
7
  require 'samanage/api/changes'
8
- require 'samanage/api/contracts'
9
8
  require 'samanage/api/comments'
9
+ require 'samanage/api/contracts'
10
10
  require 'samanage/api/custom_fields'
11
11
  require 'samanage/api/custom_forms'
12
12
  require 'samanage/api/departments'
@@ -18,6 +18,7 @@ require 'samanage/api/other_assets'
18
18
  require 'samanage/api/requester'
19
19
  require 'samanage/api/sites'
20
20
  require 'samanage/api/solutions'
21
+ require 'samanage/api/time_tracks'
21
22
  require 'samanage/api/users'
22
23
  require 'samanage/api/utils'
23
24
  require 'samanage/error'
@@ -0,0 +1,15 @@
1
+ module Samanage
2
+ class Api
3
+ def time_tracks(incident_id: )
4
+ self.execute(path: "incidents/#{incident_id}/time_tracks.json")[:data]
5
+ end
6
+
7
+ def create_time_track(incident_id: , payload: )
8
+ self.execute(path: "incidents/#{incident_id}/time_tracks.json", http_method: 'post', payload: payload)
9
+ end
10
+
11
+ def update_time_track(incident_id: ,time_track_id: ,payload: )
12
+ self.execute(path: "incidents/#{incident_id}/time_tracks.json")
13
+ end
14
+ end
15
+ end
@@ -1,3 +1,3 @@
1
1
  module Samanage
2
- VERSION = '2.1.05'
2
+ VERSION = '2.1.06'
3
3
  end
@@ -0,0 +1,57 @@
1
+ require 'samanage'
2
+ require 'faker'
3
+
4
+ describe Samanage::Api do
5
+ context 'Site' do
6
+ before(:all) do
7
+ TOKEN ||= ENV['SAMANAGE_TEST_API_TOKEN']
8
+ @samanage = Samanage::Api.new(token: TOKEN)
9
+ @incidents = @samanage.incidents
10
+ end
11
+ it 'creates a time_track' do
12
+ incident_id = @incidents.sample.dig('id')
13
+ name = [Faker::NatoPhoneticAlphabet.code_word,Faker::NatoPhoneticAlphabet.code_word,Faker::NatoPhoneticAlphabet.code_word].join(' ')
14
+ minutes = rand(1000)
15
+ request = @samanage.create_time_track(incident_id: incident_id, payload: {
16
+ time_track: {
17
+ name: name,
18
+ minutes_parsed: minutes
19
+ }
20
+ })
21
+ expect(request[:code]).to eq(201).or(200)
22
+ expect(request[:data].dig('minutes')).to eq(minutes)
23
+ end
24
+ it 'Finds time tracks' do
25
+ incidents_with_time_tracks = @incidents.select{|incident| !incident['time_tracks'].to_a.empty?}
26
+ incident_id = incidents_with_time_tracks.sample.dig('id')
27
+ time_tracks = @samanage.time_tracks(incident_id: incident_id)
28
+ expect(time_tracks).to be_an(Array)
29
+ expect(time_tracks).not_to be_empty
30
+ end
31
+ it 'updates a time_track' do
32
+ incidents_with_time_tracks = @incidents.select{|incident| !incident['time_tracks'].to_a.empty?}
33
+ incident_id = incidents_with_time_tracks.sample.dig('id')
34
+ time_tracks = @samanage.time_tracks(incident_id: incident_id)
35
+ time_track_id = time_tracks.sample.dig('id')
36
+ name = [Faker::NatoPhoneticAlphabet.code_word,Faker::NatoPhoneticAlphabet.code_word,Faker::NatoPhoneticAlphabet.code_word].join(' ')
37
+ minutes = rand(1000)
38
+ request = @samanage.update_time_track(time_track_id: time_track_id, incident_id: incident_id, payload: {
39
+ time_track: {
40
+ name: name,
41
+ minutes_parsed: minutes
42
+ }
43
+ })
44
+ expect(request[:code]).to eq(200).or(201)
45
+ end
46
+ it 'Returns empty when no time tracks for valid incident' do
47
+ incidents_without_time_tracks = @incidents.reject{|incident| !incident['time_tracks'].to_a.empty?}
48
+ incident_id = incidents_without_time_tracks.sample.dig('id')
49
+ time_tracks = @samanage.time_tracks(incident_id: incident_id)
50
+ expect(time_tracks).to be_an(Array)
51
+ expect(time_tracks).to be_empty
52
+ end
53
+ it 'fails when invalid incident' do
54
+ expect { @samanage.time_tracks(incident_id: rand(100)) }.to raise_error(Samanage::NotFound)
55
+ end
56
+ end
57
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: samanage
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.05
4
+ version: 2.1.06
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Walls
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-10 00:00:00.000000000 Z
11
+ date: 2018-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -69,6 +69,7 @@ files:
69
69
  - lib/samanage/api/requester.rb
70
70
  - lib/samanage/api/sites.rb
71
71
  - lib/samanage/api/solutions.rb
72
+ - lib/samanage/api/time_tracks.rb
72
73
  - lib/samanage/api/users.rb
73
74
  - lib/samanage/api/utils.rb
74
75
  - lib/samanage/error.rb
@@ -92,6 +93,7 @@ files:
92
93
  - spec/api/samanage_other_asset_spec.rb
93
94
  - spec/api/samanage_site_spec.rb
94
95
  - spec/api/samanage_solution_spec.rb
96
+ - spec/api/samanage_time_tracks_spec.rb
95
97
  - spec/api/samanage_user_spec.rb
96
98
  - spec/api/samanage_util_spec.rb
97
99
  - spec/samanage_api_spec.rb