@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-clientor
$ yarn add @tshio/notifications-clientLoading 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 stringColumn name operator stringOperator name value stringornumberorboolean(depending on thecolumntype)Examples
Single parameter filter
filter: { message: { include: "test" } }Two parameter filter
filter: { message: { include: "test" }, channel: { eq: "default", }, }order
Name Type Description Default by stringoptional column name for order sorting, allowed values: "id", "channel", "message", "createdAt"idtype ascordescoptional Ascending or descending order ascExamples
order: { by: "id", type: "desc" }
License
This project is licensed under the terms of the MIT license.
About us:
The Software House
5 years ago