Files
xen-orchestra/packages/xo-lib/USAGE.md
T

2.0 KiB

If the URL is not provided and the current environment is a web browser, the location of the current page will be used.

import Xo from 'xo-lib'

// Connect to XO.
const xo = new Xo({ url: 'https://xo.company.tld' })

// Let's start by opening the connection.
await xo.open()

// Must sign in before being able to call any methods (all calls will
// be buffered until signed in).
await xo.signIn({
  email: 'admin@admin.net',
  password: 'admin',
})

console('signed as', xo.user)

The credentials can also be passed directly to the constructor:

const xo = Xo({
  url: 'https://xo.company.tld',
  credentials: {
    email: 'admin@admin.net',
    password: 'admin',
  },
})

xo.open()

xo.on('authenticated', () => {
  console.log(xo.user)
})

If the URL is not provided and the current environment is a web browser, the location of the current page will be used.

Connection

await xo.open()

console.log('connected')

Disconnection

xo.close()

console.log('disconnected')

Method call

const token = await xo.call('token.create')

console.log('Token created', token)

Status

The connection status is available through the status property which is open, connecting or closed.

console.log('%s to xo-server', xo.status)

Current user

Information about the user account used to sign in is available through the user property.

console.log('Current user is', xo.user)

This property is null when the status is not connected.

Events

xo.on('open', () => {
  console.log('connected')
})
xo.on('closed', () => {
  console.log('disconnected')
})
xo.on('notification', function (notif) {
  console.log('notification:', notif.method, notif.params)
})
xo.on('authenticated', () => {
  console.log('authenticated as', xo.user)
})

xo.on('authenticationFailure', () => {
  console.log('failed to authenticate')
})