Built motion from commit f7863d46.|2.5.41
[motion2.git] / server / api / voiceContext / voiceContext.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x421c=['query','attributes','fields','length','sort','where','merge','VIRTUAL','filter','include','catch','show','options','find','create','body','readFileSync','join','root','utf8','render','writeFileSync','Reload','chan_sip.so','user','role','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','findAll','/etc/asterisk/extensions_xcally_contexts.conf','params','server/files/templates/context.ejs','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','jsforce','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','status','end','json','offset','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','Contexts','stack','name','send','map','VoiceContext','rawAttributes','fieldName','type','model','keys','filters','intersection'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x421c,0x151));var _0xc421=function(_0x13aebc,_0x29d15d){_0x13aebc=_0x13aebc-0x0;var _0x4de18d=_0x421c[_0x13aebc];return _0x4de18d;};'use strict';var emlformat=require(_0xc421('0x0'));var rimraf=require(_0xc421('0x1'));var zipdir=require(_0xc421('0x2'));var jsonpatch=require(_0xc421('0x3'));var rp=require(_0xc421('0x4'));var moment=require(_0xc421('0x5'));var BPromise=require(_0xc421('0x6'));var Mustache=require('mustache');var util=require(_0xc421('0x7'));var path=require(_0xc421('0x8'));var sox=require(_0xc421('0x9'));var csv=require(_0xc421('0xa'));var ejs=require(_0xc421('0xb'));var fs=require('fs');var fs_extra=require(_0xc421('0xc'));var _=require('lodash');var squel=require(_0xc421('0xd'));var crypto=require('crypto');var jsforce=require(_0xc421('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xc421('0xa'));var querystring=require(_0xc421('0xf'));var Papa=require(_0xc421('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xc421('0x11'));var as=require(_0xc421('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc421('0x13'))('api');var utils=require(_0xc421('0x14'));var config=require(_0xc421('0x15'));var licenseUtil=require(_0xc421('0x16'));var db=require(_0xc421('0x17'))['db'];var jayson=require(_0xc421('0x18'));var client=jayson[_0xc421('0x19')][_0xc421('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x8d3a4b,_0x53d60b,_0x1ed90b,_0x1cb675){return new BPromise(function(_0x4451d6,_0x2a3781){var _0x30ca1d=_0x1cb675||client;return _0x30ca1d[_0xc421('0x1b')](_0x8d3a4b,_0x1ed90b)['then'](function(_0x13c4b4){logger[_0xc421('0x1c')](_0xc421('0x1d'),_0x53d60b,_0xc421('0x1e'));logger[_0xc421('0x1f')](_0xc421('0x20'),_0x53d60b,_0xc421('0x1e'),JSON[_0xc421('0x21')](_0x13c4b4));if(_0x13c4b4[_0xc421('0x22')]){if(_0x13c4b4[_0xc421('0x22')][_0xc421('0x23')]===0x1f4){logger[_0xc421('0x22')](_0xc421('0x1d'),_0x53d60b,_0x13c4b4[_0xc421('0x22')][_0xc421('0x24')]);return _0x2a3781(_0x13c4b4['error']['message']);}logger[_0xc421('0x22')](_0xc421('0x1d'),_0x53d60b,_0x13c4b4[_0xc421('0x22')][_0xc421('0x24')]);return _0x4451d6(_0x13c4b4[_0xc421('0x22')][_0xc421('0x24')]);}else{logger[_0xc421('0x1c')](_0xc421('0x1d'),_0x53d60b,'request\x20sent');_0x4451d6(_0x13c4b4[_0xc421('0x25')][_0xc421('0x24')]);}})['catch'](function(_0x56f61d){logger[_0xc421('0x22')](_0xc421('0x1d'),_0x53d60b,_0x56f61d);_0x2a3781(_0x56f61d);});});}function respondWithStatusCode(_0x2f50ba,_0x41b146){_0x41b146=_0x41b146||0xcc;return function(_0x5d375b){if(_0x5d375b){return _0x2f50ba[_0xc421('0x26')](_0x41b146);}return _0x2f50ba[_0xc421('0x27')](_0x41b146)[_0xc421('0x28')]();};}function respondWithResult(_0x2f681f,_0x24be0d){_0x24be0d=_0x24be0d||0xc8;return function(_0x1053cd){if(_0x1053cd){return _0x2f681f[_0xc421('0x27')](_0x24be0d)[_0xc421('0x29')](_0x1053cd);}};}function respondWithFilteredResult(_0x588c9a,_0x21bcda){return function(_0x9066e1){if(_0x9066e1){var _0x532e9b=typeof _0x21bcda[_0xc421('0x2a')]==='undefined'&&typeof _0x21bcda[_0xc421('0x2b')]==='undefined';var _0x22df22=_0x9066e1['count'];var _0x38e0a7=_0x532e9b?0x0:_0x21bcda[_0xc421('0x2a')];var _0x4def9e=_0x532e9b?_0x9066e1[_0xc421('0x2c')]:_0x21bcda[_0xc421('0x2a')]+_0x21bcda['limit'];var _0x357f32;if(_0x4def9e>=_0x22df22){_0x4def9e=_0x22df22;_0x357f32=0xc8;}else{_0x357f32=0xce;}_0x588c9a[_0xc421('0x27')](_0x357f32);return _0x588c9a[_0xc421('0x2d')](_0xc421('0x2e'),_0x38e0a7+'-'+_0x4def9e+'/'+_0x22df22)[_0xc421('0x29')](_0x9066e1);}return null;};}function patchUpdates(_0x4c9403){return function(_0x590fa0){try{jsonpatch[_0xc421('0x2f')](_0x590fa0,_0x4c9403,!![]);}catch(_0x41dc8f){return BPromise[_0xc421('0x30')](_0x41dc8f);}return _0x590fa0[_0xc421('0x31')]();};}function saveUpdates(_0x4b2e38,_0x109b23){return function(_0x5b2887){if(_0x5b2887){return _0x5b2887[_0xc421('0x32')](_0x4b2e38)[_0xc421('0x33')](function(_0x4a96b3){return _0x4a96b3;});}return null;};}function removeEntity(_0x35cf21,_0x3277af){return function(_0x188b7a){if(_0x188b7a){return _0x188b7a[_0xc421('0x34')]()[_0xc421('0x33')](function(){var _0x4058c5=_0x188b7a[_0xc421('0x35')]({'plain':!![]});var _0x2b720c=_0xc421('0x36');return db['UserProfileResource'][_0xc421('0x34')]({'where':{'type':_0x2b720c,'resourceId':_0x4058c5['id']}})[_0xc421('0x33')](function(){return _0x188b7a;});})[_0xc421('0x33')](function(){_0x35cf21[_0xc421('0x27')](0xcc)[_0xc421('0x28')]();});}};}function handleEntityNotFound(_0x69aa73,_0x16900e){return function(_0xebf551){if(!_0xebf551){_0x69aa73[_0xc421('0x26')](0x194);}return _0xebf551;};}function handleError(_0x28f83d,_0x4ecad9){_0x4ecad9=_0x4ecad9||0x1f4;return function(_0x559fd3){logger['error'](_0x559fd3[_0xc421('0x37')]);if(_0x559fd3[_0xc421('0x38')]){delete _0x559fd3[_0xc421('0x38')];}_0x28f83d['status'](_0x4ecad9)[_0xc421('0x39')](_0x559fd3);};}exports['index']=function(_0x4e17a6,_0x3de042){var _0x1f4a60={},_0x819fc2={},_0x3e1039={'count':0x0,'rows':[]};var _0x399a3b=_[_0xc421('0x3a')](db[_0xc421('0x3b')][_0xc421('0x3c')],function(_0x5d2772){return{'name':_0x5d2772[_0xc421('0x3d')],'type':_0x5d2772[_0xc421('0x3e')]['key']};});_0x819fc2[_0xc421('0x3f')]=_['map'](_0x399a3b,_0xc421('0x38'));_0x819fc2['query']=_[_0xc421('0x40')](_0x4e17a6['query']);_0x819fc2[_0xc421('0x41')]=_[_0xc421('0x42')](_0x819fc2[_0xc421('0x3f')],_0x819fc2[_0xc421('0x43')]);_0x1f4a60[_0xc421('0x44')]=_['intersection'](_0x819fc2[_0xc421('0x3f')],qs['fields'](_0x4e17a6[_0xc421('0x43')][_0xc421('0x45')]));_0x1f4a60[_0xc421('0x44')]=_0x1f4a60['attributes'][_0xc421('0x46')]?_0x1f4a60[_0xc421('0x44')]:_0x819fc2['model'];if(!_0x4e17a6[_0xc421('0x43')]['hasOwnProperty']('nolimit')){_0x1f4a60[_0xc421('0x2b')]=qs['limit'](_0x4e17a6['query'][_0xc421('0x2b')]);_0x1f4a60['offset']=qs['offset'](_0x4e17a6[_0xc421('0x43')][_0xc421('0x2a')]);}_0x1f4a60['order']=qs[_0xc421('0x47')](_0x4e17a6[_0xc421('0x43')][_0xc421('0x47')]);_0x1f4a60[_0xc421('0x48')]=qs['filters'](_['pick'](_0x4e17a6['query'],_0x819fc2['filters']),_0x399a3b);if(_0x4e17a6['query']['filter']){_0x1f4a60[_0xc421('0x48')]=_[_0xc421('0x49')](_0x1f4a60[_0xc421('0x48')],{'$or':_[_0xc421('0x3a')](_0x399a3b,function(_0x4778b9){if(_0x4778b9[_0xc421('0x3e')]!==_0xc421('0x4a')){var _0x192e71={};_0x192e71[_0x4778b9[_0xc421('0x38')]]={'$like':'%'+_0x4e17a6[_0xc421('0x43')][_0xc421('0x4b')]+'%'};return _0x192e71;}})});}_0x1f4a60=_['merge']({},_0x1f4a60,_0x4e17a6['options']);var _0x2bb0c9={'where':_0x1f4a60['where']};return db[_0xc421('0x3b')][_0xc421('0x2c')](_0x2bb0c9)[_0xc421('0x33')](function(_0x55d7af){_0x3e1039[_0xc421('0x2c')]=_0x55d7af;if(_0x4e17a6['query']['includeAll']){_0x1f4a60[_0xc421('0x4c')]=[{'all':!![]}];}return db[_0xc421('0x3b')]['findAll'](_0x1f4a60);})[_0xc421('0x33')](function(_0x5babe1){_0x3e1039['rows']=_0x5babe1;return _0x3e1039;})[_0xc421('0x33')](respondWithFilteredResult(_0x3de042,_0x1f4a60))[_0xc421('0x4d')](handleError(_0x3de042,null));};exports[_0xc421('0x4e')]=function(_0x126e55,_0x36f72f){var _0x2969de={'raw':![],'where':{'id':_0x126e55['params']['id']}},_0x4bf938={};_0x4bf938[_0xc421('0x3f')]=_[_0xc421('0x40')](db['VoiceContext'][_0xc421('0x3c')]);_0x4bf938[_0xc421('0x43')]=_[_0xc421('0x40')](_0x126e55[_0xc421('0x43')]);_0x4bf938['filters']=_[_0xc421('0x42')](_0x4bf938['model'],_0x4bf938['query']);_0x2969de[_0xc421('0x44')]=_[_0xc421('0x42')](_0x4bf938[_0xc421('0x3f')],qs[_0xc421('0x45')](_0x126e55[_0xc421('0x43')][_0xc421('0x45')]));_0x2969de[_0xc421('0x44')]=_0x2969de[_0xc421('0x44')][_0xc421('0x46')]?_0x2969de[_0xc421('0x44')]:_0x4bf938['model'];if(_0x126e55['query']['includeAll']){_0x2969de[_0xc421('0x4c')]=[{'all':!![]}];}_0x2969de=_[_0xc421('0x49')]({},_0x2969de,_0x126e55[_0xc421('0x4f')]);return db[_0xc421('0x3b')][_0xc421('0x50')](_0x2969de)['then'](handleEntityNotFound(_0x36f72f,null))[_0xc421('0x33')](respondWithResult(_0x36f72f,null))[_0xc421('0x4d')](handleError(_0x36f72f,null));};exports[_0xc421('0x51')]=function(_0x2b9d5c,_0xab68db,_0x4efee8){var _0x8322e2;return db['VoiceContext'][_0xc421('0x51')](_0x2b9d5c[_0xc421('0x52')],{'raw':!![]})[_0xc421('0x33')](function(_0x3a240f){_0x8322e2=_0x3a240f;return db[_0xc421('0x3b')]['findAll']({'raw':!![]});})['then'](function(_0x4acb22){var _0x1c0f86=fs[_0xc421('0x53')](path[_0xc421('0x54')](config[_0xc421('0x55')],'server/files/templates/context.ejs'),_0xc421('0x56'));var _0x30cee5=ejs[_0xc421('0x57')](_0x1c0f86,{'contexts':_0x4acb22||[]});fs[_0xc421('0x58')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x30cee5);})[_0xc421('0x33')](function(){return respondWithRpcPromise(_0xc421('0x59'),_0xc421('0x51'),{'module':_0xc421('0x5a')});})['then'](function(){var _0x492a15=_0x2b9d5c[_0xc421('0x5b')]['get']({'plain':!![]});if(!_0x492a15)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x492a15[_0xc421('0x5c')]===_0xc421('0x5b')){var _0x15120a=_0x8322e2[_0xc421('0x35')]({'plain':!![]});return db['UserProfileSection'][_0xc421('0x50')]({'where':{'name':_0xc421('0x36'),'userProfileId':_0x492a15[_0xc421('0x5d')]},'raw':!![]})['then'](function(_0x534993){if(_0x534993&&_0x534993[_0xc421('0x5e')]===0x0){return db[_0xc421('0x5f')][_0xc421('0x51')]({'name':_0x15120a['name'],'resourceId':_0x15120a['id'],'type':_0x534993[_0xc421('0x38')],'sectionId':_0x534993['id']},{})[_0xc421('0x33')](function(){return _0x8322e2;});}else{return _0x8322e2;}})[_0xc421('0x4d')](function(_0x21d47e){logger[_0xc421('0x22')](_0xc421('0x60'),_0x21d47e);throw _0x21d47e;});}return _0x8322e2;})[_0xc421('0x33')](respondWithResult(_0xab68db,0xc9))[_0xc421('0x4d')](handleError(_0xab68db,null));};exports[_0xc421('0x32')]=function(_0x497042,_0x34f2c9,_0x1897fe){var _0x339bd0;return db[_0xc421('0x3b')][_0xc421('0x50')]({'where':{'id':_0x497042['params']['id']}})[_0xc421('0x33')](handleEntityNotFound(_0x34f2c9,null))[_0xc421('0x33')](saveUpdates(_0x497042[_0xc421('0x52')],null))['then'](function(_0x4f76f7){if(_0x4f76f7){_0x339bd0=_0x4f76f7;return db[_0xc421('0x3b')][_0xc421('0x61')]({'raw':!![]});}})['then'](function(_0x5193d4){var _0x81597a=fs['readFileSync'](path[_0xc421('0x54')](config[_0xc421('0x55')],'server/files/templates/context.ejs'),'utf8');var _0x3ff8f0=ejs[_0xc421('0x57')](_0x81597a,{'contexts':_0x5193d4||[]});fs[_0xc421('0x58')](_0xc421('0x62'),_0x3ff8f0);})[_0xc421('0x33')](function(){return respondWithRpcPromise('Reload',_0xc421('0x32'),{'module':_0xc421('0x5a')});})[_0xc421('0x33')](function(){return _0x339bd0;})[_0xc421('0x33')](respondWithResult(_0x34f2c9,null))[_0xc421('0x4d')](handleError(_0x34f2c9,null));};exports[_0xc421('0x34')]=function(_0x7f77a5,_0x5a090c,_0x559592){var _0x484773;return db[_0xc421('0x3b')][_0xc421('0x50')]({'where':{'id':_0x7f77a5[_0xc421('0x63')]['id']}})[_0xc421('0x33')](handleEntityNotFound(_0x5a090c,null))[_0xc421('0x33')](removeEntity(_0x5a090c,null))[_0xc421('0x33')](function(){return db[_0xc421('0x3b')]['findAll']({'raw':!![]});})[_0xc421('0x33')](function(_0x11a5ce){var _0x20abb3=fs[_0xc421('0x53')](path[_0xc421('0x54')](config[_0xc421('0x55')],_0xc421('0x64')),_0xc421('0x56'));var _0x371d81=ejs[_0xc421('0x57')](_0x20abb3,{'contexts':_0x11a5ce});fs[_0xc421('0x58')](_0xc421('0x62'),_0x371d81);return respondWithRpcPromise('Reload',_0xc421('0x34'),{'module':_0xc421('0x5a')});})['catch'](handleError(_0x5a090c,null));};