Module: Kaseya::BMS

Extended by:
Configuration
Defined in:
lib/kaseya/bms.rb,
lib/kaseya/bms/api.rb,
lib/kaseya/bms/client.rb,
lib/kaseya/bms/version.rb,
lib/kaseya/bms/connection.rb,
lib/kaseya/bms/exceptions.rb,
lib/kaseya/bms/http_errors.rb,
lib/kaseya/bms/client/admin.rb,
lib/kaseya/bms/client/lists.rb,
lib/kaseya/bms/configuration.rb,
lib/kaseya/bms/client/tickets.rb,
lib/kaseya/bms/client/accounts.rb,
lib/kaseya/bms/client/contacts.rb,
lib/kaseya/bms/client/locations.rb,
lib/kaseya/bms/client/activities.rb

Defined Under Namespace

Modules: Configuration Classes: Api, BMSError, Client, Connection, HttpErrors

Constant Summary collapse

TICKET_SOURCES =
{
  client_portal:      0,
  phone:              1,
  in_person:          2,
  on_site:            3,
  email:              4,
  monitoring_system:  5,
  voice_mail:         6,
  verbal:             7,
  other:              8,
  recurring:          9,
}
LIST_TYPES =
{
  ticket_type: 1,
}
VERSION =
'0.1.0'.freeze

Constants included from Configuration

Configuration::DEFAULT_DEBUG, Configuration::DEFAULT_USER_AGENT, Configuration::VALID_OPTIONS_KEYS

Class Method Summary collapse

Methods included from Configuration

configure, extended, options, reset

Class Method Details

.authenticate(host, username, password, tenant) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/kaseya/bms.rb', line 30

def self.authenticate(host, username, password, tenant)
  params = {
    grant_type: "password",
    username: username,
    password: password,
    tenant: tenant
  }

  conn = Faraday.new(url: "https://#{host}/api", ssl: { verify: !debug }) do |faraday|
    faraday.use HttpErrors

    faraday.request :url_encoded
    faraday.response :json
    faraday.adapter Faraday.default_adapter
  end

  response = conn.post('token', params)
  connection = Connection.new(host, response.body["access_token"], response.body["expires_in"])
  Client.new(connection)
rescue Faraday::ConnectionFailed => e
  raise Kaseya::ConnectionFailed, e.message
end