samanage 2.1.18 → 2.1.19

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 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