@tshio/notifications-client v0.0.1
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";
};
}
filtercolumn = 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
4 years ago