asksuite-core
Version:
73 lines (61 loc) • 1.91 kB
JavaScript
const Util = require('./util');
module.exports = function(config) {
const host = config.INFOCHAT_DATA_SERVER;
const BotmetricsMiddleware = {};
function sendRequest(uri, data, type) {
const request = {
method: 'POST',
url: host + uri,
json: data,
headers: { 'Content-Type': 'application/json' },
timeout: 10000,
};
return Util.executeRequestAndSaveOnError(
{
request,
type,
},
config,
);
}
BotmetricsMiddleware.receive = function(conversationId, message, isTest = false) {
return isTest
? returnTestRequest()
: sendRequest(
'/conversationhistories/' + conversationId,
message,
'conversation-histories',
).catch(e => e);
};
BotmetricsMiddleware.send = function(conversationId, message, isTest = false) {
return isTest
? returnTestRequest()
: sendRequest(
'/conversationhistories/' + conversationId,
message,
'conversation-histories',
).catch(e => e);
};
BotmetricsMiddleware.updateData = function(conversationId, message) {
return sendRequest('/conversations/' + conversationId + '/userdata', message, 'leads').catch(
e => e,
);
};
BotmetricsMiddleware.trackIntent = function(message, isTest = false) {
return isTest
? returnTestRequest()
: sendRequest('/intentstracks', message, 'intents').catch(e => e);
};
BotmetricsMiddleware.sendEmailRequest = function(message) {
return sendRequest('/requests', message, 'requests').catch(e => e);
};
BotmetricsMiddleware.registerNewConversation = function(data, isTest = false) {
return isTest
? returnTestRequest()
: sendRequest('/conversations', data, 'conversations').catch(e => e);
};
function returnTestRequest() {
return Promise.resolve();
}
return BotmetricsMiddleware;
};