@tshio/notifications-client
TypeScript icon, indicating that this package has built-in type declarations

0.0.1 • Public • Published

RAD Notifications Client

npm version

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

Back to API

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 optional

Query filter

queryFilter.page number optional

Page number

1
queryFilter.limit number optional

Response limit

25
queryFilter.filter number optional

Filter object

queryFilter.query number optional

Query 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 or number or boolean (depending on the column 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 or desc optional

    Ascending or descending order

    asc

    Examples

    order: {
      by: "id",
      type: "desc"
    }

Back to API

License

license

This project is licensed under the terms of the MIT license.

About us:

The Software House

tsh.png

Readme

Keywords

none

Package Sidebar

Install

npm i @tshio/notifications-client

Weekly Downloads

0

Version

0.0.1

License

MIT

Unpacked Size

35.5 kB

Total Files

19

Last publish

Collaborators

  • vviktor
  • aherok
  • sethii
  • barograf