UNPKG

lexica-dialog-facebook-messenger

Version:
43 lines 1.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const req = require("request-promise-native"); const lodash_1 = require("lodash"); const Api_1 = require("lexica-dialog-core/dist/Api"); const Constants_1 = require("./Constants"); function sendAction(senderId, apiBaseUrl, accessToken, senderAction) { return req({ json: { recipient: { id: senderId }, sender_action: senderAction }, method: "POST", qs: { access_token: accessToken }, uri: `${apiBaseUrl}/me/messages` }); } const facebookSenderActionMiddleware = async (context, next) => { const { uniConfigs, messenger, request, logger } = context; if (messenger.name === Constants_1.MESSENGER_NAME && !lodash_1.isNil(request)) { const { senderId } = request; const apiBaseUrl = uniConfigs.get(Constants_1.CONFIG_FACEBOOK_API_BASE_URL) .value; const accessToken = uniConfigs.get(Constants_1.CONFIG_FACEBOOK_ACCESS_TOKEN) .value; const actionItems = [ sendAction(senderId, apiBaseUrl, accessToken, "mark_seen") ]; if (!uniConfigs.has(Api_1.RunTimeConfig.SUSPEND_AUTO_REPLY) || (uniConfigs.has(Api_1.RunTimeConfig.SUSPEND_AUTO_REPLY) && !uniConfigs.get(Api_1.RunTimeConfig.SUSPEND_AUTO_REPLY).value)) { actionItems.push(sendAction(senderId, apiBaseUrl, accessToken, "typing_on")); } Promise.all(actionItems).catch(error => logger.error("Call Facebook sender action with error", error)); } await next(); }; exports.default = facebookSenderActionMiddleware; //# sourceMappingURL=FacebookSenderActionMiddleware.js.map