Built motion from commit (unavailable).|2.3.8
[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 _0x3f25=['render','writeFileSync','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','params','/etc/asterisk/extensions_xcally_contexts.conf','eml-format','rimraf','zip-dir','moment','mustache','path','to-csv','ejs','squel','crypto','desk.js','papaparse','../../components/auth/service','../../config/license/hardware','ioredis','../../config/logger','api','../../config/utils','jayson/promise','http','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','count','offset','limit','set','Content-Range','json','apply','reject','save','update','then','get','Contexts','UserProfileResource','destroy','end','stack','name','send','index','rawAttributes','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filter','merge','map','type','key','VIRTUAL','field','includeAll','include','VoiceContext','findAll','rows','show','options','find','create','body','readFileSync','join','root','server/files/templates/context.ejs','utf8'];(function(_0x193cc0,_0x227edc){var _0x53d496=function(_0x3aa19c){while(--_0x3aa19c){_0x193cc0['push'](_0x193cc0['shift']());}};_0x53d496(++_0x227edc);}(_0x3f25,0xd5));var _0x53f2=function(_0x37929c,_0x401356){_0x37929c=_0x37929c-0x0;var _0x51f5b1=_0x3f25[_0x37929c];return _0x51f5b1;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x53f2('0x0'));var rimraf=require(_0x53f2('0x1'));var zipdir=require(_0x53f2('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x53f2('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x53f2('0x4'));var util=require('util');var path=require(_0x53f2('0x5'));var sox=require('sox');var csv=require(_0x53f2('0x6'));var ejs=require(_0x53f2('0x7'));var fs=require('fs');var _=require('lodash');var squel=require(_0x53f2('0x8'));var crypto=require(_0x53f2('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x53f2('0xa'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x53f2('0xb'));var authService=require(_0x53f2('0xc'));var hardwareService=require(_0x53f2('0xd'));var Redis=require(_0x53f2('0xe'));var qs=require('../../components/parsers/qs');var logger=require(_0x53f2('0xf'))(_0x53f2('0x10'));var utils=require(_0x53f2('0x11'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];var jayson=require(_0x53f2('0x12'));var client=jayson['client'][_0x53f2('0x13')]({'port':0x232a});function respondWithRpcPromise(_0x20b513,_0x3ccaaf,_0x1fed27,_0x3132f7){return new BPromise(function(_0x2fe8d9,_0x357955){var _0x55cfd1=_0x3132f7||client;return _0x55cfd1['request'](_0x20b513,_0x1fed27)['then'](function(_0x4055f2){logger[_0x53f2('0x14')](_0x53f2('0x15'),_0x3ccaaf,_0x53f2('0x16'));logger[_0x53f2('0x17')](_0x53f2('0x18'),_0x3ccaaf,_0x53f2('0x16'),JSON[_0x53f2('0x19')](_0x4055f2));if(_0x4055f2['error']){if(_0x4055f2[_0x53f2('0x1a')][_0x53f2('0x1b')]===0x1f4){logger[_0x53f2('0x1a')](_0x53f2('0x15'),_0x3ccaaf,_0x4055f2[_0x53f2('0x1a')][_0x53f2('0x1c')]);return _0x357955(_0x4055f2[_0x53f2('0x1a')][_0x53f2('0x1c')]);}logger[_0x53f2('0x1a')](_0x53f2('0x15'),_0x3ccaaf,_0x4055f2['error'][_0x53f2('0x1c')]);return _0x2fe8d9(_0x4055f2[_0x53f2('0x1a')]['message']);}else{logger['info']('VoiceContext,\x20%s,\x20%s',_0x3ccaaf,_0x53f2('0x16'));_0x2fe8d9(_0x4055f2[_0x53f2('0x1d')][_0x53f2('0x1c')]);}})[_0x53f2('0x1e')](function(_0x5a03fe){logger[_0x53f2('0x1a')](_0x53f2('0x15'),_0x3ccaaf,_0x5a03fe);_0x357955(_0x5a03fe);});});}function respondWithStatusCode(_0x37eeb4,_0x285d88){_0x285d88=_0x285d88||0xcc;return function(_0x1fd5b8){if(_0x1fd5b8){return _0x37eeb4[_0x53f2('0x1f')](_0x285d88);}return _0x37eeb4[_0x53f2('0x20')](_0x285d88)['end']();};}function respondWithResult(_0x186b0a,_0x462310){_0x462310=_0x462310||0xc8;return function(_0x47d17a){if(_0x47d17a){return _0x186b0a['status'](_0x462310)['json'](_0x47d17a);}};}function respondWithFilteredResult(_0x3f68a5,_0x2ecd0e){return function(_0x26aa1e){if(_0x26aa1e){var _0x235463=_0x26aa1e[_0x53f2('0x21')],_0x326a45=_0x2ecd0e[_0x53f2('0x22')],_0x564ed4=_0x2ecd0e['offset']+_0x2ecd0e[_0x53f2('0x23')],_0x3b6841;if(_0x564ed4>=_0x235463){_0x564ed4=_0x235463;_0x3b6841=0xc8;}else{_0x3b6841=0xce;}_0x3f68a5[_0x53f2('0x20')](_0x3b6841);return _0x3f68a5[_0x53f2('0x24')](_0x53f2('0x25'),_0x326a45+'-'+_0x564ed4+'/'+_0x235463)[_0x53f2('0x26')](_0x26aa1e);}return null;};}function patchUpdates(_0x3e0476){return function(_0x5bb1a5){try{jsonpatch[_0x53f2('0x27')](_0x5bb1a5,_0x3e0476,!![]);}catch(_0x3df1d3){return BPromise[_0x53f2('0x28')](_0x3df1d3);}return _0x5bb1a5[_0x53f2('0x29')]();};}function saveUpdates(_0x3bc04a,_0x1c690f){return function(_0x2574c0){if(_0x2574c0){return _0x2574c0[_0x53f2('0x2a')](_0x3bc04a)[_0x53f2('0x2b')](function(_0x21c85c){return _0x21c85c;});}return null;};}function removeEntity(_0x5d490d,_0x100449){return function(_0x557eac){if(_0x557eac){return _0x557eac['destroy']()[_0x53f2('0x2b')](function(){var _0x707c30=_0x557eac[_0x53f2('0x2c')]({'plain':!![]});var _0x3abba2=_0x53f2('0x2d');return db[_0x53f2('0x2e')][_0x53f2('0x2f')]({'where':{'type':_0x3abba2,'resourceId':_0x707c30['id']}})[_0x53f2('0x2b')](function(){return _0x557eac;});})[_0x53f2('0x2b')](function(){_0x5d490d['status'](0xcc)[_0x53f2('0x30')]();});}};}function handleEntityNotFound(_0x255419,_0x5b82fd){return function(_0x2955d1){if(!_0x2955d1){_0x255419[_0x53f2('0x1f')](0x194);}return _0x2955d1;};}function handleError(_0x202d64,_0x2d1451){_0x2d1451=_0x2d1451||0x1f4;return function(_0x2e2912){logger['error'](_0x2e2912[_0x53f2('0x31')]);if(_0x2e2912[_0x53f2('0x32')]){delete _0x2e2912[_0x53f2('0x32')];}_0x202d64[_0x53f2('0x20')](_0x2d1451)[_0x53f2('0x33')](_0x2e2912);};}exports[_0x53f2('0x34')]=function(_0x6de983,_0x18f3c6){var _0x52a6e0={},_0xe3453e={},_0x3bc438={'count':0x0,'rows':[]};var _0x30fcf7=db['VoiceContext'][_0x53f2('0x35')];_0xe3453e[_0x53f2('0x36')]=_['keys'](_0x30fcf7);_0xe3453e[_0x53f2('0x37')]=_['keys'](_0x6de983['query']);_0xe3453e[_0x53f2('0x38')]=_[_0x53f2('0x39')](_0xe3453e[_0x53f2('0x36')],_0xe3453e['query']);_0x52a6e0[_0x53f2('0x3a')]=_['intersection'](_0xe3453e[_0x53f2('0x36')],qs[_0x53f2('0x3b')](_0x6de983[_0x53f2('0x37')][_0x53f2('0x3b')]));_0x52a6e0['attributes']=_0x52a6e0[_0x53f2('0x3a')][_0x53f2('0x3c')]?_0x52a6e0[_0x53f2('0x3a')]:_0xe3453e[_0x53f2('0x36')];if(!_0x6de983['query'][_0x53f2('0x3d')]('nolimit')){_0x52a6e0[_0x53f2('0x23')]=qs[_0x53f2('0x23')](_0x6de983['query']['limit']);_0x52a6e0[_0x53f2('0x22')]=qs[_0x53f2('0x22')](_0x6de983[_0x53f2('0x37')][_0x53f2('0x22')]);}_0x52a6e0[_0x53f2('0x3e')]=qs[_0x53f2('0x3f')](_0x6de983[_0x53f2('0x37')][_0x53f2('0x3f')]);_0x52a6e0[_0x53f2('0x40')]=qs[_0x53f2('0x38')](_['pick'](_0x6de983[_0x53f2('0x37')],_0xe3453e[_0x53f2('0x38')]));if(_0x6de983[_0x53f2('0x37')][_0x53f2('0x41')]){_0x52a6e0[_0x53f2('0x40')]=_[_0x53f2('0x42')](_0x52a6e0[_0x53f2('0x40')],{'$or':_[_0x53f2('0x43')](_0x30fcf7,function(_0x28a9c5){if(_0x28a9c5[_0x53f2('0x44')][_0x53f2('0x45')]!==_0x53f2('0x46')){var _0x1425f2={};_0x1425f2[_0x28a9c5[_0x53f2('0x47')]]={'$like':'%'+_0x6de983[_0x53f2('0x37')][_0x53f2('0x41')]+'%'};return _0x1425f2;}})});}_0x52a6e0=_[_0x53f2('0x42')]({},_0x52a6e0,_0x6de983['options']);var _0x308b49={'where':_0x52a6e0[_0x53f2('0x40')]};return db['VoiceContext']['count'](_0x308b49)[_0x53f2('0x2b')](function(_0x5c99cd){_0x3bc438[_0x53f2('0x21')]=_0x5c99cd;if(_0x6de983[_0x53f2('0x37')][_0x53f2('0x48')]){_0x52a6e0[_0x53f2('0x49')]=[{'all':!![]}];}return db[_0x53f2('0x4a')][_0x53f2('0x4b')](_0x52a6e0);})[_0x53f2('0x2b')](function(_0x53e4eb){_0x3bc438[_0x53f2('0x4c')]=_0x53e4eb;return _0x3bc438;})[_0x53f2('0x2b')](respondWithFilteredResult(_0x18f3c6,_0x52a6e0))['catch'](handleError(_0x18f3c6,null));};exports[_0x53f2('0x4d')]=function(_0x3cbf0c,_0x5509f8){var _0x3edceb={'raw':![],'where':{'id':_0x3cbf0c['params']['id']}},_0x243612={};_0x243612[_0x53f2('0x36')]=_['keys'](db[_0x53f2('0x4a')][_0x53f2('0x35')]);_0x243612['query']=_['keys'](_0x3cbf0c[_0x53f2('0x37')]);_0x243612[_0x53f2('0x38')]=_[_0x53f2('0x39')](_0x243612[_0x53f2('0x36')],_0x243612[_0x53f2('0x37')]);_0x3edceb[_0x53f2('0x3a')]=_[_0x53f2('0x39')](_0x243612[_0x53f2('0x36')],qs['fields'](_0x3cbf0c[_0x53f2('0x37')][_0x53f2('0x3b')]));_0x3edceb[_0x53f2('0x3a')]=_0x3edceb[_0x53f2('0x3a')][_0x53f2('0x3c')]?_0x3edceb['attributes']:_0x243612[_0x53f2('0x36')];if(_0x3cbf0c[_0x53f2('0x37')][_0x53f2('0x48')]){_0x3edceb[_0x53f2('0x49')]=[{'all':!![]}];}_0x3edceb=_[_0x53f2('0x42')]({},_0x3edceb,_0x3cbf0c[_0x53f2('0x4e')]);return db[_0x53f2('0x4a')][_0x53f2('0x4f')](_0x3edceb)[_0x53f2('0x2b')](handleEntityNotFound(_0x5509f8,null))[_0x53f2('0x2b')](respondWithResult(_0x5509f8,null))[_0x53f2('0x1e')](handleError(_0x5509f8,null));};exports[_0x53f2('0x50')]=function(_0x4040c3,_0x458e7a,_0x192a61){var _0x4f8e7e;return db[_0x53f2('0x4a')][_0x53f2('0x50')](_0x4040c3[_0x53f2('0x51')],{'raw':!![]})['then'](function(_0x354aaf){_0x4f8e7e=_0x354aaf;return db[_0x53f2('0x4a')][_0x53f2('0x4b')]({'raw':!![]});})[_0x53f2('0x2b')](function(_0x14db71){var _0x684a88=fs[_0x53f2('0x52')](path[_0x53f2('0x53')](config[_0x53f2('0x54')],_0x53f2('0x55')),_0x53f2('0x56'));var _0x552f43=ejs[_0x53f2('0x57')](_0x684a88,{'contexts':_0x14db71||[]});fs[_0x53f2('0x58')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x552f43);})['then'](function(){return respondWithRpcPromise(_0x53f2('0x59'),_0x53f2('0x50'),{'module':_0x53f2('0x5a')});})[_0x53f2('0x2b')](function(){var _0x242cde=_0x4040c3[_0x53f2('0x5b')][_0x53f2('0x2c')]({'plain':!![]});if(!_0x242cde)throw new Error(_0x53f2('0x5c'));if(_0x242cde[_0x53f2('0x5d')]===_0x53f2('0x5b')){var _0x22544d=_0x4f8e7e['get']({'plain':!![]});return db[_0x53f2('0x5e')][_0x53f2('0x4f')]({'where':{'name':_0x53f2('0x2d'),'userProfileId':_0x242cde[_0x53f2('0x5f')]},'raw':!![]})[_0x53f2('0x2b')](function(_0x336658){if(_0x336658&&_0x336658[_0x53f2('0x60')]===0x0){return db['UserProfileResource'][_0x53f2('0x50')]({'name':_0x22544d[_0x53f2('0x32')],'resourceId':_0x22544d['id'],'type':_0x336658[_0x53f2('0x32')],'sectionId':_0x336658['id']},{})[_0x53f2('0x2b')](function(){return _0x4f8e7e;});}else{return _0x4f8e7e;}})[_0x53f2('0x1e')](function(_0x3e9fba){logger[_0x53f2('0x1a')](_0x53f2('0x61'),_0x3e9fba);throw _0x3e9fba;});}return _0x4f8e7e;})['then'](respondWithResult(_0x458e7a,0xc9))[_0x53f2('0x1e')](handleError(_0x458e7a,null));};exports[_0x53f2('0x2a')]=function(_0x3a2d73,_0xfb9278,_0x1205b3){var _0x3f6d6a;return db[_0x53f2('0x4a')][_0x53f2('0x4f')]({'where':{'id':_0x3a2d73[_0x53f2('0x62')]['id']}})['then'](handleEntityNotFound(_0xfb9278,null))['then'](saveUpdates(_0x3a2d73[_0x53f2('0x51')],null))['then'](function(_0x1ef785){if(_0x1ef785){_0x3f6d6a=_0x1ef785;return db[_0x53f2('0x4a')]['findAll']({'raw':!![]});}})['then'](function(_0x7d5be6){var _0x972500=fs[_0x53f2('0x52')](path[_0x53f2('0x53')](config['root'],'server/files/templates/context.ejs'),'utf8');var _0x5d275d=ejs[_0x53f2('0x57')](_0x972500,{'contexts':_0x7d5be6||[]});fs[_0x53f2('0x58')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x5d275d);})[_0x53f2('0x2b')](function(){return respondWithRpcPromise(_0x53f2('0x59'),_0x53f2('0x2a'),{'module':_0x53f2('0x5a')});})['then'](function(){return _0x3f6d6a;})[_0x53f2('0x2b')](respondWithResult(_0xfb9278,null))[_0x53f2('0x1e')](handleError(_0xfb9278,null));};exports[_0x53f2('0x2f')]=function(_0x38685d,_0x1ed130,_0x40a366){var _0x595f2a;return db['VoiceContext'][_0x53f2('0x4f')]({'where':{'id':_0x38685d['params']['id']}})[_0x53f2('0x2b')](handleEntityNotFound(_0x1ed130,null))['then'](removeEntity(_0x1ed130,null))[_0x53f2('0x2b')](function(){return db['VoiceContext'][_0x53f2('0x4b')]({'raw':!![]});})['then'](function(_0x522bed){var _0x9dbd19=fs[_0x53f2('0x52')](path[_0x53f2('0x53')](config[_0x53f2('0x54')],_0x53f2('0x55')),_0x53f2('0x56'));var _0x15cbbc=ejs[_0x53f2('0x57')](_0x9dbd19,{'contexts':_0x522bed});fs['writeFileSync'](_0x53f2('0x63'),_0x15cbbc);return respondWithRpcPromise(_0x53f2('0x59'),'destroy',{'module':_0x53f2('0x5a')});})[_0x53f2('0x1e')](handleError(_0x1ed130,null));};