Built motion from commit 85328c08.|2.5.50
[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 _0x0c82=['ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','destroy','get','Contexts','UserProfileResource','end','stack','name','send','map','VoiceContext','type','key','model','keys','query','filters','intersection','fields','attributes','length','nolimit','order','sort','pick','filter','where','VIRTUAL','merge','includeAll','findAll','rows','params','rawAttributes','find','catch','create','body','readFileSync','join','root','server/files/templates/context.ejs','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','utf8','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring'];(function(_0x500419,_0x549162){var _0x241c1a=function(_0x3bea1a){while(--_0x3bea1a){_0x500419['push'](_0x500419['shift']());}};_0x241c1a(++_0x549162);}(_0x0c82,0xbd));var _0x20c8=function(_0x136a23,_0x507cda){_0x136a23=_0x136a23-0x0;var _0x48e69b=_0x0c82[_0x136a23];return _0x48e69b;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x20c8('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x20c8('0x1'));var moment=require(_0x20c8('0x2'));var BPromise=require(_0x20c8('0x3'));var Mustache=require(_0x20c8('0x4'));var util=require(_0x20c8('0x5'));var path=require(_0x20c8('0x6'));var sox=require(_0x20c8('0x7'));var csv=require(_0x20c8('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x20c8('0x9'));var _=require(_0x20c8('0xa'));var squel=require('squel');var crypto=require(_0x20c8('0xb'));var jsforce=require(_0x20c8('0xc'));var deskjs=require(_0x20c8('0xd'));var toCsv=require(_0x20c8('0x8'));var querystring=require(_0x20c8('0xe'));var Papa=require('papaparse');var Redis=require(_0x20c8('0xf'));var authService=require(_0x20c8('0x10'));var qs=require(_0x20c8('0x11'));var as=require(_0x20c8('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x20c8('0x13'))(_0x20c8('0x14'));var utils=require(_0x20c8('0x15'));var config=require(_0x20c8('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x20c8('0x17'))['db'];var jayson=require(_0x20c8('0x18'));var client=jayson['client'][_0x20c8('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x393ad0,_0x3a0120,_0x420ff6,_0x348a76){return new BPromise(function(_0x115ad3,_0x50efe9){var _0x6a76da=_0x348a76||client;return _0x6a76da[_0x20c8('0x1a')](_0x393ad0,_0x420ff6)[_0x20c8('0x1b')](function(_0x2a2ca8){logger[_0x20c8('0x1c')](_0x20c8('0x1d'),_0x3a0120,_0x20c8('0x1e'));logger[_0x20c8('0x1f')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x3a0120,'request\x20sent',JSON['stringify'](_0x2a2ca8));if(_0x2a2ca8[_0x20c8('0x20')]){if(_0x2a2ca8['error'][_0x20c8('0x21')]===0x1f4){logger[_0x20c8('0x20')](_0x20c8('0x1d'),_0x3a0120,_0x2a2ca8['error'][_0x20c8('0x22')]);return _0x50efe9(_0x2a2ca8[_0x20c8('0x20')][_0x20c8('0x22')]);}logger[_0x20c8('0x20')]('VoiceContext,\x20%s,\x20%s',_0x3a0120,_0x2a2ca8['error'][_0x20c8('0x22')]);return _0x115ad3(_0x2a2ca8[_0x20c8('0x20')][_0x20c8('0x22')]);}else{logger[_0x20c8('0x1c')](_0x20c8('0x1d'),_0x3a0120,_0x20c8('0x1e'));_0x115ad3(_0x2a2ca8[_0x20c8('0x23')]['message']);}})['catch'](function(_0x65727a){logger['error'](_0x20c8('0x1d'),_0x3a0120,_0x65727a);_0x50efe9(_0x65727a);});});}function respondWithStatusCode(_0xe1189b,_0x52bdc4){_0x52bdc4=_0x52bdc4||0xcc;return function(_0x3046aa){if(_0x3046aa){return _0xe1189b[_0x20c8('0x24')](_0x52bdc4);}return _0xe1189b[_0x20c8('0x25')](_0x52bdc4)['end']();};}function respondWithResult(_0xdd841e,_0x3ebc78){_0x3ebc78=_0x3ebc78||0xc8;return function(_0x17c7b7){if(_0x17c7b7){return _0xdd841e['status'](_0x3ebc78)[_0x20c8('0x26')](_0x17c7b7);}};}function respondWithFilteredResult(_0x2032fe,_0x2b8e17){return function(_0x3d70f9){if(_0x3d70f9){var _0x223e9e=typeof _0x2b8e17[_0x20c8('0x27')]===_0x20c8('0x28')&&typeof _0x2b8e17['limit']===_0x20c8('0x28');var _0x27ee89=_0x3d70f9[_0x20c8('0x29')];var _0xd4d00e=_0x223e9e?0x0:_0x2b8e17[_0x20c8('0x27')];var _0x1b732c=_0x223e9e?_0x3d70f9[_0x20c8('0x29')]:_0x2b8e17[_0x20c8('0x27')]+_0x2b8e17[_0x20c8('0x2a')];var _0x3c9097;if(_0x1b732c>=_0x27ee89){_0x1b732c=_0x27ee89;_0x3c9097=0xc8;}else{_0x3c9097=0xce;}_0x2032fe[_0x20c8('0x25')](_0x3c9097);return _0x2032fe[_0x20c8('0x2b')](_0x20c8('0x2c'),_0xd4d00e+'-'+_0x1b732c+'/'+_0x27ee89)['json'](_0x3d70f9);}return null;};}function patchUpdates(_0x529a11){return function(_0x160fcc){try{jsonpatch[_0x20c8('0x2d')](_0x160fcc,_0x529a11,!![]);}catch(_0x262213){return BPromise[_0x20c8('0x2e')](_0x262213);}return _0x160fcc['save']();};}function saveUpdates(_0x47cebd,_0x350b6e){return function(_0x384cbd){if(_0x384cbd){return _0x384cbd['update'](_0x47cebd)[_0x20c8('0x1b')](function(_0x92e19a){return _0x92e19a;});}return null;};}function removeEntity(_0x3534dd,_0x52aef4){return function(_0x18a7a9){if(_0x18a7a9){return _0x18a7a9[_0x20c8('0x2f')]()[_0x20c8('0x1b')](function(){var _0x3054f7=_0x18a7a9[_0x20c8('0x30')]({'plain':!![]});var _0x2f9f43=_0x20c8('0x31');return db[_0x20c8('0x32')]['destroy']({'where':{'type':_0x2f9f43,'resourceId':_0x3054f7['id']}})[_0x20c8('0x1b')](function(){return _0x18a7a9;});})[_0x20c8('0x1b')](function(){_0x3534dd[_0x20c8('0x25')](0xcc)[_0x20c8('0x33')]();});}};}function handleEntityNotFound(_0xe4c5c5,_0x54b95b){return function(_0x2f294c){if(!_0x2f294c){_0xe4c5c5[_0x20c8('0x24')](0x194);}return _0x2f294c;};}function handleError(_0x16a4de,_0x97366b){_0x97366b=_0x97366b||0x1f4;return function(_0x2262b8){logger[_0x20c8('0x20')](_0x2262b8[_0x20c8('0x34')]);if(_0x2262b8['name']){delete _0x2262b8[_0x20c8('0x35')];}_0x16a4de['status'](_0x97366b)[_0x20c8('0x36')](_0x2262b8);};}exports['index']=function(_0x1ec1a4,_0x2027bc){var _0x1a9c21={},_0x1007a1={},_0x38589e={'count':0x0,'rows':[]};var _0x517d47=_[_0x20c8('0x37')](db[_0x20c8('0x38')]['rawAttributes'],function(_0x5baf6b){return{'name':_0x5baf6b['fieldName'],'type':_0x5baf6b[_0x20c8('0x39')][_0x20c8('0x3a')]};});_0x1007a1[_0x20c8('0x3b')]=_[_0x20c8('0x37')](_0x517d47,_0x20c8('0x35'));_0x1007a1['query']=_[_0x20c8('0x3c')](_0x1ec1a4[_0x20c8('0x3d')]);_0x1007a1[_0x20c8('0x3e')]=_[_0x20c8('0x3f')](_0x1007a1['model'],_0x1007a1[_0x20c8('0x3d')]);_0x1a9c21['attributes']=_['intersection'](_0x1007a1[_0x20c8('0x3b')],qs[_0x20c8('0x40')](_0x1ec1a4['query'][_0x20c8('0x40')]));_0x1a9c21['attributes']=_0x1a9c21[_0x20c8('0x41')][_0x20c8('0x42')]?_0x1a9c21[_0x20c8('0x41')]:_0x1007a1[_0x20c8('0x3b')];if(!_0x1ec1a4['query']['hasOwnProperty'](_0x20c8('0x43'))){_0x1a9c21[_0x20c8('0x2a')]=qs[_0x20c8('0x2a')](_0x1ec1a4[_0x20c8('0x3d')][_0x20c8('0x2a')]);_0x1a9c21[_0x20c8('0x27')]=qs[_0x20c8('0x27')](_0x1ec1a4[_0x20c8('0x3d')][_0x20c8('0x27')]);}_0x1a9c21[_0x20c8('0x44')]=qs['sort'](_0x1ec1a4[_0x20c8('0x3d')][_0x20c8('0x45')]);_0x1a9c21['where']=qs[_0x20c8('0x3e')](_[_0x20c8('0x46')](_0x1ec1a4[_0x20c8('0x3d')],_0x1007a1[_0x20c8('0x3e')]),_0x517d47);if(_0x1ec1a4[_0x20c8('0x3d')][_0x20c8('0x47')]){_0x1a9c21['where']=_['merge'](_0x1a9c21[_0x20c8('0x48')],{'$or':_[_0x20c8('0x37')](_0x517d47,function(_0x4fbf2b){if(_0x4fbf2b['type']!==_0x20c8('0x49')){var _0x302fdc={};_0x302fdc[_0x4fbf2b[_0x20c8('0x35')]]={'$like':'%'+_0x1ec1a4['query'][_0x20c8('0x47')]+'%'};return _0x302fdc;}})});}_0x1a9c21=_[_0x20c8('0x4a')]({},_0x1a9c21,_0x1ec1a4['options']);var _0x389a14={'where':_0x1a9c21[_0x20c8('0x48')]};return db[_0x20c8('0x38')][_0x20c8('0x29')](_0x389a14)[_0x20c8('0x1b')](function(_0xb17023){_0x38589e['count']=_0xb17023;if(_0x1ec1a4['query'][_0x20c8('0x4b')]){_0x1a9c21['include']=[{'all':!![]}];}return db[_0x20c8('0x38')][_0x20c8('0x4c')](_0x1a9c21);})['then'](function(_0x47e074){_0x38589e[_0x20c8('0x4d')]=_0x47e074;return _0x38589e;})[_0x20c8('0x1b')](respondWithFilteredResult(_0x2027bc,_0x1a9c21))['catch'](handleError(_0x2027bc,null));};exports['show']=function(_0x51c3d5,_0x4f2e89){var _0x193afc={'raw':![],'where':{'id':_0x51c3d5[_0x20c8('0x4e')]['id']}},_0xbf147b={};_0xbf147b[_0x20c8('0x3b')]=_['keys'](db['VoiceContext'][_0x20c8('0x4f')]);_0xbf147b[_0x20c8('0x3d')]=_['keys'](_0x51c3d5['query']);_0xbf147b[_0x20c8('0x3e')]=_[_0x20c8('0x3f')](_0xbf147b[_0x20c8('0x3b')],_0xbf147b[_0x20c8('0x3d')]);_0x193afc['attributes']=_[_0x20c8('0x3f')](_0xbf147b[_0x20c8('0x3b')],qs[_0x20c8('0x40')](_0x51c3d5['query'][_0x20c8('0x40')]));_0x193afc[_0x20c8('0x41')]=_0x193afc[_0x20c8('0x41')][_0x20c8('0x42')]?_0x193afc[_0x20c8('0x41')]:_0xbf147b[_0x20c8('0x3b')];if(_0x51c3d5[_0x20c8('0x3d')][_0x20c8('0x4b')]){_0x193afc['include']=[{'all':!![]}];}_0x193afc=_['merge']({},_0x193afc,_0x51c3d5['options']);return db['VoiceContext'][_0x20c8('0x50')](_0x193afc)['then'](handleEntityNotFound(_0x4f2e89,null))[_0x20c8('0x1b')](respondWithResult(_0x4f2e89,null))[_0x20c8('0x51')](handleError(_0x4f2e89,null));};exports[_0x20c8('0x52')]=function(_0x32820b,_0x4499e9,_0x2e0ff4){var _0x189c8d;return db[_0x20c8('0x38')][_0x20c8('0x52')](_0x32820b[_0x20c8('0x53')],{'raw':!![]})['then'](function(_0x2d43de){_0x189c8d=_0x2d43de;return db[_0x20c8('0x38')][_0x20c8('0x4c')]({'raw':!![]});})[_0x20c8('0x1b')](function(_0x2357e4){var _0x5ab1fd=fs[_0x20c8('0x54')](path[_0x20c8('0x55')](config[_0x20c8('0x56')],_0x20c8('0x57')),'utf8');var _0xc470b2=ejs[_0x20c8('0x58')](_0x5ab1fd,{'contexts':_0x2357e4||[]});fs[_0x20c8('0x59')](_0x20c8('0x5a'),_0xc470b2);})['then'](function(){return respondWithRpcPromise(_0x20c8('0x5b'),_0x20c8('0x52'),{'module':_0x20c8('0x5c')});})[_0x20c8('0x1b')](function(){var _0x47af93=_0x32820b[_0x20c8('0x5d')][_0x20c8('0x30')]({'plain':!![]});if(!_0x47af93)throw new Error(_0x20c8('0x5e'));if(_0x47af93[_0x20c8('0x5f')]===_0x20c8('0x5d')){var _0xae516c=_0x189c8d['get']({'plain':!![]});return db[_0x20c8('0x60')][_0x20c8('0x50')]({'where':{'name':_0x20c8('0x31'),'userProfileId':_0x47af93[_0x20c8('0x61')]},'raw':!![]})[_0x20c8('0x1b')](function(_0x34172d){if(_0x34172d&&_0x34172d[_0x20c8('0x62')]===0x0){return db[_0x20c8('0x32')][_0x20c8('0x52')]({'name':_0xae516c[_0x20c8('0x35')],'resourceId':_0xae516c['id'],'type':_0x34172d[_0x20c8('0x35')],'sectionId':_0x34172d['id']},{})[_0x20c8('0x1b')](function(){return _0x189c8d;});}else{return _0x189c8d;}})[_0x20c8('0x51')](function(_0x2717fb){logger[_0x20c8('0x20')](_0x20c8('0x63'),_0x2717fb);throw _0x2717fb;});}return _0x189c8d;})['then'](respondWithResult(_0x4499e9,0xc9))[_0x20c8('0x51')](handleError(_0x4499e9,null));};exports[_0x20c8('0x64')]=function(_0xb4f079,_0x3ebbe6,_0x2fabe7){var _0x1170db;return db[_0x20c8('0x38')][_0x20c8('0x50')]({'where':{'id':_0xb4f079[_0x20c8('0x4e')]['id']}})[_0x20c8('0x1b')](handleEntityNotFound(_0x3ebbe6,null))[_0x20c8('0x1b')](saveUpdates(_0xb4f079['body'],null))[_0x20c8('0x1b')](function(_0x28b2aa){if(_0x28b2aa){_0x1170db=_0x28b2aa;return db[_0x20c8('0x38')][_0x20c8('0x4c')]({'raw':!![]});}})[_0x20c8('0x1b')](function(_0x11707e){var _0x136992=fs[_0x20c8('0x54')](path[_0x20c8('0x55')](config[_0x20c8('0x56')],_0x20c8('0x57')),_0x20c8('0x65'));var _0x5c1c8d=ejs[_0x20c8('0x58')](_0x136992,{'contexts':_0x11707e||[]});fs[_0x20c8('0x59')](_0x20c8('0x5a'),_0x5c1c8d);})['then'](function(){return respondWithRpcPromise('Reload',_0x20c8('0x64'),{'module':_0x20c8('0x5c')});})[_0x20c8('0x1b')](function(){return _0x1170db;})[_0x20c8('0x1b')](respondWithResult(_0x3ebbe6,null))[_0x20c8('0x51')](handleError(_0x3ebbe6,null));};exports[_0x20c8('0x2f')]=function(_0x252dd1,_0x4339d1,_0x425d2b){var _0x351951;return db['VoiceContext'][_0x20c8('0x50')]({'where':{'id':_0x252dd1[_0x20c8('0x4e')]['id']}})[_0x20c8('0x1b')](handleEntityNotFound(_0x4339d1,null))[_0x20c8('0x1b')](removeEntity(_0x4339d1,null))['then'](function(){return db[_0x20c8('0x38')][_0x20c8('0x4c')]({'raw':!![]});})[_0x20c8('0x1b')](function(_0x6f296f){var _0x50e3fb=fs[_0x20c8('0x54')](path[_0x20c8('0x55')](config[_0x20c8('0x56')],_0x20c8('0x57')),_0x20c8('0x65'));var _0x25a289=ejs['render'](_0x50e3fb,{'contexts':_0x6f296f});fs[_0x20c8('0x59')](_0x20c8('0x5a'),_0x25a289);return respondWithRpcPromise(_0x20c8('0x5b'),_0x20c8('0x2f'),{'module':_0x20c8('0x5c')});})[_0x20c8('0x51')](handleError(_0x4339d1,null));};