class GLPI::SDK::Session

Attributes

app_token[RW]
token[RW]

Public Class Methods

new(url, app_token, username, password) click to toggle source
# File lib/glpi/sdk/session.rb, line 8
def initialize(url, app_token, username, password)
  @url = url
  @app_token = app_token
  @auth = { username: username, password: password }

  init
end

Public Instance Methods

active_entities() click to toggle source

Return active entities of current logged user

# File lib/glpi/sdk/session.rb, line 34
def active_entities
  request :get, '/getActiveEntities'
end
active_profile() click to toggle source

Return the current active profile

# File lib/glpi/sdk/session.rb, line 29
def active_profile
  request :get, '/getActiveProfile'
end
full_session() click to toggle source

Return the current php $_SESSION

# File lib/glpi/sdk/session.rb, line 39
def full_session
  request :get, '/getFullSession'
end
glpi_config() click to toggle source

Return the current $CFG_GLPI

# File lib/glpi/sdk/session.rb, line 44
def glpi_config
  request :get, '/getGlpiConfig'
end
init() click to toggle source

Request a session token to uses other api endpoints

# File lib/glpi/sdk/session.rb, line 17
def init
  response = request :get, '/initSession', basic_auth: @auth
  self.token = response['session_token']
end
kill() click to toggle source

Destroy a session identified by a session token.

# File lib/glpi/sdk/session.rb, line 23
def kill
  request :get, '/killSession'
  self.token = nil
end
request(method, endpoint, options = {}) click to toggle source
# File lib/glpi/sdk/session.rb, line 48
def request(method, endpoint, options = {})
  options[:base_uri] = @url

  options[:headers] = options.fetch(:headers, {})
  options[:headers]['Content-Type'] = 'application/json'
  options[:headers]['App-Token'] = @app_token
  options[:headers]['Session-Token'] = @token if @token

  response = self.class.send(method, endpoint, options)

  unless response.success?
    type, message = response.parsed_response
    Error.dispatch(type, message)
  end

  response.parsed_response
end