75c1633e366fcc0f7b584633a0a86c4d3ce70c8f
[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 _0x1d9d=['limit','count','offset','set','json','apply','reject','save','get','Contexts','UserProfileResource','sendStatus','name','index','VoiceContext','rawAttributes','fieldName','type','key','map','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','options','find','create','body','readFileSync','join','root','server/files/templates/context.ejs','utf8','/etc/asterisk/extensions_xcally_contexts.conf','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','update','params','render','destroy','writeFileSync','Reload','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','VoiceContext,\x20%s,\x20%s','debug','VoiceContext,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','status','end','undefined'];(function(_0x51020b,_0x38c2c7){var _0x371e47=function(_0x2a538f){while(--_0x2a538f){_0x51020b['push'](_0x51020b['shift']());}};_0x371e47(++_0x38c2c7);}(_0x1d9d,0x114));var _0xd1d9=function(_0x5e0cb7,_0x25f3cd){_0x5e0cb7=_0x5e0cb7-0x0;var _0x43140e=_0x1d9d[_0x5e0cb7];return _0x43140e;};'use strict';var emlformat=require(_0xd1d9('0x0'));var rimraf=require(_0xd1d9('0x1'));var zipdir=require(_0xd1d9('0x2'));var jsonpatch=require(_0xd1d9('0x3'));var rp=require('request-promise');var moment=require(_0xd1d9('0x4'));var BPromise=require(_0xd1d9('0x5'));var Mustache=require(_0xd1d9('0x6'));var util=require(_0xd1d9('0x7'));var path=require(_0xd1d9('0x8'));var sox=require(_0xd1d9('0x9'));var csv=require(_0xd1d9('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd1d9('0xb'));var _=require(_0xd1d9('0xc'));var squel=require(_0xd1d9('0xd'));var crypto=require(_0xd1d9('0xe'));var jsforce=require(_0xd1d9('0xf'));var deskjs=require(_0xd1d9('0x10'));var toCsv=require(_0xd1d9('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xd1d9('0x11'));var authService=require(_0xd1d9('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xd1d9('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd1d9('0x14'))(_0xd1d9('0x15'));var utils=require(_0xd1d9('0x16'));var config=require(_0xd1d9('0x17'));var licenseUtil=require(_0xd1d9('0x18'));var db=require(_0xd1d9('0x19'))['db'];var jayson=require(_0xd1d9('0x1a'));var client=jayson[_0xd1d9('0x1b')][_0xd1d9('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x1ecc8e,_0x23c83b,_0xa52f94,_0x111ef5){return new BPromise(function(_0x514643,_0x2f4d38){var _0x11a073=_0x111ef5||client;return _0x11a073[_0xd1d9('0x1d')](_0x1ecc8e,_0xa52f94)[_0xd1d9('0x1e')](function(_0x17f638){logger[_0xd1d9('0x1f')](_0xd1d9('0x20'),_0x23c83b,'request\x20sent');logger[_0xd1d9('0x21')](_0xd1d9('0x22'),_0x23c83b,_0xd1d9('0x23'),JSON[_0xd1d9('0x24')](_0x17f638));if(_0x17f638[_0xd1d9('0x25')]){if(_0x17f638['error'][_0xd1d9('0x26')]===0x1f4){logger[_0xd1d9('0x25')](_0xd1d9('0x20'),_0x23c83b,_0x17f638[_0xd1d9('0x25')][_0xd1d9('0x27')]);return _0x2f4d38(_0x17f638[_0xd1d9('0x25')][_0xd1d9('0x27')]);}logger['error'](_0xd1d9('0x20'),_0x23c83b,_0x17f638[_0xd1d9('0x25')][_0xd1d9('0x27')]);return _0x514643(_0x17f638[_0xd1d9('0x25')][_0xd1d9('0x27')]);}else{logger[_0xd1d9('0x1f')](_0xd1d9('0x20'),_0x23c83b,_0xd1d9('0x23'));_0x514643(_0x17f638[_0xd1d9('0x28')][_0xd1d9('0x27')]);}})[_0xd1d9('0x29')](function(_0x15c268){logger[_0xd1d9('0x25')](_0xd1d9('0x20'),_0x23c83b,_0x15c268);_0x2f4d38(_0x15c268);});});}function respondWithStatusCode(_0x505c30,_0x3a99cf){_0x3a99cf=_0x3a99cf||0xcc;return function(_0x2767ae){if(_0x2767ae){return _0x505c30['sendStatus'](_0x3a99cf);}return _0x505c30[_0xd1d9('0x2a')](_0x3a99cf)[_0xd1d9('0x2b')]();};}function respondWithResult(_0x3b31be,_0x4cdd98){_0x4cdd98=_0x4cdd98||0xc8;return function(_0x53ae06){if(_0x53ae06){return _0x3b31be[_0xd1d9('0x2a')](_0x4cdd98)['json'](_0x53ae06);}};}function respondWithFilteredResult(_0x58c935,_0x5c59ac){return function(_0x1cab80){if(_0x1cab80){var _0x2f8cea=typeof _0x5c59ac['offset']===_0xd1d9('0x2c')&&typeof _0x5c59ac[_0xd1d9('0x2d')]===_0xd1d9('0x2c');var _0x2e042b=_0x1cab80[_0xd1d9('0x2e')];var _0x1228d9=_0x2f8cea?0x0:_0x5c59ac[_0xd1d9('0x2f')];var _0x484f7e=_0x2f8cea?_0x1cab80[_0xd1d9('0x2e')]:_0x5c59ac[_0xd1d9('0x2f')]+_0x5c59ac[_0xd1d9('0x2d')];var _0xbd01bf;if(_0x484f7e>=_0x2e042b){_0x484f7e=_0x2e042b;_0xbd01bf=0xc8;}else{_0xbd01bf=0xce;}_0x58c935['status'](_0xbd01bf);return _0x58c935[_0xd1d9('0x30')]('Content-Range',_0x1228d9+'-'+_0x484f7e+'/'+_0x2e042b)[_0xd1d9('0x31')](_0x1cab80);}return null;};}function patchUpdates(_0x3c959b){return function(_0x4a8ca5){try{jsonpatch[_0xd1d9('0x32')](_0x4a8ca5,_0x3c959b,!![]);}catch(_0x49f7be){return BPromise[_0xd1d9('0x33')](_0x49f7be);}return _0x4a8ca5[_0xd1d9('0x34')]();};}function saveUpdates(_0x1b1593,_0x300223){return function(_0x4b61c9){if(_0x4b61c9){return _0x4b61c9['update'](_0x1b1593)[_0xd1d9('0x1e')](function(_0x236ac4){return _0x236ac4;});}return null;};}function removeEntity(_0x453bce,_0x4adb61){return function(_0x5b0b23){if(_0x5b0b23){return _0x5b0b23['destroy']()[_0xd1d9('0x1e')](function(){var _0x5d2dd1=_0x5b0b23[_0xd1d9('0x35')]({'plain':!![]});var _0xd34d5d=_0xd1d9('0x36');return db[_0xd1d9('0x37')]['destroy']({'where':{'type':_0xd34d5d,'resourceId':_0x5d2dd1['id']}})[_0xd1d9('0x1e')](function(){return _0x5b0b23;});})[_0xd1d9('0x1e')](function(){_0x453bce['status'](0xcc)[_0xd1d9('0x2b')]();});}};}function handleEntityNotFound(_0x1b58c0,_0x179536){return function(_0x37152a){if(!_0x37152a){_0x1b58c0[_0xd1d9('0x38')](0x194);}return _0x37152a;};}function handleError(_0x3843aa,_0x426ab6){_0x426ab6=_0x426ab6||0x1f4;return function(_0x1d6c15){logger[_0xd1d9('0x25')](_0x1d6c15['stack']);if(_0x1d6c15[_0xd1d9('0x39')]){delete _0x1d6c15['name'];}_0x3843aa[_0xd1d9('0x2a')](_0x426ab6)['send'](_0x1d6c15);};}exports[_0xd1d9('0x3a')]=function(_0x16fd7d,_0x5642d1){var _0x39425c={},_0x1a07c4={},_0x1b2425={'count':0x0,'rows':[]};var _0x2e8470=_['map'](db[_0xd1d9('0x3b')][_0xd1d9('0x3c')],function(_0x2ccb50){return{'name':_0x2ccb50[_0xd1d9('0x3d')],'type':_0x2ccb50[_0xd1d9('0x3e')][_0xd1d9('0x3f')]};});_0x1a07c4['model']=_[_0xd1d9('0x40')](_0x2e8470,_0xd1d9('0x39'));_0x1a07c4['query']=_[_0xd1d9('0x41')](_0x16fd7d[_0xd1d9('0x42')]);_0x1a07c4[_0xd1d9('0x43')]=_[_0xd1d9('0x44')](_0x1a07c4[_0xd1d9('0x45')],_0x1a07c4[_0xd1d9('0x42')]);_0x39425c[_0xd1d9('0x46')]=_[_0xd1d9('0x44')](_0x1a07c4['model'],qs['fields'](_0x16fd7d['query'][_0xd1d9('0x47')]));_0x39425c[_0xd1d9('0x46')]=_0x39425c[_0xd1d9('0x46')][_0xd1d9('0x48')]?_0x39425c['attributes']:_0x1a07c4[_0xd1d9('0x45')];if(!_0x16fd7d['query'][_0xd1d9('0x49')](_0xd1d9('0x4a'))){_0x39425c['limit']=qs[_0xd1d9('0x2d')](_0x16fd7d[_0xd1d9('0x42')][_0xd1d9('0x2d')]);_0x39425c[_0xd1d9('0x2f')]=qs[_0xd1d9('0x2f')](_0x16fd7d[_0xd1d9('0x42')][_0xd1d9('0x2f')]);}_0x39425c[_0xd1d9('0x4b')]=qs['sort'](_0x16fd7d[_0xd1d9('0x42')][_0xd1d9('0x4c')]);_0x39425c[_0xd1d9('0x4d')]=qs['filters'](_[_0xd1d9('0x4e')](_0x16fd7d[_0xd1d9('0x42')],_0x1a07c4[_0xd1d9('0x43')]),_0x2e8470);if(_0x16fd7d[_0xd1d9('0x42')][_0xd1d9('0x4f')]){_0x39425c[_0xd1d9('0x4d')]=_[_0xd1d9('0x50')](_0x39425c['where'],{'$or':_[_0xd1d9('0x40')](_0x2e8470,function(_0x249911){if(_0x249911[_0xd1d9('0x3e')]!==_0xd1d9('0x51')){var _0x447275={};_0x447275[_0x249911[_0xd1d9('0x39')]]={'$like':'%'+_0x16fd7d[_0xd1d9('0x42')][_0xd1d9('0x4f')]+'%'};return _0x447275;}})});}_0x39425c=_[_0xd1d9('0x50')]({},_0x39425c,_0x16fd7d['options']);var _0xba3e46={'where':_0x39425c[_0xd1d9('0x4d')]};return db['VoiceContext'][_0xd1d9('0x2e')](_0xba3e46)[_0xd1d9('0x1e')](function(_0x280ad6){_0x1b2425[_0xd1d9('0x2e')]=_0x280ad6;if(_0x16fd7d[_0xd1d9('0x42')][_0xd1d9('0x52')]){_0x39425c[_0xd1d9('0x53')]=[{'all':!![]}];}return db[_0xd1d9('0x3b')][_0xd1d9('0x54')](_0x39425c);})['then'](function(_0x79e7b4){_0x1b2425[_0xd1d9('0x55')]=_0x79e7b4;return _0x1b2425;})['then'](respondWithFilteredResult(_0x5642d1,_0x39425c))[_0xd1d9('0x29')](handleError(_0x5642d1,null));};exports['show']=function(_0x1df74d,_0x1d7ce9){var _0x36ee4e={'raw':![],'where':{'id':_0x1df74d['params']['id']}},_0x11a167={};_0x11a167[_0xd1d9('0x45')]=_['keys'](db[_0xd1d9('0x3b')][_0xd1d9('0x3c')]);_0x11a167[_0xd1d9('0x42')]=_[_0xd1d9('0x41')](_0x1df74d[_0xd1d9('0x42')]);_0x11a167[_0xd1d9('0x43')]=_[_0xd1d9('0x44')](_0x11a167['model'],_0x11a167['query']);_0x36ee4e[_0xd1d9('0x46')]=_[_0xd1d9('0x44')](_0x11a167[_0xd1d9('0x45')],qs[_0xd1d9('0x47')](_0x1df74d[_0xd1d9('0x42')][_0xd1d9('0x47')]));_0x36ee4e[_0xd1d9('0x46')]=_0x36ee4e['attributes'][_0xd1d9('0x48')]?_0x36ee4e[_0xd1d9('0x46')]:_0x11a167[_0xd1d9('0x45')];if(_0x1df74d[_0xd1d9('0x42')][_0xd1d9('0x52')]){_0x36ee4e[_0xd1d9('0x53')]=[{'all':!![]}];}_0x36ee4e=_[_0xd1d9('0x50')]({},_0x36ee4e,_0x1df74d[_0xd1d9('0x56')]);return db[_0xd1d9('0x3b')][_0xd1d9('0x57')](_0x36ee4e)[_0xd1d9('0x1e')](handleEntityNotFound(_0x1d7ce9,null))[_0xd1d9('0x1e')](respondWithResult(_0x1d7ce9,null))['catch'](handleError(_0x1d7ce9,null));};exports['create']=function(_0x33fa63,_0x2049db,_0x1dd9bc){var _0x4401ed;return db[_0xd1d9('0x3b')][_0xd1d9('0x58')](_0x33fa63[_0xd1d9('0x59')],{'raw':!![]})[_0xd1d9('0x1e')](function(_0x17859f){_0x4401ed=_0x17859f;return db[_0xd1d9('0x3b')][_0xd1d9('0x54')]({'raw':!![]});})[_0xd1d9('0x1e')](function(_0x14e4ae){var _0x51852d=fs[_0xd1d9('0x5a')](path[_0xd1d9('0x5b')](config[_0xd1d9('0x5c')],_0xd1d9('0x5d')),_0xd1d9('0x5e'));var _0x4c1700=ejs['render'](_0x51852d,{'contexts':_0x14e4ae||[]});fs['writeFileSync'](_0xd1d9('0x5f'),_0x4c1700);})['then'](function(){return respondWithRpcPromise('Reload','create',{'module':_0xd1d9('0x60')});})[_0xd1d9('0x1e')](function(){var _0x51c09a=_0x33fa63[_0xd1d9('0x61')][_0xd1d9('0x35')]({'plain':!![]});if(!_0x51c09a)throw new Error(_0xd1d9('0x62'));if(_0x51c09a[_0xd1d9('0x63')]===_0xd1d9('0x61')){var _0x18d2f4=_0x4401ed[_0xd1d9('0x35')]({'plain':!![]});return db['UserProfileSection']['find']({'where':{'name':_0xd1d9('0x36'),'userProfileId':_0x51c09a['userProfileId']},'raw':!![]})[_0xd1d9('0x1e')](function(_0x53b33d){if(_0x53b33d&&_0x53b33d[_0xd1d9('0x64')]===0x0){return db['UserProfileResource'][_0xd1d9('0x58')]({'name':_0x18d2f4[_0xd1d9('0x39')],'resourceId':_0x18d2f4['id'],'type':_0x53b33d[_0xd1d9('0x39')],'sectionId':_0x53b33d['id']},{})[_0xd1d9('0x1e')](function(){return _0x4401ed;});}else{return _0x4401ed;}})[_0xd1d9('0x29')](function(_0x50692b){logger[_0xd1d9('0x25')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x50692b);throw _0x50692b;});}return _0x4401ed;})[_0xd1d9('0x1e')](respondWithResult(_0x2049db,0xc9))[_0xd1d9('0x29')](handleError(_0x2049db,null));};exports[_0xd1d9('0x65')]=function(_0x4691f4,_0x209734,_0x116701){var _0x4e8fe4;return db[_0xd1d9('0x3b')]['find']({'where':{'id':_0x4691f4[_0xd1d9('0x66')]['id']}})[_0xd1d9('0x1e')](handleEntityNotFound(_0x209734,null))[_0xd1d9('0x1e')](saveUpdates(_0x4691f4[_0xd1d9('0x59')],null))[_0xd1d9('0x1e')](function(_0xef5991){if(_0xef5991){_0x4e8fe4=_0xef5991;return db[_0xd1d9('0x3b')][_0xd1d9('0x54')]({'raw':!![]});}})[_0xd1d9('0x1e')](function(_0x4f752d){var _0x4b2f43=fs[_0xd1d9('0x5a')](path[_0xd1d9('0x5b')](config['root'],_0xd1d9('0x5d')),_0xd1d9('0x5e'));var _0x192710=ejs[_0xd1d9('0x67')](_0x4b2f43,{'contexts':_0x4f752d||[]});fs['writeFileSync'](_0xd1d9('0x5f'),_0x192710);})[_0xd1d9('0x1e')](function(){return respondWithRpcPromise('Reload','update',{'module':'chan_sip.so'});})['then'](function(){return _0x4e8fe4;})[_0xd1d9('0x1e')](respondWithResult(_0x209734,null))[_0xd1d9('0x29')](handleError(_0x209734,null));};exports[_0xd1d9('0x68')]=function(_0x1d9b59,_0x34a67a,_0x567650){var _0x1e72fe;return db['VoiceContext']['find']({'where':{'id':_0x1d9b59['params']['id']}})[_0xd1d9('0x1e')](handleEntityNotFound(_0x34a67a,null))['then'](removeEntity(_0x34a67a,null))[_0xd1d9('0x1e')](function(){return db[_0xd1d9('0x3b')][_0xd1d9('0x54')]({'raw':!![]});})[_0xd1d9('0x1e')](function(_0x251116){var _0x3b96d3=fs[_0xd1d9('0x5a')](path[_0xd1d9('0x5b')](config['root'],_0xd1d9('0x5d')),_0xd1d9('0x5e'));var _0x546cb3=ejs[_0xd1d9('0x67')](_0x3b96d3,{'contexts':_0x251116});fs[_0xd1d9('0x69')](_0xd1d9('0x5f'),_0x546cb3);return respondWithRpcPromise(_0xd1d9('0x6a'),'destroy',{'module':_0xd1d9('0x60')});})[_0xd1d9('0x29')](handleError(_0x34a67a,null));};