samanage 1.9.31 → 1.9.32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/changelog.md +4 -0
- data/lib/samanage/api.rb +1 -0
- data/lib/samanage/api/incidents.rb +4 -1
- data/lib/samanage/api/utils.rb +21 -0
- data/lib/samanage/version.rb +1 -1
- data/spec/api/samanage_incident_spec.rb +9 -0
- data/spec/api/samanage_util_spec.rb +6 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5352f9f97dd2e91219b8de06c37ff87ef8000d52
|
4
|
+
data.tar.gz: 82c4b86815ce77da711c3c136d60d04a5e8f7e43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f4d0176ff08ad9905ca27f90470c18c11357a8193501041bb4ee4ce80e33daf9eb49297b900269cd8b4e0d5997b7e68fe56392b64f42adef2de5bada0e7f98d
|
7
|
+
data.tar.gz: a89980454bba19c7ea6312e48bb26d31c230c8e53fa72c7845db032237904bdac594217dbdca3d045980c07621e58a8544f87671102ee4648cb7301fa89a8b4a
|
data/changelog.md
CHANGED
data/lib/samanage/api.rb
CHANGED
@@ -40,8 +40,11 @@ module Samanage
|
|
40
40
|
end
|
41
41
|
|
42
42
|
# Find incident by ID
|
43
|
-
def find_incident(id: )
|
43
|
+
def find_incident(id: , options: {})
|
44
44
|
path = "incidents/#{id}.json"
|
45
|
+
if options[:layout] == 'long'
|
46
|
+
path += '?layout=long'
|
47
|
+
end
|
45
48
|
self.execute(path: path)
|
46
49
|
end
|
47
50
|
|
data/lib/samanage/api/utils.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
require 'fileutils'
|
1
3
|
module Samanage
|
2
4
|
class Api
|
3
5
|
def send_activation_email(email: )
|
@@ -5,5 +7,24 @@ module Samanage
|
|
5
7
|
raise Samanage::Error.new(error: 'Invalid Email', response: {}) unless user_id
|
6
8
|
self.execute(http_method: 'put', path: "users/#{user_id}.json?send_activation_email=1&add_callbacks=1")
|
7
9
|
end
|
10
|
+
|
11
|
+
# Downloads a Samanage Attachment object can overwrite default filename and path (Object/ObjectID/Original_Filename)
|
12
|
+
def download_attachment(attachment: {}, filename: nil, path: nil)
|
13
|
+
attachable_type = attachment['attachable_type']
|
14
|
+
attachable_id = attachment['attachable_id'].to_s
|
15
|
+
filename = filename || attachment['filename']
|
16
|
+
url = attachment['url']
|
17
|
+
|
18
|
+
file_path = path ? path : File.join(Dir.pwd,attachable_type,attachable_id)
|
19
|
+
unless File.directory?(file_path)
|
20
|
+
FileUtils.mkpath(file_path)
|
21
|
+
end
|
22
|
+
|
23
|
+
exact_path = File.join(file_path,filename)
|
24
|
+
downloaded_attachment = open(exact_path, "wb+") do |file|
|
25
|
+
file << open(url).read
|
26
|
+
end
|
27
|
+
downloaded_attachment
|
28
|
+
end
|
8
29
|
end
|
9
30
|
end
|
data/lib/samanage/version.rb
CHANGED
@@ -57,6 +57,15 @@ describe Samanage::Api do
|
|
57
57
|
expect(incident[:data]).to have_key('requester')
|
58
58
|
expect(incident[:data]).to have_key('id')
|
59
59
|
end
|
60
|
+
it 'find_incident: returns more keys with layout=long' do
|
61
|
+
sample_id = @incidents.sample['id']
|
62
|
+
layout_regular_incident = @samanage.find_incident(id: sample_id)
|
63
|
+
layout_long_incident = @samanage.find_incident(id: sample_id, options: {layout: 'long'})
|
64
|
+
|
65
|
+
expect(layout_long_incident[:data]['id']).to eq(sample_id) # id should match found incident
|
66
|
+
expect(layout_long_incident[:data].keys.size).to be > (layout_regular_incident.keys.size)
|
67
|
+
expect(layout_long_incident[:data].keys - layout_regular_incident[:data].keys).to_not be([])
|
68
|
+
end
|
60
69
|
it 'find_incident: returns nothing for an invalid id' do
|
61
70
|
sample_id = (0..10).entries.sample
|
62
71
|
expect{@samanage.find_incident(id: sample_id)}.to raise_error(Samanage::NotFound) # id should match found incident
|
@@ -16,6 +16,12 @@ describe Samanage::Api do
|
|
16
16
|
invalid_email = @samanage.users.sample['email'].gsub!('@','$')
|
17
17
|
expect{@samanage.send_activation_email(email: invalid_email)}.to raise_error(Samanage::Error)
|
18
18
|
end
|
19
|
+
it 'downloads an attachment' do
|
20
|
+
attachable_incident_id = 22215549 # Need filter for has attachment?
|
21
|
+
incident = @samanage.find_incident(id: attachable_incident_id, options: {layout: 'long'})
|
22
|
+
attachment = @samanage.download_attachment(attachment: incident[:data]['attachments'].first)
|
23
|
+
expect(attachment.class).to be(File)
|
24
|
+
end
|
19
25
|
end
|
20
26
|
end
|
21
27
|
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.9.
|
4
|
+
version: 1.9.32
|
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-
|
11
|
+
date: 2018-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|