@zenvia/sdk
Version:
This SDK for [Node.js](https://nodejs.org/) was created based on the [Zenvia](https://www.zenvia.com/) [API](https://zenvia.github.io/zenvia-openapi-spec/).
64 lines (63 loc) • 1.7 kB
TypeScript
/// <reference types="node" />
import * as express from 'express';
import { ILoggerInstance, IMessageEvent, IMessageStatusEvent, Channel, MessageDirection } from '../types';
import { Logger } from '../utils/logger';
import { EventEmitter } from 'events';
import { Client } from './client';
import { Server } from 'http';
declare type MessageEventCallback = (event: IMessageEvent) => void;
declare type MessageStatusEventCallback = (event: IMessageStatusEvent) => void;
/**
* Webhook configuration options.
*/
export interface IWebhookOptions {
/**
* Port. The default port is `3000`.
*/
port?: number;
/**
* Path. The default path is `/`.
*/
path?: string;
/**
* Callback to receive a message event.
*/
messageEventHandler?: MessageEventCallback;
/**
* Callback to receive a message status event.
*/
messageStatusEventHandler?: MessageStatusEventCallback;
/**
* Client to create a subscription.
*/
client?: Client;
/**
* URL to create a subscription.
*/
url?: string;
/**
* Channel to create a subscription.
*/
channel?: Channel;
/**
* Message direction to create a subscription.
*/
direction?: MessageDirection;
/**
* Log instance.
*/
loggerInstance?: ILoggerInstance;
}
export declare class WebhookController extends EventEmitter {
options: IWebhookOptions;
protected logger: Logger;
server: Server;
app: express.Application;
constructor(options: IWebhookOptions);
init(): Promise<void>;
close(): Promise<void>;
private startServer;
private handler;
private startSubscriptions;
}
export {};