samanage 2.1.18 → 2.1.19

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
- SHA1:
3
- metadata.gz: ffc172624f62a1fd88be55e019f8e60e578a74c1
4
- data.tar.gz: a5ffc35b4b1b15c7e57f7ff41cab78915790b936
2
+ SHA256:
3
+ metadata.gz: a13aff3441a2b195624d0ddd7f890f218cecd85949110dc1dd493e67c04b2c90
4
+ data.tar.gz: 279f7937d734914300265dd92d4144135eea997ac9282a721a6c696aaaf5b476
5
5
  SHA512:
6
- metadata.gz: 2ba6fa8ce196713d263785ed9a45ea8e303b34c1134cc8a24b7cbdfe870d85d6e157a7f3b1d8825a0967bfe0f1256f4b7365de4a313cbf5fe53b3e1b8832c6df
7
- data.tar.gz: ac4fcd8180ddb9beb45a5c6bf360be90bb459616d645ec8d51b8c693db2291af7e7ae2bbd0189069f02dde940ab6c8d859eef6806f6718e90bc50d86a78415a5
6
+ metadata.gz: e91607ebc97987f438434c4c99391bd68ef9c6e96eb7f31b63d9abb66516399ccc872be9d074ce863ba4ad59fe9b1a90773c39252daef27585c1f43a850d9cfd
7
+ data.tar.gz: d2b2f7890fb41e851a24caeb4101945f7bed0c3d933e397d1471eb22b19cbb69cd39309bd0b8b0038a7229f2fd284239a3ad86f74f7ee1cc1e3413832dfcb697
@@ -66,7 +66,7 @@ module Samanage
66
66
  end
67
67
  rescue => e
68
68
  puts "Invalid JSON: #{payload.inspect}"
69
- raise Samanage::Error.new(error: e, response: nil)
69
+ raise Samanage::Error.new(error: e, response: nil, options: options)
70
70
  end
71
71
  end
72
72
  token = token ||= self.token
@@ -93,7 +93,7 @@ module Samanage
93
93
  when 'delete'
94
94
  api_call = self.class.delete(full_path, body: payload, headers: headers, query: options)
95
95
  else
96
- raise Samanage::Error.new(response: {response: 'Unknown HTTP method'})
96
+ raise Samanage::Error.new(response: {response: 'Unknown HTTP method'}, options: options)
97
97
  end
98
98
  rescue Errno::ECONNREFUSED, Net::OpenTimeout, Errno::ETIMEDOUT, Net::ReadTimeout, OpenSSL::SSL::SSLError, Errno::ENETDOWN, Errno::ECONNRESET, Errno::ENOENT, EOFError, Net::HTTPTooManyRequests, SocketError => e
99
99
  retries += 1
@@ -104,7 +104,7 @@ module Samanage
104
104
  else
105
105
  error = e
106
106
  response = e.class
107
- raise Samanage::InvalidRequest.new(error: error, response: response)
107
+ raise Samanage::InvalidRequest.new(error: error, response: response, options: options)
108
108
  end
109
109
  rescue => e
110
110
  retries += 1
@@ -115,7 +115,7 @@ module Samanage
115
115
  else
116
116
  error = e
117
117
  response = e.class
118
- raise Samanage::InvalidRequest.new(error: error, response: response)
118
+ raise Samanage::InvalidRequest.new(error: error, response: response, options: options)
119
119
  end
120
120
  end
121
121
 
@@ -144,19 +144,19 @@ module Samanage
144
144
  response[:data] = api_call.body
145
145
  error = response[:response]
146
146
  self.authorized = false
147
- raise Samanage::AuthorizationError.new(error: error,response: response)
147
+ raise Samanage::AuthorizationError.new(error: error,response: response, options: options)
148
148
  when 404
149
149
  response[:data] = api_call.body
150
150
  error = response[:response]
151
- raise Samanage::NotFound.new(error: error, response: response)
151
+ raise Samanage::NotFound.new(error: error, response: response, options: options)
152
152
  when 422
153
153
  response[:data] = api_call.body
154
154
  error = response[:response]
155
- raise Samanage::InvalidRequest.new(error: error, response: response)
155
+ raise Samanage::InvalidRequest.new(error: error, response: response, options: options)
156
156
  else
157
157
  response[:data] = api_call.body
158
158
  error = response[:response]
159
- raise Samanage::InvalidRequest.new(error: error, response: response)
159
+ raise Samanage::InvalidRequest.new(error: error, response: response, options: options)
160
160
  end
161
161
  end
162
162
 
@@ -1,45 +1,43 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Samanage
2
4
  class Api
3
5
  def download_attachment(attachment: {}, filename: nil, path: nil)
4
6
  attachable_type = attachment['attachable_type']
5
7
  attachable_id = attachment['attachable_id'].to_s
6
- filename = filename || attachment['filename']
8
+ filename ||= attachment['filename']
7
9
  url = attachment['url']
8
-
9
- file_path = path ? path : File.join(Dir.pwd,attachable_type,attachable_id)
10
- unless File.directory?(file_path)
11
- FileUtils.mkpath(file_path)
12
- end
13
-
14
- exact_path = File.join(file_path,filename)
15
- downloaded_attachment = open(exact_path, "wb+") do |file|
16
- file << open(url).read
10
+
11
+ file_path = path || File.join(Dir.pwd, attachable_type, attachable_id)
12
+ FileUtils.mkpath(file_path) unless File.directory?(file_path)
13
+
14
+ exact_path = File.join(file_path, filename)
15
+ downloaded_attachment = File.open(exact_path, 'wb+') do |file|
16
+ file << URI.parse(url).read
17
17
  end
18
18
  downloaded_attachment
19
19
  end
20
20
 
21
- def create_attachment(filepath: , attachable_type: , attachable_id: )
22
- if !File.exists?(filepath)
21
+ def create_attachment(filepath:, attachable_type:, attachable_id:)
22
+ unless File.exist?(filepath)
23
23
  puts "Cannot find filepath: '#{filepath.inspect}'"
24
24
  return
25
25
  end
26
- req = self.execute(
26
+ req = execute(
27
27
  path: 'attachments.json',
28
28
  http_method: 'post',
29
29
  multipart: true,
30
30
  payload: {
31
- 'file[attachable_type]' => attachable_type,
32
- 'file[attachable_id]' => attachable_id,
33
- 'file[attachment]' => File.open(filepath, 'rb')
31
+ 'file[attachable_type]' => attachable_type,
32
+ 'file[attachable_id]' => attachable_id,
33
+ 'file[attachment]' => File.open(filepath, 'rb')
34
34
  },
35
35
  headers: {
36
36
  'Content-Type' => 'multipart/form-data',
37
- 'X-Samanage-Authorization' => 'Bearer ' + self.token
37
+ 'X-Samanage-Authorization' => 'Bearer ' + token
38
38
  }
39
39
  )
40
40
  req
41
41
  end
42
-
43
-
44
42
  end
45
- end
43
+ end
@@ -1,46 +1,38 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Samanage
2
4
  class Api
3
-
4
5
  # Default get incident path
5
6
  def get_incidents(path: PATHS[:incident], options: {})
6
-
7
- path = 'incidents.json?'
8
- self.execute(path: path,options: options)
7
+ execute(path: path, options: options)
9
8
  end
10
9
 
11
-
12
- # Returns all incidents.
13
- # Options:
10
+ # Returns all incidents.
11
+ # Options:
14
12
  # - audit_archives: true
15
13
  # - layout: 'long'
16
14
  def collect_incidents(options: {})
17
- incidents = Array.new
18
- total_pages = self.get_incidents(options: options.except(:audit_archives,:audit_archive,:layout))[:total_pages]
19
- puts "Requesting Incidents with Audit Archives (this may take a while)" if options[:audit_archives] && options[:verbose]
15
+ incidents = []
16
+ total_pages = get_incidents(options: options.except(:audit_archives, :audit_archive, :layout))[:total_pages]
17
+ puts 'Requesting Incidents with Audit Archives (this may take a while)' if options[:audit_archives] && options[:verbose]
20
18
  1.upto(total_pages) do |page|
21
19
  puts "Collecting Incidents page: #{page}/#{total_pages}" if options[:verbose]
20
+ options[:page] = page
22
21
  if options[:audit_archives]
23
- options[:page] = page
24
- params = URI.encode_www_form(options.except(:audit_archives,:audit_archive,:layout)) # layout not needed as audit only on individual record
25
- paginated_path = "incidents.json?"
26
- paginated_incidents = self.execute(path: paginated_path, options: options)[:data]
22
+ params = URI.encode_www_form(options.except(:audit_archives, :audit_archive, :layout)) # layout not needed as audit only on individual record
23
+ paginated_path = 'incidents.json?'
24
+ paginated_incidents = execute(path: paginated_path, options: options)[:data]
27
25
  paginated_incidents.map do |incident|
28
- params = self.set_params(options: options.except(:audit_archives,:audit_archive,:layout))
26
+ params = set_params(options: options.except(:audit_archives, :audit_archive, :layout))
29
27
  archive_uri = "incidents/#{incident['id']}.json?layout=long&audit_archive=true"
30
- incident_with_archive = self.execute(path: archive_uri)[:data]
31
- if block_given?
32
- yield incident_with_archive
33
- end
28
+ incident_with_archive = execute(path: archive_uri)[:data]
29
+ yield incident_with_archive if block_given?
34
30
  incidents.push(incident_with_archive)
35
31
  end
36
32
  else
37
- options[:page] = page
38
-
39
- path = "incidents.json?"
40
- self.execute(path: path, options: options)[:data].each do |incident|
41
- if block_given?
42
- yield incident
43
- end
33
+ path = 'incidents.json?'
34
+ execute(path: path, options: options)[:data].each do |incident|
35
+ yield incident if block_given?
44
36
  incidents.push(incident)
45
37
  end
46
38
  end
@@ -48,32 +40,27 @@ module Samanage
48
40
  incidents
49
41
  end
50
42
 
51
-
52
43
  # Create an incident given json
53
44
  def create_incident(payload: nil, options: {})
54
- self.execute(path: PATHS[:incident], http_method: 'post', payload: payload, options: options)
45
+ execute(path: PATHS[:incident], http_method: 'post', payload: payload, options: options)
55
46
  end
56
47
 
57
48
  # Find incident by ID
58
- def find_incident(id: , options: {})
59
-
60
-
49
+ def find_incident(id:, options: {})
61
50
  path = "incidents/#{id}.json?"
62
- self.execute(path: path, options: options)
51
+ execute(path: path, options: options)
63
52
  end
64
53
 
65
54
  # Update an incident given id and json
66
- def update_incident(payload: , id: , options: {})
67
-
55
+ def update_incident(payload:, id:, options: {})
68
56
  path = "incidents/#{id}.json?"
69
- self.execute(path: path, http_method: 'put', payload: payload, options: options)
57
+ execute(path: path, http_method: 'put', payload: payload, options: options)
70
58
  end
71
59
 
72
- def delete_incident(id: , options: {})
73
- self.execute(path: "incidents/#{id}.json", http_method: 'delete', options: options)
60
+ def delete_incident(id:, options: {})
61
+ execute(path: "incidents/#{id}.json", http_method: 'delete', options: options)
74
62
  end
75
63
 
76
-
77
- alias_method :incidents, :collect_incidents
64
+ alias incidents collect_incidents
78
65
  end
79
66
  end
@@ -11,7 +11,7 @@ module Samanage
11
11
  self.status_code = nil
12
12
  self.response = response
13
13
  end
14
- puts "[Error] #{self.status_code}: #{self.response}" if options[:verbose]
14
+ puts "[Error] #{self.status_code}: #{self.response}"
15
15
  return
16
16
  end
17
17
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Samanage
2
- VERSION = '2.1.18'
4
+ VERSION = '2.1.19'
3
5
  end
@@ -1,15 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'samanage'
2
4
  require 'faker'
3
5
  describe Samanage::Api do
4
6
  context 'Incidents' do
5
7
  describe 'API Functions' do
6
- before(:all) do
7
- TOKEN ||= ENV['SAMANAGE_TEST_API_TOKEN']
8
- @samanage = Samanage::Api.new(token: TOKEN)
9
- @incidents = @samanage.incidents
10
- @users = @samanage.users
11
- @incidents_with_archives = @samanage.incidents(options: {audit_archives: true, layout: 'long', verbose: true})
12
- end
8
+ before(:all) do
9
+ TOKEN ||= ENV['SAMANAGE_TEST_API_TOKEN']
10
+ @samanage = Samanage::Api.new(token: TOKEN)
11
+ @incidents = @samanage.incidents
12
+ @users = @samanage.users
13
+ @incidents_with_archives = @samanage.incidents(options: { audit_archives: true, layout: 'long', verbose: true })
14
+ end
13
15
  it 'get_incidents: it returns API call of incidents' do
14
16
  api_call = @samanage.get_incidents
15
17
  expect(api_call).to be_a(Hash)
@@ -25,12 +27,12 @@ describe Samanage::Api do
25
27
  end
26
28
  it 'create_incident(payload: json): creates a incident' do
27
29
  users_email = @samanage.collect_users.sample['email']
28
- incident_name = [Faker::StarWars.specie,Faker::StarWars.planet,Faker::StarWars.droid].shuffle.join(' ')
30
+ incident_name = [Faker::StarWars.specie, Faker::StarWars.planet, Faker::StarWars.droid].shuffle.join(' ')
29
31
  json = {
30
- :incident => {
31
- :requester => {:email => users_email},
32
- :name => incident_name,
33
- :description => Faker::StarWars.quote
32
+ incident: {
33
+ requester: { email: users_email },
34
+ name: incident_name,
35
+ description: Faker::StarWars.quote
34
36
  }
35
37
  }
36
38
  incident_create = @samanage.create_incident(payload: json)
@@ -42,18 +44,18 @@ describe Samanage::Api do
42
44
  it 'create_incident: fails if no name/title' do
43
45
  users_email = @users.sample['email']
44
46
  json = {
45
- :incident => {
46
- :requester => {:email => users_email},
47
- :description => Faker::StarWars.quote
47
+ incident: {
48
+ requester: { email: users_email },
49
+ description: Faker::StarWars.quote
48
50
  }
49
51
  }
50
- expect{@samanage.create_incident(payload: json)}.to raise_error(Samanage::InvalidRequest)
52
+ expect { @samanage.create_incident(payload: json) }.to raise_error(Samanage::InvalidRequest)
51
53
  end
52
54
  it 'find_incident: returns a incident card by known id' do
53
55
  sample_id = @incidents.sample['id']
54
56
  incident = @samanage.find_incident(id: sample_id)
55
57
 
56
- expect(incident[:data]['id']).to eq(sample_id) # id should match found incident
58
+ expect(incident[:data]['id']).to eq(sample_id) # id should match found incident
57
59
  expect(incident[:data]).to have_key('name')
58
60
  expect(incident[:data]).to have_key('requester')
59
61
  expect(incident[:data]).to have_key('id')
@@ -61,23 +63,23 @@ describe Samanage::Api do
61
63
  it 'find_incident: returns more keys with layout=long' do
62
64
  sample_id = @incidents.sample['id']
63
65
  layout_regular_incident = @samanage.find_incident(id: sample_id)
64
- layout_long_incident = @samanage.find_incident(id: sample_id, options: {layout: 'long'})
66
+ layout_long_incident = @samanage.find_incident(id: sample_id, options: { layout: 'long' })
65
67
 
66
- expect(layout_long_incident[:data]['id']).to eq(sample_id) # id should match found incident
67
- expect(layout_long_incident[:data].keys.size).to be > (layout_regular_incident.keys.size)
68
+ expect(layout_long_incident[:data]['id']).to eq(sample_id) # id should match found incident
69
+ expect(layout_long_incident[:data].keys.size).to be > layout_regular_incident.keys.size
68
70
  expect(layout_long_incident[:data].keys - layout_regular_incident[:data].keys).to_not be([])
69
71
  end
70
72
  it 'find_incident: returns nothing for an invalid id' do
71
73
  sample_id = (0..10).entries.sample
72
- expect{@samanage.find_incident(id: sample_id)}.to raise_error(Samanage::NotFound) # id should match found incident
74
+ expect { @samanage.find_incident(id: sample_id) }.to raise_error(Samanage::NotFound) # id should match found incident
73
75
  end
74
76
  it 'update_incident: update_incident by id' do
75
- sample_incident = @incidents.reject{|i| ['Closed','Resolved'].include? i['state']}.sample
77
+ sample_incident = @incidents.reject { |i| %w[Closed Resolved].include? i['state'] }.sample
76
78
  sample_id = sample_incident['id']
77
- description = [Faker::String.random,Faker::Seinfeld.quote,Faker::Lorem.paragraph].sample
79
+ description = [Faker::String.random, Faker::Seinfeld.quote, Faker::Lorem.paragraph].sample
78
80
  incident_json = {
79
- :incident => {
80
- :description => description
81
+ incident: {
82
+ description: description
81
83
  }
82
84
  }
83
85
  incident_update = @samanage.update_incident(payload: incident_json, id: sample_id)
@@ -85,14 +87,14 @@ describe Samanage::Api do
85
87
  expect(incident_update[:code]).to eq(200).or(201)
86
88
  end
87
89
  it 'finds more data for option[:layout] = "long"' do
88
- full_layout_incident_keys = @samanage.incidents(options: {layout: 'long'}).first.keys
90
+ full_layout_incident_keys = @samanage.incidents(options: { layout: 'long' }).first.keys
89
91
  basic_incident_keys = @samanage.incidents.sample.keys
90
92
  expect(basic_incident_keys.size).to be < full_layout_incident_keys.size
91
93
  end
92
94
  it 'finds more audit archives for option[:audit_archives] = true' do
93
95
  incident_keys = @incidents_with_archives.sample.keys
94
96
  expect(incident_keys).to include
95
- ('audits')
97
+ 'audits'
96
98
  end
97
99
  it 'finds audit archives for options: {audit_archives: true, layout: "long"}' do
98
100
  full_incident_keys = @incidents_with_archives.first.keys
@@ -107,26 +109,26 @@ describe Samanage::Api do
107
109
  end
108
110
  it 'Sends an email if add_callbacks=true in params' do
109
111
  sample_id = @samanage.get_incidents[:data].sample['id']
110
- audits_req = @samanage.find_incident(id: sample_id, options: {layout: 'long'})
111
-
112
- initial_email_audits = audits_req.dig(:data,'audits').select{|audit| audit['message'].match(/was sent./) }.count
112
+ audits_req = @samanage.find_incident(id: sample_id, options: { layout: 'long' })
113
+
114
+ initial_email_audits = audits_req.dig(:data, 'audits').select { |audit| audit['message'].match(/was sent./) }.count
113
115
  incident_json = {
114
- :incident => {
116
+ incident: {
115
117
  state: 'New',
116
- due_at: Date.new(2019,rand(11) + 1, rand(27) + 1), # need to configure email notifications for due date change
117
- assignee: {email: @users.find{|u| u.dig('role','name') == 'Administrator'}.dig('email')}
118
+ due_at: Date.new(2019, rand(1..11), rand(1..27)), # need to configure email notifications for due date change
119
+ assignee: { email: @users.find { |u| u.dig('role', 'name') == 'Administrator' }.dig('email') }
118
120
  }
119
121
  }
120
-
121
- @samanage.update_incident(payload: incident_json, id: sample_id, options: {add_callbacks: true})
122
+
123
+ @samanage.update_incident(payload: incident_json, id: sample_id, options: { add_callbacks: true })
122
124
  sleep 5 # Wait for email to send
123
- final_audits_req = @samanage.find_incident(id: sample_id, options: {layout: 'long'})
124
- final_email_audits = final_audits_req.dig(:data,'audits').select{|audit| audit['message'].match(/was sent./) }.count
125
+ final_audits_req = @samanage.find_incident(id: sample_id, options: { layout: 'long' })
126
+ final_email_audits = final_audits_req.dig(:data, 'audits').select { |audit| audit['message'].match(/was sent./) }.count
125
127
  expect(initial_email_audits).to be < final_email_audits
126
128
  end
127
129
  it 'Finds incident origin in v2.0 layout=long header' do
128
130
  sample_id = @samanage.get_incidents[:data].sample['id']
129
- origin_req = @samanage.execute(path: "incidents/#{sample_id}.json", verbose: true, headers: {'Accept' => "application/vnd.samanage.v2.0+json?layout=long"})
131
+ origin_req = @samanage.execute(path: "incidents/#{sample_id}.json", verbose: true, headers: { 'Accept' => 'application/vnd.samanage.v2.0+json?layout=long' })
130
132
  expect(origin_req[:data]).to have_key('origin')
131
133
  end
132
134
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'samanage'
2
4
  require 'faker'
3
5
 
@@ -12,20 +14,20 @@ describe Samanage::Api do
12
14
  it 'ensures custom field is updated' do
13
15
  val = Faker::Seinfeld.quote
14
16
  field_name = @samanage.custom_forms['user'][0]['custom_form_fields']
15
- .select{|f| f.dig('custom_field','field_type') == 1} # field_type == 1 is text
16
- .sample.dig('custom_field','name')
17
+ .select { |f| f.dig('custom_field', 'field_type') == 1 } # field_type == 1 is text
18
+ .sample.dig('custom_field', 'name')
17
19
  payload = {
18
20
  user: {
19
- custom_fields_values:{
20
- custom_fields_value:[
21
- { name: field_name, value: val}
21
+ custom_fields_values: {
22
+ custom_fields_value: [
23
+ { name: field_name, value: val }
22
24
  ]
23
25
  }
24
26
  }
25
27
  }
26
28
  user_id = @users.sample.dig('id')
27
29
  api_call = @samanage.update_user(id: user_id, payload: payload)
28
- return_val = api_call.dig(:data,'custom_fields_values').select{|i| i['name'] == field_name}.first.to_h.dig('value')
30
+ return_val = api_call.dig(:data, 'custom_fields_values').select { |i| i['name'] == field_name }.first.to_h.dig('value')
29
31
  expect(val).to eq(return_val)
30
32
  end
31
33
  it 'get_users: it returns API call of users' do
@@ -41,12 +43,12 @@ describe Samanage::Api do
41
43
  expect(@users.size).to eq(user_count)
42
44
  end
43
45
  it 'create_user(payload: json): creates a user' do
44
- user_name = [Faker::Simpsons.character,Faker::StarWars.character,Faker::Name.name].sample
46
+ user_name = [Faker::Simpsons.character, Faker::StarWars.character, Faker::Name.name].sample
45
47
  email = Faker::Internet.safe_email(user_name)
46
48
  json = {
47
- :user => {
48
- :name => user_name,
49
- :email => email,
49
+ user: {
50
+ name: user_name,
51
+ email: email
50
52
  }
51
53
  }
52
54
  user_create = @samanage.create_user(payload: json)
@@ -58,24 +60,23 @@ describe Samanage::Api do
58
60
  it 'create_user: fails if no email' do
59
61
  user_name = Faker::Superhero.name
60
62
  json = {
61
- :user => {
62
- :name => user_name,
63
+ user: {
64
+ name: user_name
63
65
  }
64
66
  }
65
- expect{@samanage.create_user(payload: json)}.to raise_error(Samanage::InvalidRequest)
67
+ expect { @samanage.create_user(payload: json) }.to raise_error(Samanage::InvalidRequest)
66
68
  end
67
69
  it 'find_user: returns a user card by known id' do
68
70
  sample_id = @users.sample['id']
69
71
  user = @samanage.find_user(id: sample_id)
70
- expect(user[:data]['id']).to eq(sample_id) # id should match found user
72
+ expect(user[:data]['id']).to eq(sample_id) # id should match found user
71
73
  expect(user[:data]).to have_key('email')
72
74
  expect(user[:data]).to have_key('name')
73
75
  end
74
76
 
75
-
76
77
  it 'find_user: returns nothing for an invalid id' do
77
78
  sample_id = (0..10).entries.sample
78
- expect{@samanage.find_user(id: sample_id)}.to raise_error(Samanage::NotFound) # id should match found user
79
+ expect { @samanage.find_user(id: sample_id) }.to raise_error(Samanage::NotFound) # id should match found user
79
80
  end
80
81
 
81
82
  it 'finds_user_id_by_email' do
@@ -88,7 +89,7 @@ describe Samanage::Api do
88
89
  end
89
90
 
90
91
  it 'finds group_id for user' do
91
- sample_user = @users.select{|u| u['role']['name'] == 'Administrator'}.sample
92
+ sample_user = @users.select { |u| u['role']['name'] == 'Administrator' }.sample
92
93
  sample_user_email = sample_user['email']
93
94
  group_ids = sample_user['group_ids']
94
95
  found_id = nil
@@ -104,7 +105,6 @@ describe Samanage::Api do
104
105
  expect(function_id).to eq(found_id)
105
106
  end
106
107
 
107
-
108
108
  it 'returns nil for invalid find_user_group_id_by_email' do
109
109
  invalid_user_email = 'abc@123.gov'
110
110
  function_id = @samanage.find_user_group_id_by_email(email: invalid_user_email)
@@ -119,30 +119,28 @@ describe Samanage::Api do
119
119
  expect(function_id).to be(nil)
120
120
  end
121
121
 
122
-
123
-
124
122
  it 'update_user: update_user by id' do
125
123
  sample_id = @users.sample['id']
126
- new_name = [Faker::Simpsons.character,Faker::StarWars.character,Faker::Name.name].sample
124
+ new_name = [Faker::Simpsons.character, Faker::StarWars.character, Faker::Name.name].sample
127
125
  json = {
128
- :user => {
126
+ user: {
129
127
  name: new_name,
130
128
  title: Faker::Job.title
131
129
  }
132
130
  }
133
131
  user_update = @samanage.update_user(payload: json, id: sample_id)
134
- expect(user_update[:data]["name"]).to eq(new_name)
132
+ expect(user_update[:data]['name']).to eq(new_name)
135
133
  expect(user_update[:code]).to eq(200).or(201)
136
134
  end
137
135
  it 'deletes a valid user' do
138
- sample_user_id = @users.select{|u| !u['last_login']}.sample['id']
136
+ sample_user_id = @users.reject { |u| u['last_login'] }.sample['id']
139
137
  user_delete = @samanage.delete_user(id: sample_user_id)
140
138
  expect(user_delete[:code]).to eq(200).or(201)
141
139
  end
142
- it 'fails to delete invalid user' do
140
+ it 'fails to delete invalid user' do
143
141
  invalid_user_id = 0
144
- expect{@samanage.delete_user(id: invalid_user_id)}.to raise_error(Samanage::InvalidRequest)
142
+ expect { @samanage.delete_user(id: invalid_user_id) }.to raise_error(Samanage::InvalidRequest)
145
143
  end
146
144
  end
147
145
  end
148
- end
146
+ 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.18
4
+ version: 2.1.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Walls
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-30 00:00:00.000000000 Z
11
+ date: 2019-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -130,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
130
  version: '0'
131
131
  requirements: []
132
132
  rubyforge_project:
133
- rubygems_version: 2.6.14
133
+ rubygems_version: 2.7.7
134
134
  signing_key:
135
135
  specification_version: 4
136
136
  summary: Samanage Ruby Gem