UNPKG

zcatalyst-integ-cliq

Version:

Node.js SDK for integrating Zoho Catalyst with Zoho Cliq

61 lines (60 loc) 2.68 kB
import CONSTANT from '../constants.js'; import ApiUtil from './api-util.js'; const { DOMAIN, API, VERSION, MESSAGE, URL_CONSTANTS, FILES } = CONSTANT.API_CONSTANTS; const API_URL = DOMAIN + API + VERSION; const POST_TO_CHANNEL_URL = API_URL + '/channelsbyname/'; const POST_TO_BOT_URL = API_URL + '/bots/'; const POST_TO_CHAT_URL = API_URL + '/chats/'; const POST_TO_USER_URL = API_URL + '/buddies/'; export default class CliqApiService { constructor(connector) { this.api = new ApiUtil(connector); } async postToChannel(arg0, arg1, arg2) { const urlParams = {}; if (arg2 !== undefined) { urlParams[URL_CONSTANTS.BOT_UNIQUE_NAME] = arg2; } if (typeof arg1 !== 'string') { const url = POST_TO_CHANNEL_URL + arg0 + FILES; return this.api.sendRequest(url, undefined, urlParams, arg1); } const url = POST_TO_CHANNEL_URL + arg0 + MESSAGE; return this.api.sendRequest(url, { text: arg1 }, urlParams); } async postToChannelAsBot(channelUniqueName, botUniqueName, payload) { return this.postToChannel(channelUniqueName, payload, botUniqueName); } async postToBot(botUniqueName, payload, deliveryInfo = false) { if (typeof payload === 'string') { const url = POST_TO_BOT_URL + botUniqueName + MESSAGE; const requestBody = { text: payload }; if (typeof deliveryInfo === 'boolean') { requestBody[URL_CONSTANTS.BROADCAST] = deliveryInfo; } else if (typeof deliveryInfo !== 'boolean' && deliveryInfo.length > 0) { requestBody[URL_CONSTANTS.BROADCAST] = false; requestBody[URL_CONSTANTS.USERIDS] = deliveryInfo.join(','); } return this.api.sendRequest(url, requestBody); } const url = POST_TO_BOT_URL + botUniqueName + FILES; return this.api.sendRequest(url, undefined, undefined, payload); } async postToChat(chatId, payload) { if (typeof payload === 'string') { const url = POST_TO_CHAT_URL + chatId + MESSAGE; return this.api.sendRequest(url, { text: payload }); } const url = POST_TO_CHAT_URL + chatId + FILES; return this.api.sendRequest(url, undefined, undefined, payload); } async postToUser(id, payload) { if (typeof payload === 'string') { const url = POST_TO_USER_URL + id + MESSAGE; return this.api.sendRequest(url, { text: payload }); } const url = POST_TO_USER_URL + id + FILES; return this.api.sendRequest(url, undefined, undefined, payload); } }