UNPKG

asksuite-core

Version:
46 lines (38 loc) 1.14 kB
const fetch = require('request'); const Util = require('./util'); function mountURL({ conversationId, companyId, type, url }, config) { const baseURL = `${config.INFOCHAT_DATA_SERVER}`; const pathWithCompany = companyId ? `/${companyId}` : ''; return `${baseURL}/redirect/${conversationId}${pathWithCompany}?url=${encodeURIComponent( url, )}&type=${type}`; } function redirect(data, config) { const URL = mountURL(data, config); return new Promise((resolve, reject) => { const requestInfo = { request: { url: URL, followRedirect: false, timeout: 20000, }, type: 'redirect', }; return Util.wrapperSaveRequestOnQueue(config)(() => { return new Promise((_resolve, _reject) => { fetch(requestInfo.request, function(err, _resp, _body) { if (err || _resp.statusCode < 300 || _resp.statusCode >= 400) { _reject({ error: err, response: _resp }); } else { _resolve(_body); } }); }); }, requestInfo) .then(resolve) .catch(reject); }); } module.exports = { redirect, };