ed01b540448ef979d3d7eb4b82a4e614671e19be
[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 _0xb000=['moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','then','info','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','VoiceContext,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','json','undefined','limit','count','offset','set','apply','save','update','get','Contexts','destroy','stack','name','send','index','map','VoiceContext','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','includeAll','rows','params','length','find','create','body','findAll','readFileSync','join','root','server/files/templates/context.ejs','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Reload','utf8','rimraf','fast-json-patch'];(function(_0x4a45b4,_0x59804f){var _0x1a99c9=function(_0x3aa517){while(--_0x3aa517){_0x4a45b4['push'](_0x4a45b4['shift']());}};_0x1a99c9(++_0x59804f);}(_0xb000,0x1ed));var _0x0b00=function(_0x4d521e,_0x58ba39){_0x4d521e=_0x4d521e-0x0;var _0x3beb42=_0xb000[_0x4d521e];return _0x3beb42;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0b00('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0b00('0x1'));var rp=require('request-promise');var moment=require(_0x0b00('0x2'));var BPromise=require(_0x0b00('0x3'));var Mustache=require(_0x0b00('0x4'));var util=require('util');var path=require(_0x0b00('0x5'));var sox=require(_0x0b00('0x6'));var csv=require(_0x0b00('0x7'));var ejs=require(_0x0b00('0x8'));var fs=require('fs');var fs_extra=require(_0x0b00('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x0b00('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x0b00('0x7'));var querystring=require(_0x0b00('0xb'));var Papa=require(_0x0b00('0xc'));var Redis=require('ioredis');var authService=require(_0x0b00('0xd'));var qs=require(_0x0b00('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0b00('0xf'));var logger=require(_0x0b00('0x10'))(_0x0b00('0x11'));var utils=require(_0x0b00('0x12'));var config=require(_0x0b00('0x13'));var licenseUtil=require(_0x0b00('0x14'));var db=require(_0x0b00('0x15'))['db'];var jayson=require(_0x0b00('0x16'));var client=jayson[_0x0b00('0x17')][_0x0b00('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x4018da,_0x41db47,_0x23b690,_0x32c5a0){return new BPromise(function(_0x26629a,_0x186cc8){var _0x47dc71=_0x32c5a0||client;return _0x47dc71['request'](_0x4018da,_0x23b690)[_0x0b00('0x19')](function(_0x24342c){logger[_0x0b00('0x1a')]('VoiceContext,\x20%s,\x20%s',_0x41db47,_0x0b00('0x1b'));logger[_0x0b00('0x1c')](_0x0b00('0x1d'),_0x41db47,_0x0b00('0x1b'),JSON[_0x0b00('0x1e')](_0x24342c));if(_0x24342c['error']){if(_0x24342c[_0x0b00('0x1f')]['code']===0x1f4){logger[_0x0b00('0x1f')](_0x0b00('0x20'),_0x41db47,_0x24342c['error'][_0x0b00('0x21')]);return _0x186cc8(_0x24342c[_0x0b00('0x1f')][_0x0b00('0x21')]);}logger['error']('VoiceContext,\x20%s,\x20%s',_0x41db47,_0x24342c['error'][_0x0b00('0x21')]);return _0x26629a(_0x24342c['error'][_0x0b00('0x21')]);}else{logger[_0x0b00('0x1a')](_0x0b00('0x20'),_0x41db47,_0x0b00('0x1b'));_0x26629a(_0x24342c[_0x0b00('0x22')][_0x0b00('0x21')]);}})[_0x0b00('0x23')](function(_0x5e483f){logger[_0x0b00('0x1f')](_0x0b00('0x20'),_0x41db47,_0x5e483f);_0x186cc8(_0x5e483f);});});}function respondWithStatusCode(_0x5dca68,_0x579d0a){_0x579d0a=_0x579d0a||0xcc;return function(_0x2e805e){if(_0x2e805e){return _0x5dca68[_0x0b00('0x24')](_0x579d0a);}return _0x5dca68[_0x0b00('0x25')](_0x579d0a)[_0x0b00('0x26')]();};}function respondWithResult(_0x1150ed,_0x10af30){_0x10af30=_0x10af30||0xc8;return function(_0x3d68f0){if(_0x3d68f0){return _0x1150ed[_0x0b00('0x25')](_0x10af30)[_0x0b00('0x27')](_0x3d68f0);}};}function respondWithFilteredResult(_0x10944f,_0x1e6963){return function(_0x1c64d5){if(_0x1c64d5){var _0x4cc42a=typeof _0x1e6963['offset']===_0x0b00('0x28')&&typeof _0x1e6963[_0x0b00('0x29')]==='undefined';var _0xb5a3b0=_0x1c64d5[_0x0b00('0x2a')];var _0x1c2d6c=_0x4cc42a?0x0:_0x1e6963[_0x0b00('0x2b')];var _0x259880=_0x4cc42a?_0x1c64d5[_0x0b00('0x2a')]:_0x1e6963[_0x0b00('0x2b')]+_0x1e6963[_0x0b00('0x29')];var _0x1507e5;if(_0x259880>=_0xb5a3b0){_0x259880=_0xb5a3b0;_0x1507e5=0xc8;}else{_0x1507e5=0xce;}_0x10944f[_0x0b00('0x25')](_0x1507e5);return _0x10944f[_0x0b00('0x2c')]('Content-Range',_0x1c2d6c+'-'+_0x259880+'/'+_0xb5a3b0)['json'](_0x1c64d5);}return null;};}function patchUpdates(_0x3a38aa){return function(_0x33148a){try{jsonpatch[_0x0b00('0x2d')](_0x33148a,_0x3a38aa,!![]);}catch(_0x5c613c){return BPromise['reject'](_0x5c613c);}return _0x33148a[_0x0b00('0x2e')]();};}function saveUpdates(_0x4d4d9e,_0x4bb4c9){return function(_0x4eabb1){if(_0x4eabb1){return _0x4eabb1[_0x0b00('0x2f')](_0x4d4d9e)[_0x0b00('0x19')](function(_0x27176c){return _0x27176c;});}return null;};}function removeEntity(_0x306133,_0x387086){return function(_0x1f230d){if(_0x1f230d){return _0x1f230d['destroy']()[_0x0b00('0x19')](function(){var _0x10b6dd=_0x1f230d[_0x0b00('0x30')]({'plain':!![]});var _0x1ae5d5=_0x0b00('0x31');return db['UserProfileResource'][_0x0b00('0x32')]({'where':{'type':_0x1ae5d5,'resourceId':_0x10b6dd['id']}})[_0x0b00('0x19')](function(){return _0x1f230d;});})[_0x0b00('0x19')](function(){_0x306133[_0x0b00('0x25')](0xcc)[_0x0b00('0x26')]();});}};}function handleEntityNotFound(_0x1a6108,_0x1f1a75){return function(_0x2add9a){if(!_0x2add9a){_0x1a6108[_0x0b00('0x24')](0x194);}return _0x2add9a;};}function handleError(_0x3bab20,_0x1b3977){_0x1b3977=_0x1b3977||0x1f4;return function(_0x1d82c2){logger[_0x0b00('0x1f')](_0x1d82c2[_0x0b00('0x33')]);if(_0x1d82c2['name']){delete _0x1d82c2[_0x0b00('0x34')];}_0x3bab20['status'](_0x1b3977)[_0x0b00('0x35')](_0x1d82c2);};}exports[_0x0b00('0x36')]=function(_0x2b91ea,_0x3a8d0f){var _0x34d5d9={},_0x19e76b={},_0x4f9102={'count':0x0,'rows':[]};var _0x51c608=_[_0x0b00('0x37')](db[_0x0b00('0x38')][_0x0b00('0x39')],function(_0xf5d525){return{'name':_0xf5d525[_0x0b00('0x3a')],'type':_0xf5d525[_0x0b00('0x3b')][_0x0b00('0x3c')]};});_0x19e76b[_0x0b00('0x3d')]=_[_0x0b00('0x37')](_0x51c608,_0x0b00('0x34'));_0x19e76b[_0x0b00('0x3e')]=_[_0x0b00('0x3f')](_0x2b91ea[_0x0b00('0x3e')]);_0x19e76b[_0x0b00('0x40')]=_[_0x0b00('0x41')](_0x19e76b['model'],_0x19e76b[_0x0b00('0x3e')]);_0x34d5d9[_0x0b00('0x42')]=_[_0x0b00('0x41')](_0x19e76b['model'],qs[_0x0b00('0x43')](_0x2b91ea[_0x0b00('0x3e')][_0x0b00('0x43')]));_0x34d5d9[_0x0b00('0x42')]=_0x34d5d9[_0x0b00('0x42')]['length']?_0x34d5d9['attributes']:_0x19e76b[_0x0b00('0x3d')];if(!_0x2b91ea[_0x0b00('0x3e')][_0x0b00('0x44')]('nolimit')){_0x34d5d9['limit']=qs[_0x0b00('0x29')](_0x2b91ea[_0x0b00('0x3e')][_0x0b00('0x29')]);_0x34d5d9[_0x0b00('0x2b')]=qs[_0x0b00('0x2b')](_0x2b91ea[_0x0b00('0x3e')]['offset']);}_0x34d5d9[_0x0b00('0x45')]=qs[_0x0b00('0x46')](_0x2b91ea['query'][_0x0b00('0x46')]);_0x34d5d9[_0x0b00('0x47')]=qs[_0x0b00('0x40')](_['pick'](_0x2b91ea[_0x0b00('0x3e')],_0x19e76b[_0x0b00('0x40')]),_0x51c608);if(_0x2b91ea['query'][_0x0b00('0x48')]){_0x34d5d9[_0x0b00('0x47')]=_[_0x0b00('0x49')](_0x34d5d9[_0x0b00('0x47')],{'$or':_[_0x0b00('0x37')](_0x51c608,function(_0x4d8a0e){if(_0x4d8a0e[_0x0b00('0x3b')]!==_0x0b00('0x4a')){var _0x5c7811={};_0x5c7811[_0x4d8a0e[_0x0b00('0x34')]]={'$like':'%'+_0x2b91ea[_0x0b00('0x3e')]['filter']+'%'};return _0x5c7811;}})});}_0x34d5d9=_[_0x0b00('0x49')]({},_0x34d5d9,_0x2b91ea[_0x0b00('0x4b')]);var _0x2676cb={'where':_0x34d5d9[_0x0b00('0x47')]};return db[_0x0b00('0x38')]['count'](_0x2676cb)[_0x0b00('0x19')](function(_0x1f44e9){_0x4f9102[_0x0b00('0x2a')]=_0x1f44e9;if(_0x2b91ea[_0x0b00('0x3e')][_0x0b00('0x4c')]){_0x34d5d9['include']=[{'all':!![]}];}return db[_0x0b00('0x38')]['findAll'](_0x34d5d9);})[_0x0b00('0x19')](function(_0x19e1ca){_0x4f9102[_0x0b00('0x4d')]=_0x19e1ca;return _0x4f9102;})[_0x0b00('0x19')](respondWithFilteredResult(_0x3a8d0f,_0x34d5d9))[_0x0b00('0x23')](handleError(_0x3a8d0f,null));};exports['show']=function(_0xb49c6f,_0x12ee54){var _0x2c9155={'raw':![],'where':{'id':_0xb49c6f[_0x0b00('0x4e')]['id']}},_0xe11c6e={};_0xe11c6e[_0x0b00('0x3d')]=_[_0x0b00('0x3f')](db[_0x0b00('0x38')][_0x0b00('0x39')]);_0xe11c6e[_0x0b00('0x3e')]=_['keys'](_0xb49c6f[_0x0b00('0x3e')]);_0xe11c6e[_0x0b00('0x40')]=_[_0x0b00('0x41')](_0xe11c6e[_0x0b00('0x3d')],_0xe11c6e[_0x0b00('0x3e')]);_0x2c9155[_0x0b00('0x42')]=_[_0x0b00('0x41')](_0xe11c6e['model'],qs[_0x0b00('0x43')](_0xb49c6f[_0x0b00('0x3e')][_0x0b00('0x43')]));_0x2c9155[_0x0b00('0x42')]=_0x2c9155['attributes'][_0x0b00('0x4f')]?_0x2c9155[_0x0b00('0x42')]:_0xe11c6e[_0x0b00('0x3d')];if(_0xb49c6f[_0x0b00('0x3e')][_0x0b00('0x4c')]){_0x2c9155['include']=[{'all':!![]}];}_0x2c9155=_[_0x0b00('0x49')]({},_0x2c9155,_0xb49c6f[_0x0b00('0x4b')]);return db[_0x0b00('0x38')][_0x0b00('0x50')](_0x2c9155)[_0x0b00('0x19')](handleEntityNotFound(_0x12ee54,null))['then'](respondWithResult(_0x12ee54,null))[_0x0b00('0x23')](handleError(_0x12ee54,null));};exports[_0x0b00('0x51')]=function(_0x262b15,_0x5d3150,_0x16c4cc){var _0x431b2d;return db[_0x0b00('0x38')][_0x0b00('0x51')](_0x262b15[_0x0b00('0x52')],{'raw':!![]})[_0x0b00('0x19')](function(_0x8dd9ea){_0x431b2d=_0x8dd9ea;return db['VoiceContext'][_0x0b00('0x53')]({'raw':!![]});})['then'](function(_0x48dd09){var _0x59065b=fs[_0x0b00('0x54')](path[_0x0b00('0x55')](config[_0x0b00('0x56')],_0x0b00('0x57')),'utf8');var _0x168282=ejs[_0x0b00('0x58')](_0x59065b,{'contexts':_0x48dd09||[]});fs[_0x0b00('0x59')](_0x0b00('0x5a'),_0x168282);})[_0x0b00('0x19')](function(){return respondWithRpcPromise('Reload',_0x0b00('0x51'),{'module':_0x0b00('0x5b')});})[_0x0b00('0x19')](function(){var _0x191fa0=_0x262b15[_0x0b00('0x5c')]['get']({'plain':!![]});if(!_0x191fa0)throw new Error(_0x0b00('0x5d'));if(_0x191fa0['role']===_0x0b00('0x5c')){var _0x20c13d=_0x431b2d[_0x0b00('0x30')]({'plain':!![]});return db['UserProfileSection'][_0x0b00('0x50')]({'where':{'name':'Contexts','userProfileId':_0x191fa0['userProfileId']},'raw':!![]})[_0x0b00('0x19')](function(_0x23314c){if(_0x23314c&&_0x23314c[_0x0b00('0x5e')]===0x0){return db[_0x0b00('0x5f')][_0x0b00('0x51')]({'name':_0x20c13d[_0x0b00('0x34')],'resourceId':_0x20c13d['id'],'type':_0x23314c[_0x0b00('0x34')],'sectionId':_0x23314c['id']},{})[_0x0b00('0x19')](function(){return _0x431b2d;});}else{return _0x431b2d;}})[_0x0b00('0x23')](function(_0x264604){logger[_0x0b00('0x1f')](_0x0b00('0x60'),_0x264604);throw _0x264604;});}return _0x431b2d;})[_0x0b00('0x19')](respondWithResult(_0x5d3150,0xc9))[_0x0b00('0x23')](handleError(_0x5d3150,null));};exports[_0x0b00('0x2f')]=function(_0x313296,_0x5e14a9,_0x40ac5d){var _0x55e611;return db[_0x0b00('0x38')][_0x0b00('0x50')]({'where':{'id':_0x313296[_0x0b00('0x4e')]['id']}})['then'](handleEntityNotFound(_0x5e14a9,null))['then'](saveUpdates(_0x313296[_0x0b00('0x52')],null))['then'](function(_0x2a606a){if(_0x2a606a){_0x55e611=_0x2a606a;return db[_0x0b00('0x38')][_0x0b00('0x53')]({'raw':!![]});}})[_0x0b00('0x19')](function(_0x55e661){var _0x48a8b9=fs[_0x0b00('0x54')](path[_0x0b00('0x55')](config[_0x0b00('0x56')],_0x0b00('0x57')),'utf8');var _0x49a05a=ejs[_0x0b00('0x58')](_0x48a8b9,{'contexts':_0x55e661||[]});fs[_0x0b00('0x59')](_0x0b00('0x5a'),_0x49a05a);})[_0x0b00('0x19')](function(){return respondWithRpcPromise(_0x0b00('0x61'),_0x0b00('0x2f'),{'module':_0x0b00('0x5b')});})[_0x0b00('0x19')](function(){return _0x55e611;})[_0x0b00('0x19')](respondWithResult(_0x5e14a9,null))[_0x0b00('0x23')](handleError(_0x5e14a9,null));};exports[_0x0b00('0x32')]=function(_0x41f562,_0x5b8e40,_0x16034f){var _0x3b2391;return db['VoiceContext'][_0x0b00('0x50')]({'where':{'id':_0x41f562[_0x0b00('0x4e')]['id']}})['then'](handleEntityNotFound(_0x5b8e40,null))[_0x0b00('0x19')](removeEntity(_0x5b8e40,null))['then'](function(){return db['VoiceContext'][_0x0b00('0x53')]({'raw':!![]});})['then'](function(_0x44c038){var _0x1eda67=fs[_0x0b00('0x54')](path[_0x0b00('0x55')](config[_0x0b00('0x56')],_0x0b00('0x57')),_0x0b00('0x62'));var _0x247be4=ejs[_0x0b00('0x58')](_0x1eda67,{'contexts':_0x44c038});fs['writeFileSync'](_0x0b00('0x5a'),_0x247be4);return respondWithRpcPromise('Reload',_0x0b00('0x32'),{'module':_0x0b00('0x5b')});})[_0x0b00('0x23')](handleError(_0x5b8e40,null));};