@tshio/notifications-client
v0.0.1
Published
RAD Notifications Client
Downloads
1
Readme
RAD Notifications Client
Non-blocking RAD Notifications client for Node.js.
This is a 100% JavaScript library, with TypeScript definition, with the Promise API.
This module makes it simple to implement a Node.js application that uses RAD Notifications.
Table of Contents
Installing
$ npm install @tshio/notifications-client
or
$ yarn add @tshio/notifications-client
Loading and configuration module
// CommonJS
const { PdfClient } = require('@tshio/notifications-client');
// ES Module
import { PdfClient } from '@tshio/notifications-client';
const options = {
host: "localhost",
port: "50080",
}
const notificationsClient = new NotificationsClient(options);
Getting started
Send notification
const message = {
channels: ["default"],
message: "Test message",
}
const { notificationsIds } = async notificationsClient.notifications.send(message);
Get notifications
const notifications = async notificationsClient.notifications.get();
API
notificationsClient.notifications.send({ channels, message }) => Promise<{ notificationsIds }>
Send notification
Returns an object with an array of crated notifications ids.
{
notificationsIds: string[];
}
or throw HttpError
Parameters
| Name | Type | Description | Default |
|--------------|------------|---------------------------------------|-----|
| channels | string[]
| Send messages to channels. | |
| message | string
| Notification message | |
notificationsClient.notifications.get( queryFilter? ) => Promise
Get notifications list (if no query parameters it returns first 25 notifications ordered by created date)
Returns an object
{
notifications: Notification[];
total: number;
page: number;
limit: number;
}
interface Notification {
id: string;
channel: string;
message: string;
createdAt: Date;
}
or throw HttpError
Parameters
| Name | Type | Description | Default |
|--------------|------------|---------------------------------------|-----|
| queryFilter | object
| optionalQuery filter | |
| queryFilter.page | number
| optionalPage number | 1 |
| queryFilter.limit | number
| optionalResponse limit | 25 |
| queryFilter.filter | number
| optionalFilter object | |
| queryFilter.query | number
| optionalQuery object | |
Filters can be used search for a single condition or they can be wrapped in logical operands AND and OR. Filtering can be a simple conditional evaluation of a single field.
export type GetNotificationsColumns = "id" | "channel" | "message" | "createdAt";
export type GetNotificationsFilterOperators = "eq" | "neq" | "lt" | "gt" | "include" ;
export interface GetNotificationsRequest {
page?: number;
limit?: number;
filter?: {
[column in GetNotificationsColumns]?: {
[operator in GetNotificationsFilterOperators]?: string;
};
};
order?: {
by: "resource" | "attribute";
type: "asc" | "desc";
};
}
filter[column][operator] = value
| Name | Type | Description | |-----------------------|------------|----------------------------------------------------------| | column |
string
| Column name | | operator |string
| Operator name | | value |string
ornumber
orboolean
(depending on thecolumn
type) | |Examples
Single parameter filter
filter: { message: { include: "test" } }
Two parameter filter
filter: { message: { include: "test" }, channel: { eq: "default", }, }
order
| Name | Type | Description | Default | |-----------------------|------------|---------------------------------------------------------------------------------|---------| | by |
string
| optional column name for order sorting, allowed values:"id", "channel", "message", "createdAt"
|id
| | type |asc
ordesc
| optional Ascending or descending order |asc
|Examples
order: { by: "id", type: "desc" }
License
This project is licensed under the terms of the MIT license.
About us:
The Software House