zcatalyst-integ-cliq
Version:
Node.js SDK for integrating Zoho Catalyst with Zoho Cliq
78 lines (77 loc) • 3.34 kB
TypeScript
/// <reference types="node" />
import { Access, Attachment, Chat, Environment, Location, Mention, MessageDetails, User, HTTP_METHOD, CHANNEL_OPERATION, SuggestionObject, BOT_ALERT_OPERATION } from '../common.js';
import HandlerResponse from '../response-objects/handler-response.js';
import VoidResponse from '../response-objects/void-response.js';
import { Message } from '../response-objects/message.js';
interface BotHandlerRequest {
user: User;
name: string;
unique_name: string;
environment?: Environment;
access?: Access;
}
interface BotWelcomeHandlerRequest extends BotHandlerRequest {
newuser: boolean;
}
interface BotMessageHandlerRequest extends BotHandlerRequest {
attachments: Array<Attachment>;
links: Array<string>;
message_details: MessageDetails;
location: Location;
raw_message: string;
message: string;
mentions: Array<Mention>;
chat: Chat;
}
interface BotContextHandlerRequest extends BotHandlerRequest {
chat: Chat;
context_id: string;
answers: Record<string, SuggestionObject>;
attachments: Array<Attachment>;
context_summary: Record<string, unknown>;
}
interface BotMentionHandlerRequest extends BotHandlerRequest {
location: Location;
chat: Chat;
message: string;
raw_message: string;
message_details: MessageDetails;
mentions: Array<Mention>;
}
interface BotMenuActionHandlerRequest extends BotHandlerRequest {
action_name: string;
location: Location;
chat: Chat;
sub_action: string;
}
interface BotWebHookHandlerRequest extends BotHandlerRequest {
headers: Record<string, string>;
param: Record<string, string>;
body: Record<string, unknown>;
http_method: HTTP_METHOD;
}
interface BotParticipationHandlerRequest extends BotHandlerRequest {
operation: CHANNEL_OPERATION;
data: Record<string, unknown>;
chat: Chat;
}
interface BotCallHandlerRequest extends BotHandlerRequest {
operation: BOT_ALERT_OPERATION;
data: Record<string, unknown>;
}
export default class BotHandler {
welcomeHandler(handler: (req: BotWelcomeHandlerRequest, res: Message, ...args: Array<unknown>) => Promise<unknown>): void;
messageHandler(handler: (req: BotMessageHandlerRequest, res: HandlerResponse, ...args: Array<unknown>) => Promise<unknown>): void;
contextHandler(handler: (req: BotContextHandlerRequest, res: HandlerResponse, ...args: Array<unknown>) => Promise<unknown>): void;
mentionHandler(handler: (req: BotMentionHandlerRequest, res: HandlerResponse, ...args: Array<unknown>) => Promise<unknown>): void;
menuActionHandler(handler: (req: BotMenuActionHandlerRequest, res: HandlerResponse, ...args: Array<unknown>) => Promise<unknown>): void;
webHookHandler(handler: (req: BotWebHookHandlerRequest, res: HandlerResponse, ...args: Array<unknown>) => Promise<unknown>): void;
participationHandler(handler: (req: BotParticipationHandlerRequest, res: HandlerResponse, ...args: Array<unknown>) => Promise<unknown>): void;
callHandler(handler: (req: BotCallHandlerRequest, res: VoidResponse, ...args: Array<unknown>) => Promise<VoidResponse>): void;
newHandlerResponse(): HandlerResponse;
newVoidResponse(): VoidResponse;
util: {
getAttachedFile(attachments: Array<Attachment>): Promise<Array<Buffer | undefined>>;
};
}
export {};