Class: SysAid

Inherits:
Object
  • Object
show all
Defined in:
lib/sysaid.rb

Overview

The main SysAid class

Defined Under Namespace

Classes: Ticket, User

Constant Summary collapse

@@logged_in =
false
@@server_settings =
{}

Class Method Summary collapse

Class Method Details

.clientObject

Accessor for internal SysaidApiService object. Used by SysAid::Ticket



10
11
12
# File 'lib/sysaid.rb', line 10

def self.client
  @@client
end

.logged_in?Boolean

Returns true if logged into SysAid server Note: By design, logged_in? will try to log in if it isn’t already

Example:

>> SysAid.logged_in?
=> true

Returns:

  • (Boolean)


26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/sysaid.rb', line 26

def self.logged_in?
  # Until official word comes from the company, we're going to login every time
  # to avoid a problem with undetected timeouts.
  #if @@logged_in == false
    
  #end
  
  if @@logged_in
    return true
  else
    return false
  end
end

.login(account = nil, username = nil, password = nil, wsdl_uri = nil, debug = false) ⇒ Object

self.login does not require credentials be passed every time. SysAid sometimes times out the session and we can simply call ‘login’ again with the saved credentials to get around the timeout.



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/sysaid.rb', line 43

def self.( = nil, username = nil, password = nil, wsdl_uri = nil, debug = false)
  if  and username and password and wsdl_uri
    # Save server settings in case we need to log in again later
    @@server_settings = { :account => , :username => username, :password => password, :wsdl_uri => wsdl_uri, :debug => debug }
  end
  
  @@client = Savon.client(wsdl: @@server_settings[:wsdl_uri], log: @@server_settings[:debug])
  
  # login
  unless @@server_settings[:account].nil?
    # Call login
    response = @@client.call(:login, message: { accountId: @@server_settings[:account], userName: @@server_settings[:username], password: @@server_settings[:password] })
    
    # Retrieve response
    @@session_id = response.to_hash[:login_response][:return]
    
    @@logged_in = true
  end
end

.session_idObject

Accessor for session ID returned by SysAid server. Used by SysAid::Ticket



16
17
18
# File 'lib/sysaid.rb', line 16

def self.session_id
  @@session_id
end