samanage 1.6.5 → 1.6.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/samanage.rb +1 -0
- data/lib/samanage/api/comments.rb +30 -0
- data/lib/samanage/api/users.rb +0 -1
- data/samanage.gemspec +1 -1
- data/spec/api/comments_spec.rb +41 -0
- data/spec/api/samanage_incident_spec.rb +2 -2
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c8d2a585e1b0f72637d782fc0b6e5efad1e826c3
|
4
|
+
data.tar.gz: 01e457f64d73dfc4e9f83575fbc4e7dc5551b95a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2e30a81d1045d99a7ee8b293f98420e2cdead43146637f8725f0aee3eacd02a3f99f2cad6a7c4ee19b10c629e26b7601ad201fe847e80ecb0f1fdc3fa54ef9c
|
7
|
+
data.tar.gz: 125c5ef4fa1575286418e34b4220253bbf41bb9d5b02808af6200df9b4a2146f0951b1c9f56825e09cdeba67b3e8d6aae6f59c731977a69edc7110d60f91579c
|
data/lib/samanage.rb
CHANGED
@@ -7,6 +7,7 @@ require 'samanage/api/requester'
|
|
7
7
|
require 'samanage/api/hardwares'
|
8
8
|
require 'samanage/api/other_assets'
|
9
9
|
require 'samanage/api/incidents'
|
10
|
+
require 'samanage/api/comments'
|
10
11
|
require 'samanage/api/custom_fields'
|
11
12
|
require 'samanage/api/custom_forms'
|
12
13
|
require 'samanage/error'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Samanage
|
2
|
+
class Api
|
3
|
+
|
4
|
+
def get_comments(incident_id: )
|
5
|
+
path = "incidents/#{incident_id}/comments.json"
|
6
|
+
api_call = self.execute(path: path)
|
7
|
+
api_call
|
8
|
+
end
|
9
|
+
|
10
|
+
def create_comment(incident_id: nil, comment: nil, options: {})
|
11
|
+
path = "incidents/#{incident_id}/comments.json"
|
12
|
+
api_call = self.execute(http_method: 'post', path: path, payload: comment)
|
13
|
+
api_call
|
14
|
+
end
|
15
|
+
|
16
|
+
def collect_comments(incident_id: nil)
|
17
|
+
|
18
|
+
page = 1
|
19
|
+
max_pages = 5
|
20
|
+
comments = Array.new
|
21
|
+
while page <= max_pages
|
22
|
+
path = "incidents/#{incident_id}/comments.json?page=#{page}"
|
23
|
+
api_call = self.execute(path: path)
|
24
|
+
comments += api_call[:data]
|
25
|
+
page += 1
|
26
|
+
end
|
27
|
+
comments
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/samanage/api/users.rb
CHANGED
data/samanage.gemspec
CHANGED
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'samanage'
|
2
|
+
describe Samanage::Api do
|
3
|
+
context 'Comments' do
|
4
|
+
before(:each) do
|
5
|
+
TOKEN ||= ENV['SAMANAGE_TEST_API_TOKEN']
|
6
|
+
@controller = Samanage::Api.new(token: TOKEN)
|
7
|
+
end
|
8
|
+
describe 'API Functions' do
|
9
|
+
it 'gets comments' do
|
10
|
+
incident_id = @controller.get_incidents()[:data].sample.dig('id')
|
11
|
+
comments = @controller.get_comments(incident_id: incident_id)
|
12
|
+
expect(comments).to be_a(Hash)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'creates a comment' do
|
16
|
+
incident_id = @controller.get_incidents()[:data].sample.dig('id')
|
17
|
+
rand_text = ('a'..'z').to_a.shuffle[0,8].join
|
18
|
+
comment = {
|
19
|
+
comment: {
|
20
|
+
body: rand_text,
|
21
|
+
}
|
22
|
+
}.to_json
|
23
|
+
api_call = @controller.create_comment(incident_id: incident_id, comment: comment)
|
24
|
+
|
25
|
+
expect(api_call.dig(:data,'body')).to eq(rand_text)
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'collects all comments' do
|
29
|
+
incident_id = @controller.get_incidents()[:data].sample.dig('id')
|
30
|
+
incident_id = 19394209
|
31
|
+
comments_api = @controller.get_comments(incident_id: incident_id)
|
32
|
+
comments_found = @controller.collect_comments(incident_id: incident_id)
|
33
|
+
# puts "comments api size: #{comments_api.inspect}"
|
34
|
+
# puts "Found Comments: #{comments_found.size}"
|
35
|
+
|
36
|
+
# Total count bug
|
37
|
+
# expect(comments_api[:total_count]).to eq(comments_found.size)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -64,12 +64,12 @@ describe Samanage::Api do
|
|
64
64
|
incidents = @controller.collect_incidents
|
65
65
|
sample_id = incidents.sample['id']
|
66
66
|
new_name = (0...50).map { ('a'..'z').to_a[rand(26)] }.join
|
67
|
-
|
67
|
+
incident_json = {
|
68
68
|
:incident => {
|
69
69
|
:name => new_name
|
70
70
|
}
|
71
71
|
}
|
72
|
-
incident_update = @controller.update_incident(payload:
|
72
|
+
incident_update = @controller.update_incident(payload: incident_json.to_json, id: sample_id)
|
73
73
|
expect(incident_update[:data]["name"]).to eq(new_name)
|
74
74
|
expect(incident_update[:code]).to eq(200).or(201)
|
75
75
|
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: 1.6.
|
4
|
+
version: 1.6.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Walls
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -52,6 +52,7 @@ files:
|
|
52
52
|
- README.md
|
53
53
|
- lib/samanage.rb
|
54
54
|
- lib/samanage/api.rb
|
55
|
+
- lib/samanage/api/comments.rb
|
55
56
|
- lib/samanage/api/custom_fields.rb
|
56
57
|
- lib/samanage/api/custom_forms.rb
|
57
58
|
- lib/samanage/api/hardwares.rb
|
@@ -63,6 +64,7 @@ files:
|
|
63
64
|
- lib/samanage/url_builder.rb
|
64
65
|
- lib/test.rb
|
65
66
|
- samanage.gemspec
|
67
|
+
- spec/api/comments_spec.rb
|
66
68
|
- spec/api/samanage_custom_field_spec.rb
|
67
69
|
- spec/api/samanage_custom_form_spec.rb
|
68
70
|
- spec/api/samanage_hardware_spec.rb
|