Skip to content

evva-sfw/nest-xs3-api-client

Repository files navigation

Nest Logo

Nest XS3 Api Client

NPM Version NPM Downloads NPM Unpacked Size (with version) GitHub last commit GitHub branch check runs EVVA License

Install

$ npm i @evva/nest-xs3-api-client

Description

Client implementation for the Xesar 3 MQTT api interface.

Build & Package

# Nest Build
$ nest build

Usage

Import module

import { ClientService } from '@evva/nest-xs3-api-client';

@Module({
  imports: [ClientModule],
  providers: [AppService],
})
export class AppModule {}

Connect

Connect to the broker by passing connect options.

await this.clientService.connect({
  host: 'host',
  port: 1883,
  cert: 'cert',
  certCA: 'certCA',
  key: 'key',
  clientId: 'clientId',
  token: 'token',
} as ClientConnectOptions);

Query results

Query specific resources from the Xesar API with support for pagination and filters.

let result = await this.clientService.queryPaged({
  res: 'evva-components',
  limit: 5,
  offset: 0,
  filters: [
    {
      type: 'eq',
      field: 'status',
      value: 'Synced',
    },
  ],
});

You can auto-paginate all results by omitting the limit and offset properties.

A few of the supported resources are:

export type Resource =
  | 'identification-media'
  | 'authorization-profiles'
  | 'access-protocol'
  | 'persons'
  | 'installation-points'
  | 'evva-components'
  | 'office-modes'
  | 'time-profiles'
  | 'zones';

Execute commands

Execute specific CQRS commands on the Xesar API.

let result = await this.clientService.commandCQRS(
  'RequestAddMediumToInstallationMapi',
  {
    id: 'id',
    commandId: 'commandId',
    terminalId: 'terminalId',
    hardwareId: 'hardwareId',
  },
);

For a full list of supported commands and parameters check the /api/docs of your installation.

License

Proprietary

About

Xesar3 Third Party Interface Client for Nest.js

Resources

License

Stars

Watchers

Forks

Contributors 5