a6fa46ebc63e348245fe92f17381e652d907bdb6
[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 _0xd5f5=['mustache','util','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','request','then','info','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','error','VoiceContext,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','json','count','offset','Content-Range','reject','save','update','Contexts','UserProfileResource','stack','name','send','index','VoiceContext','rawAttributes','fieldName','type','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','filter','map','VIRTUAL','options','includeAll','findAll','rows','show','params','filtears','include','merge','find','create','body','readFileSync','join','utf8','render','writeFileSync','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','root','/etc/asterisk/extensions_xcally_contexts.conf','destroy','server/files/templates/context.ejs','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','bluebird'];(function(_0x35c151,_0x5ec5ae){var _0xb958f9=function(_0x2407b){while(--_0x2407b){_0x35c151['push'](_0x35c151['shift']());}};_0xb958f9(++_0x5ec5ae);}(_0xd5f5,0xcc));var _0x5d5f=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0xd5f5[_0x19950b];return _0x3c6b41;};'use strict';var pdf=require(_0x5d5f('0x0'));var emlformat=require(_0x5d5f('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x5d5f('0x2'));var jsonpatch=require(_0x5d5f('0x3'));var rp=require(_0x5d5f('0x4'));var moment=require('moment');var BPromise=require(_0x5d5f('0x5'));var Mustache=require(_0x5d5f('0x6'));var util=require(_0x5d5f('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x5d5f('0x8'));var ejs=require(_0x5d5f('0x9'));var fs=require('fs');var _=require(_0x5d5f('0xa'));var squel=require('squel');var crypto=require(_0x5d5f('0xb'));var jsforce=require(_0x5d5f('0xc'));var deskjs=require(_0x5d5f('0xd'));var toCsv=require(_0x5d5f('0x8'));var querystring=require(_0x5d5f('0xe'));var Papa=require('papaparse');var Redis=require(_0x5d5f('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x5d5f('0x10'));var hardwareService=require(_0x5d5f('0x11'));var logger=require(_0x5d5f('0x12'))(_0x5d5f('0x13'));var utils=require(_0x5d5f('0x14'));var config=require(_0x5d5f('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x5d5f('0x16'))['db'];var jayson=require(_0x5d5f('0x17'));var client=jayson[_0x5d5f('0x18')]['http']({'port':0x232a});function respondWithRpcPromise(_0x165783,_0x30713a,_0x33f785,_0x4c7aed){return new BPromise(function(_0x1f728d,_0x1f2ee0){var _0x52d805=_0x4c7aed||client;return _0x52d805[_0x5d5f('0x19')](_0x165783,_0x33f785)[_0x5d5f('0x1a')](function(_0x542aaf){logger[_0x5d5f('0x1b')]('VoiceContext,\x20%s,\x20%s',_0x30713a,_0x5d5f('0x1c'));logger[_0x5d5f('0x1d')](_0x5d5f('0x1e'),_0x30713a,_0x5d5f('0x1c'),JSON['stringify'](_0x542aaf));if(_0x542aaf[_0x5d5f('0x1f')]){if(_0x542aaf[_0x5d5f('0x1f')]['code']===0x1f4){logger['error'](_0x5d5f('0x20'),_0x30713a,_0x542aaf[_0x5d5f('0x1f')][_0x5d5f('0x21')]);return _0x1f2ee0(_0x542aaf[_0x5d5f('0x1f')]['message']);}logger[_0x5d5f('0x1f')](_0x5d5f('0x20'),_0x30713a,_0x542aaf[_0x5d5f('0x1f')][_0x5d5f('0x21')]);return _0x1f728d(_0x542aaf[_0x5d5f('0x1f')][_0x5d5f('0x21')]);}else{logger[_0x5d5f('0x1b')](_0x5d5f('0x20'),_0x30713a,_0x5d5f('0x1c'));_0x1f728d(_0x542aaf[_0x5d5f('0x22')][_0x5d5f('0x21')]);}})[_0x5d5f('0x23')](function(_0xed3a45){logger['error'](_0x5d5f('0x20'),_0x30713a,_0xed3a45);_0x1f2ee0(_0xed3a45);});});}function respondWithStatusCode(_0x27c77a,_0x537a05){_0x537a05=_0x537a05||0xcc;return function(_0x47a249){if(_0x47a249){return _0x27c77a[_0x5d5f('0x24')](_0x537a05);}return _0x27c77a[_0x5d5f('0x25')](_0x537a05)[_0x5d5f('0x26')]();};}function respondWithResult(_0x19966d,_0x1811f7){_0x1811f7=_0x1811f7||0xc8;return function(_0x163d28){if(_0x163d28){return _0x19966d['status'](_0x1811f7)[_0x5d5f('0x27')](_0x163d28);}};}function respondWithFilteredResult(_0x3b8259,_0x2f1920){return function(_0x2cadb2){if(_0x2cadb2){var _0x3fa4e5=_0x2cadb2[_0x5d5f('0x28')],_0x10fca0=_0x2f1920[_0x5d5f('0x29')],_0x4c728d=_0x2f1920[_0x5d5f('0x29')]+_0x2f1920['limit'],_0x20d699;if(_0x4c728d>=_0x3fa4e5){_0x4c728d=_0x3fa4e5;_0x20d699=0xc8;}else{_0x20d699=0xce;}_0x3b8259[_0x5d5f('0x25')](_0x20d699);return _0x3b8259['set'](_0x5d5f('0x2a'),_0x10fca0+'-'+_0x4c728d+'/'+_0x3fa4e5)['json'](_0x2cadb2);}return null;};}function patchUpdates(_0x33051e){return function(_0x219182){try{jsonpatch['apply'](_0x219182,_0x33051e,!![]);}catch(_0x2b47c3){return BPromise[_0x5d5f('0x2b')](_0x2b47c3);}return _0x219182[_0x5d5f('0x2c')]();};}function saveUpdates(_0x2b268e,_0x424d8e){return function(_0x5d3c2c){if(_0x5d3c2c){return _0x5d3c2c[_0x5d5f('0x2d')](_0x2b268e)[_0x5d5f('0x1a')](function(_0x48de0d){return _0x48de0d;});}return null;};}function removeEntity(_0x39b70a,_0x1547b9){return function(_0x4d717c){if(_0x4d717c){return _0x4d717c['destroy']()[_0x5d5f('0x1a')](function(){var _0x16062b=_0x4d717c['get']({'plain':!![]});var _0x2e35ba=_0x5d5f('0x2e');return db[_0x5d5f('0x2f')]['destroy']({'where':{'type':_0x2e35ba,'resourceId':_0x16062b['id']}})['then'](function(){return _0x4d717c;});})[_0x5d5f('0x1a')](function(){_0x39b70a[_0x5d5f('0x25')](0xcc)[_0x5d5f('0x26')]();});}};}function handleEntityNotFound(_0x8ea181,_0x5d5248){return function(_0x5bfd6d){if(!_0x5bfd6d){_0x8ea181[_0x5d5f('0x24')](0x194);}return _0x5bfd6d;};}function handleError(_0x5e280a,_0x588d6f){_0x588d6f=_0x588d6f||0x1f4;return function(_0x103b3f){logger[_0x5d5f('0x1f')](_0x103b3f[_0x5d5f('0x30')]);if(_0x103b3f[_0x5d5f('0x31')]){delete _0x103b3f[_0x5d5f('0x31')];}_0x5e280a['status'](_0x588d6f)[_0x5d5f('0x32')](_0x103b3f);};}exports[_0x5d5f('0x33')]=function(_0x409455,_0xaccbb0){var _0x22864f={},_0x17eeee={},_0x3a4775={'count':0x0,'rows':[]};var _0x48f758=_['map'](db[_0x5d5f('0x34')][_0x5d5f('0x35')],function(_0x4e215e){return{'name':_0x4e215e[_0x5d5f('0x36')],'type':_0x4e215e[_0x5d5f('0x37')][_0x5d5f('0x38')]};});_0x17eeee['model']=_['map'](_0x48f758,_0x5d5f('0x31'));_0x17eeee[_0x5d5f('0x39')]=_[_0x5d5f('0x3a')](_0x409455[_0x5d5f('0x39')]);_0x17eeee['filters']=_[_0x5d5f('0x3b')](_0x17eeee[_0x5d5f('0x3c')],_0x17eeee[_0x5d5f('0x39')]);_0x22864f[_0x5d5f('0x3d')]=_['intersection'](_0x17eeee['model'],qs[_0x5d5f('0x3e')](_0x409455[_0x5d5f('0x39')][_0x5d5f('0x3e')]));_0x22864f[_0x5d5f('0x3d')]=_0x22864f[_0x5d5f('0x3d')][_0x5d5f('0x3f')]?_0x22864f[_0x5d5f('0x3d')]:_0x17eeee[_0x5d5f('0x3c')];if(!_0x409455[_0x5d5f('0x39')][_0x5d5f('0x40')](_0x5d5f('0x41'))){_0x22864f[_0x5d5f('0x42')]=qs[_0x5d5f('0x42')](_0x409455[_0x5d5f('0x39')][_0x5d5f('0x42')]);_0x22864f['offset']=qs[_0x5d5f('0x29')](_0x409455['query'][_0x5d5f('0x29')]);}_0x22864f[_0x5d5f('0x43')]=qs[_0x5d5f('0x44')](_0x409455[_0x5d5f('0x39')][_0x5d5f('0x44')]);_0x22864f[_0x5d5f('0x45')]=qs[_0x5d5f('0x46')](_[_0x5d5f('0x47')](_0x409455[_0x5d5f('0x39')],_0x17eeee['filters']),_0x48f758);if(_0x409455['query'][_0x5d5f('0x48')]){_0x22864f[_0x5d5f('0x45')]=_['merge'](_0x22864f['where'],{'$or':_[_0x5d5f('0x49')](_0x48f758,function(_0x3fca8c){if(_0x3fca8c[_0x5d5f('0x37')]!==_0x5d5f('0x4a')){var _0x57fceb={};_0x57fceb[_0x3fca8c[_0x5d5f('0x31')]]={'$like':'%'+_0x409455[_0x5d5f('0x39')][_0x5d5f('0x48')]+'%'};return _0x57fceb;}})});}_0x22864f=_['merge']({},_0x22864f,_0x409455[_0x5d5f('0x4b')]);var _0x1b5630={'where':_0x22864f['where']};return db[_0x5d5f('0x34')][_0x5d5f('0x28')](_0x1b5630)['then'](function(_0x51f634){_0x3a4775['count']=_0x51f634;if(_0x409455[_0x5d5f('0x39')][_0x5d5f('0x4c')]){_0x22864f['include']=[{'all':!![]}];}return db[_0x5d5f('0x34')][_0x5d5f('0x4d')](_0x22864f);})[_0x5d5f('0x1a')](function(_0x897d8d){_0x3a4775[_0x5d5f('0x4e')]=_0x897d8d;return _0x3a4775;})[_0x5d5f('0x1a')](respondWithFilteredResult(_0xaccbb0,_0x22864f))[_0x5d5f('0x23')](handleError(_0xaccbb0,null));};exports[_0x5d5f('0x4f')]=function(_0xaa247c,_0x3af9bf){var _0x4c2f6e={'raw':![],'where':{'id':_0xaa247c[_0x5d5f('0x50')]['id']}},_0x235928={};_0x235928[_0x5d5f('0x3c')]=_[_0x5d5f('0x3a')](db[_0x5d5f('0x34')][_0x5d5f('0x35')]);_0x235928[_0x5d5f('0x39')]=_[_0x5d5f('0x3a')](_0xaa247c[_0x5d5f('0x39')]);_0x235928[_0x5d5f('0x51')]=_[_0x5d5f('0x3b')](_0x235928['model'],_0x235928[_0x5d5f('0x39')]);_0x4c2f6e[_0x5d5f('0x3d')]=_[_0x5d5f('0x3b')](_0x235928[_0x5d5f('0x3c')],qs[_0x5d5f('0x3e')](_0xaa247c[_0x5d5f('0x39')][_0x5d5f('0x3e')]));_0x4c2f6e[_0x5d5f('0x3d')]=_0x4c2f6e['attributes'][_0x5d5f('0x3f')]?_0x4c2f6e['attributes']:_0x235928['model'];if(_0xaa247c[_0x5d5f('0x39')]['includeAll']){_0x4c2f6e[_0x5d5f('0x52')]=[{'all':!![]}];}_0x4c2f6e=_[_0x5d5f('0x53')]({},_0x4c2f6e,_0xaa247c[_0x5d5f('0x4b')]);return db['VoiceContext'][_0x5d5f('0x54')](_0x4c2f6e)[_0x5d5f('0x1a')](handleEntityNotFound(_0x3af9bf,null))[_0x5d5f('0x1a')](respondWithResult(_0x3af9bf,null))[_0x5d5f('0x23')](handleError(_0x3af9bf,null));};exports[_0x5d5f('0x55')]=function(_0x3ad560,_0x777c5b,_0x1f58e7){var _0x514c85;return db[_0x5d5f('0x34')][_0x5d5f('0x55')](_0x3ad560[_0x5d5f('0x56')],{'raw':!![]})[_0x5d5f('0x1a')](function(_0x540149){_0x514c85=_0x540149;return db['VoiceContext'][_0x5d5f('0x4d')]({'raw':!![]});})[_0x5d5f('0x1a')](function(_0x5c3db6){var _0x4240fb=fs[_0x5d5f('0x57')](path[_0x5d5f('0x58')](config['root'],'server/files/templates/context.ejs'),_0x5d5f('0x59'));var _0x39d766=ejs[_0x5d5f('0x5a')](_0x4240fb,{'contexts':_0x5c3db6||[]});fs[_0x5d5f('0x5b')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x39d766);})[_0x5d5f('0x1a')](function(){return respondWithRpcPromise(_0x5d5f('0x5c'),_0x5d5f('0x55'),{'module':_0x5d5f('0x5d')});})[_0x5d5f('0x1a')](function(){var _0x2a4829=_0x3ad560[_0x5d5f('0x5e')]['get']({'plain':!![]});if(!_0x2a4829)throw new Error(_0x5d5f('0x5f'));if(_0x2a4829[_0x5d5f('0x60')]===_0x5d5f('0x5e')){var _0x407345=_0x514c85[_0x5d5f('0x61')]({'plain':!![]});return db[_0x5d5f('0x62')][_0x5d5f('0x54')]({'where':{'name':_0x5d5f('0x2e'),'userProfileId':_0x2a4829[_0x5d5f('0x63')]},'raw':!![]})[_0x5d5f('0x1a')](function(_0x58ce4e){if(_0x58ce4e&&_0x58ce4e['autoAssociation']===0x0){return db[_0x5d5f('0x2f')][_0x5d5f('0x55')]({'name':_0x407345[_0x5d5f('0x31')],'resourceId':_0x407345['id'],'type':_0x58ce4e[_0x5d5f('0x31')],'sectionId':_0x58ce4e['id']},{})['then'](function(){return _0x514c85;});}else{return _0x514c85;}})[_0x5d5f('0x23')](function(_0x5d3c3a){logger[_0x5d5f('0x1f')](_0x5d5f('0x64'),_0x5d3c3a);throw _0x5d3c3a;});}return _0x514c85;})[_0x5d5f('0x1a')](respondWithResult(_0x777c5b,0xc9))[_0x5d5f('0x23')](handleError(_0x777c5b,null));};exports[_0x5d5f('0x2d')]=function(_0x26bcd0,_0x444786,_0x2a1716){var _0x12b524;return db[_0x5d5f('0x34')]['find']({'where':{'id':_0x26bcd0[_0x5d5f('0x50')]['id']}})[_0x5d5f('0x1a')](handleEntityNotFound(_0x444786,null))[_0x5d5f('0x1a')](saveUpdates(_0x26bcd0[_0x5d5f('0x56')],null))[_0x5d5f('0x1a')](function(_0x28c8e1){if(_0x28c8e1){_0x12b524=_0x28c8e1;return db[_0x5d5f('0x34')]['findAll']({'raw':!![]});}})['then'](function(_0x20e5d7){var _0x2515bd=fs[_0x5d5f('0x57')](path[_0x5d5f('0x58')](config[_0x5d5f('0x65')],'server/files/templates/context.ejs'),_0x5d5f('0x59'));var _0x4db275=ejs[_0x5d5f('0x5a')](_0x2515bd,{'contexts':_0x20e5d7||[]});fs[_0x5d5f('0x5b')](_0x5d5f('0x66'),_0x4db275);})[_0x5d5f('0x1a')](function(){return respondWithRpcPromise(_0x5d5f('0x5c'),'update',{'module':_0x5d5f('0x5d')});})[_0x5d5f('0x1a')](function(){return _0x12b524;})[_0x5d5f('0x1a')](respondWithResult(_0x444786,null))[_0x5d5f('0x23')](handleError(_0x444786,null));};exports[_0x5d5f('0x67')]=function(_0x31a708,_0x26a9ab,_0x318750){var _0x3a1460;return db[_0x5d5f('0x34')][_0x5d5f('0x54')]({'where':{'id':_0x31a708[_0x5d5f('0x50')]['id']}})[_0x5d5f('0x1a')](handleEntityNotFound(_0x26a9ab,null))['then'](removeEntity(_0x26a9ab,null))['then'](function(){return db[_0x5d5f('0x34')][_0x5d5f('0x4d')]({'raw':!![]});})['then'](function(_0x18f4d0){var _0x3bb203=fs[_0x5d5f('0x57')](path['join'](config[_0x5d5f('0x65')],_0x5d5f('0x68')),_0x5d5f('0x59'));var _0x58ed96=ejs[_0x5d5f('0x5a')](_0x3bb203,{'contexts':_0x18f4d0});fs[_0x5d5f('0x5b')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x58ed96);return respondWithRpcPromise(_0x5d5f('0x5c'),'destroy',{'module':'chan_sip.so'});})[_0x5d5f('0x23')](handleError(_0x26a9ab,null));};