UNPKG

@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
/// <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 {};