opensupports/tests/scripts.rb

182 lines
5.2 KiB
Ruby

class Scripts
def self.createUser(email = 'steve@jobs.com', password = 'custompassword', name = 'steve jobs')
response = request('/user/signup', {
:name => name,
:email => email,
:password => password
})
if response['status'] === 'fail'
raise response['message']
end
userRow = $database.getRow('user', email, 'email')
request('/user/verify', {
:email => email,
:token => userRow['verification_token']
})
end
def self.inviteUser(email, name='genericName')
response = request('/user/invite', {
:name => name,
:email => email,
})
end
def self.inviteStaff(email, name='validName', level=1, profilePic='', departments: '[1]')
response = request('/staff/invite', {
:name => name,
:email => email,
:level => level,
:departments => departments.to_str
})
end
def self.createStaff(email, password, name, level='1') # WARNING: NOT USED ANYWHERE
departments = request('/system/get-settings', {
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})['data']['departments']
departments = departments.collect { |x| x.id }
response = request('/staff/invite', {
:name => name,
:email => email,
:level => level,
:departments => departments.to_string
})
recoverpassword = $database.getRow('recoverpassword', email, 'email')
response = request('/user/recover-password', {
email: email,
password: password,
token: recoverpassword['token']
})
if response['status'] === 'fail'
raise response['message']
end
end
def self.deleteStaff(staffId)
response = request('/staff/delete', {
staffId: staffId,
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
if response['status'] === 'fail'
raise response['message']
end
end
def self.login(email = 'steve@jobs.com', password = 'custompassword', staff = false)
response = request('/user/login', {
:email => email,
:password => password,
:staff => staff
})
if response['data'].any?
$csrf_userid = response['data']['userId']
$csrf_token = response['data']['token']
end
response['data']
end
def self.logout()
request('/user/logout', {
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
end
def self.createTicket(title = 'Winter is coming',content = 'The north remembers', department = 1)
result = request('/ticket/create', {
title: title,
content: content,
departmentId: department,
language: 'en',
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
end
def self.closeTicket(ticketNumber)
result = request('/ticket/close', {
ticketNumber:ticketNumber,
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
result['data']
end
def self.createAPIKey(name, canCreateUsers=0, canCreateTickets=0, canCheckTickets=0, shouldReturnTicketNumber=0)
request('/system/add-api-key', {
csrf_userid: $csrf_userid,
csrf_token: $csrf_token,
name: name,
canCreateUsers: canCreateUsers,
canCreateTickets: canCreateTickets,
canCheckTickets: canCheckTickets,
shouldReturnTicketNumber: shouldReturnTicketNumber
})
end
def self.createTextCustomField(name,description)
request('/system/add-custom-field', {
csrf_userid: $csrf_userid,
csrf_token: $csrf_token,
name: name,
type: 'text',
description: description
})
end
def self.createTag(name, color)
request('/ticket/create-tag', {
csrf_userid: $csrf_userid,
csrf_token: $csrf_token,
name: name,
color: color
})
end
def self.assignTicket(ticketnumber)
request('/staff/assign-ticket', {
ticketNumber: ticketnumber,
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
end
def self.commentTicket(ticketnumber,content)
request('/ticket/comment', {
content: content,
ticketNumber: ticketnumber,
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
end
def self.createDepartment(nameDepartment, isPrivate = 0)
request('/system/add-department', {
csrf_userid: $csrf_userid,
csrf_token: $csrf_token,
name: nameDepartment,
private: isPrivate
})
end
def self.updateLockedDepartmentSetting(value = 0)
request('/system/edit-settings', {
csrf_userid: $csrf_userid,
csrf_token: $csrf_token,
"default-is-locked" => value
})
end
end