ebf38797b611528b065c254f2a8be42f6f71a84e
[motion2.git] / server / api / voiceExtension / voiceExtension.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 _0x2ded=['sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','status','end','json','count','offset','limit','set','Content-Range','reject','update','then','InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','filter','map','value','includes','type','UserProfileResource','destroy','sendStatus','error','stack','name','send','index','VoiceExtension','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','includeAll','include','findAll','catch','show','length','options','find','params','create','body','exten','concat','user','role','get','internal','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','description','cutdigits','context','addApplications','findOne','sequelize','transaction','VoiceExtensionId','bulkCreate','findAndCountAll','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path'];(function(_0x5edca2,_0xf7d424){var _0x45e3af=function(_0x142d13){while(--_0x142d13){_0x5edca2['push'](_0x5edca2['shift']());}};_0x45e3af(++_0xf7d424);}(_0x2ded,0x142));var _0xd2de=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2ded[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require(_0xd2de('0x0'));var emlformat=require(_0xd2de('0x1'));var rimraf=require(_0xd2de('0x2'));var zipdir=require(_0xd2de('0x3'));var jsonpatch=require(_0xd2de('0x4'));var rp=require(_0xd2de('0x5'));var moment=require(_0xd2de('0x6'));var BPromise=require(_0xd2de('0x7'));var Mustache=require(_0xd2de('0x8'));var util=require(_0xd2de('0x9'));var path=require(_0xd2de('0xa'));var sox=require(_0xd2de('0xb'));var csv=require(_0xd2de('0xc'));var ejs=require(_0xd2de('0xd'));var fs=require('fs');var _=require(_0xd2de('0xe'));var squel=require(_0xd2de('0xf'));var crypto=require(_0xd2de('0x10'));var jsforce=require('jsforce');var deskjs=require(_0xd2de('0x11'));var toCsv=require(_0xd2de('0xc'));var querystring=require(_0xd2de('0x12'));var Papa=require(_0xd2de('0x13'));var Redis=require(_0xd2de('0x14'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xd2de('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd2de('0x16'))('api');var utils=require(_0xd2de('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xd2de('0x18'));var db=require(_0xd2de('0x19'))['db'];config[_0xd2de('0x1a')]=_[_0xd2de('0x1b')](config['redis'],{'host':_0xd2de('0x1c'),'port':0x18eb});var socket=require(_0xd2de('0x1d'))(new Redis(config[_0xd2de('0x1a')]));require(_0xd2de('0x1e'))[_0xd2de('0x1f')](socket);function respondWithStatusCode(_0x452727,_0x98ce07){_0x98ce07=_0x98ce07||0xcc;return function(_0x1d93f8){if(_0x1d93f8){return _0x452727['sendStatus'](_0x98ce07);}return _0x452727[_0xd2de('0x20')](_0x98ce07)[_0xd2de('0x21')]();};}function respondWithResult(_0x3ebb18,_0x1b9f67){_0x1b9f67=_0x1b9f67||0xc8;return function(_0x13dd14){if(_0x13dd14){return _0x3ebb18[_0xd2de('0x20')](_0x1b9f67)[_0xd2de('0x22')](_0x13dd14);}};}function respondWithFilteredResult(_0x436e48,_0x21547d){return function(_0x50b19b){if(_0x50b19b){var _0x142e9f=_0x50b19b[_0xd2de('0x23')],_0x45ea9c=_0x21547d[_0xd2de('0x24')],_0x705342=_0x21547d[_0xd2de('0x24')]+_0x21547d[_0xd2de('0x25')],_0x50492d;if(_0x705342>=_0x142e9f){_0x705342=_0x142e9f;_0x50492d=0xc8;}else{_0x50492d=0xce;}_0x436e48[_0xd2de('0x20')](_0x50492d);return _0x436e48[_0xd2de('0x26')](_0xd2de('0x27'),_0x45ea9c+'-'+_0x705342+'/'+_0x142e9f)['json'](_0x50b19b);}return null;};}function patchUpdates(_0x311d91){return function(_0x16bb11){try{jsonpatch['apply'](_0x16bb11,_0x311d91,!![]);}catch(_0x3d55c1){return BPromise[_0xd2de('0x28')](_0x3d55c1);}return _0x16bb11['save']();};}function saveUpdates(_0x343dbe,_0x26777a){return function(_0x1e149c){if(_0x1e149c){return _0x1e149c[_0xd2de('0x29')](_0x343dbe)['then'](function(_0x2cf5ef){return _0x2cf5ef;});}return null;};}function removeEntity(_0x248cdd,_0xe4791a){return function(_0x10249b){if(_0x10249b){return _0x10249b['destroy']()[_0xd2de('0x2a')](function(){var _0x2b8d68=_0x10249b['get']({'plain':!![]});var _0x340030=[{'name':_0xd2de('0x2b'),'value':_0xd2de('0x2c'),'ignore':![]},{'name':_0xd2de('0x2d'),'value':_0xd2de('0x2e'),'ignore':![]},{'name':_0xd2de('0x2f'),'value':'internal','ignore':![]}];var _0x16a0ab=_(_0x340030)[_0xd2de('0x30')]('ignore')[_0xd2de('0x31')](_0xd2de('0x32'))[_0xd2de('0x32')]();if(_[_0xd2de('0x33')](_0x16a0ab,_0x2b8d68[_0xd2de('0x34')])){return;}var _0x402d98=_['find'](_0x340030,[_0xd2de('0x32'),_0x2b8d68[_0xd2de('0x34')]])['name'];return db[_0xd2de('0x35')][_0xd2de('0x36')]({'where':{'type':_0x402d98,'resourceId':_0x2b8d68['id']}})[_0xd2de('0x2a')](function(){return _0x10249b;});})['then'](function(){_0x248cdd['status'](0xcc)[_0xd2de('0x21')]();});}};}function handleEntityNotFound(_0x4a2b89,_0xfac02d){return function(_0xd2256c){if(!_0xd2256c){_0x4a2b89[_0xd2de('0x37')](0x194);}return _0xd2256c;};}function handleError(_0xe33af8,_0x3d5a12){_0x3d5a12=_0x3d5a12||0x1f4;return function(_0x14ce8b){logger[_0xd2de('0x38')](_0x14ce8b[_0xd2de('0x39')]);if(_0x14ce8b[_0xd2de('0x3a')]){delete _0x14ce8b[_0xd2de('0x3a')];}_0xe33af8[_0xd2de('0x20')](_0x3d5a12)[_0xd2de('0x3b')](_0x14ce8b);};}exports[_0xd2de('0x3c')]=function(_0x10b34b,_0x257f57){var _0x57a316={},_0x42d9d2={},_0x278e4c={'count':0x0,'rows':[]};var _0x42ad94=_[_0xd2de('0x31')](db[_0xd2de('0x3d')][_0xd2de('0x3e')],function(_0x9c55b1){return{'name':_0x9c55b1[_0xd2de('0x3f')],'type':_0x9c55b1[_0xd2de('0x34')][_0xd2de('0x40')]};});_0x42d9d2[_0xd2de('0x41')]=_[_0xd2de('0x31')](_0x42ad94,_0xd2de('0x3a'));_0x42d9d2[_0xd2de('0x42')]=_[_0xd2de('0x43')](_0x10b34b[_0xd2de('0x42')]);_0x42d9d2[_0xd2de('0x44')]=_[_0xd2de('0x45')](_0x42d9d2[_0xd2de('0x41')],_0x42d9d2[_0xd2de('0x42')]);_0x57a316['attributes']=_['intersection'](_0x42d9d2[_0xd2de('0x41')],qs[_0xd2de('0x46')](_0x10b34b[_0xd2de('0x42')][_0xd2de('0x46')]));_0x57a316[_0xd2de('0x47')]=_0x57a316[_0xd2de('0x47')]['length']?_0x57a316['attributes']:_0x42d9d2[_0xd2de('0x41')];if(!_0x10b34b[_0xd2de('0x42')][_0xd2de('0x48')](_0xd2de('0x49'))){_0x57a316[_0xd2de('0x25')]=qs[_0xd2de('0x25')](_0x10b34b['query'][_0xd2de('0x25')]);_0x57a316[_0xd2de('0x24')]=qs[_0xd2de('0x24')](_0x10b34b['query'][_0xd2de('0x24')]);}_0x57a316[_0xd2de('0x4a')]=qs[_0xd2de('0x4b')](_0x10b34b[_0xd2de('0x42')][_0xd2de('0x4b')]);_0x57a316[_0xd2de('0x4c')]=qs['filters'](_[_0xd2de('0x4d')](_0x10b34b[_0xd2de('0x42')],_0x42d9d2[_0xd2de('0x44')]),_0x42ad94);if(_0x10b34b[_0xd2de('0x42')][_0xd2de('0x30')]){_0x57a316['where']=_[_0xd2de('0x4e')](_0x57a316[_0xd2de('0x4c')],{'$or':_[_0xd2de('0x31')](_0x42ad94,function(_0x5697b7){if(_0x5697b7[_0xd2de('0x34')]!==_0xd2de('0x4f')){var _0x5efaec={};_0x5efaec[_0x5697b7[_0xd2de('0x3a')]]={'$like':'%'+_0x10b34b[_0xd2de('0x42')][_0xd2de('0x30')]+'%'};return _0x5efaec;}})});}_0x57a316=_['merge']({},_0x57a316,_0x10b34b['options']);var _0x2798ef={'where':_0x57a316[_0xd2de('0x4c')]};return db['VoiceExtension'][_0xd2de('0x23')](_0x2798ef)[_0xd2de('0x2a')](function(_0xf1843e){_0x278e4c[_0xd2de('0x23')]=_0xf1843e;if(_0x10b34b[_0xd2de('0x42')][_0xd2de('0x50')]){_0x57a316[_0xd2de('0x51')]=[{'all':!![]}];}return db[_0xd2de('0x3d')][_0xd2de('0x52')](_0x57a316);})['then'](function(_0x5af3cd){_0x278e4c['rows']=_0x5af3cd;return _0x278e4c;})[_0xd2de('0x2a')](respondWithFilteredResult(_0x257f57,_0x57a316))[_0xd2de('0x53')](handleError(_0x257f57,null));};exports[_0xd2de('0x54')]=function(_0x25835e,_0x130c28){var _0x4c84ee={'raw':![],'where':{'id':_0x25835e['params']['id']}},_0x24818f={};_0x24818f[_0xd2de('0x41')]=_[_0xd2de('0x43')](db[_0xd2de('0x3d')][_0xd2de('0x3e')]);_0x24818f[_0xd2de('0x42')]=_[_0xd2de('0x43')](_0x25835e[_0xd2de('0x42')]);_0x24818f[_0xd2de('0x44')]=_['intersection'](_0x24818f[_0xd2de('0x41')],_0x24818f['query']);_0x4c84ee[_0xd2de('0x47')]=_[_0xd2de('0x45')](_0x24818f['model'],qs[_0xd2de('0x46')](_0x25835e[_0xd2de('0x42')]['fields']));_0x4c84ee[_0xd2de('0x47')]=_0x4c84ee[_0xd2de('0x47')][_0xd2de('0x55')]?_0x4c84ee[_0xd2de('0x47')]:_0x24818f[_0xd2de('0x41')];if(_0x25835e[_0xd2de('0x42')][_0xd2de('0x50')]){_0x4c84ee[_0xd2de('0x51')]=[{'all':!![]}];}_0x4c84ee=_[_0xd2de('0x4e')]({},_0x4c84ee,_0x25835e[_0xd2de('0x56')]);return db[_0xd2de('0x3d')][_0xd2de('0x57')](_0x4c84ee)[_0xd2de('0x2a')](handleEntityNotFound(_0x130c28,null))[_0xd2de('0x2a')](respondWithResult(_0x130c28,null))[_0xd2de('0x53')](handleError(_0x130c28,null));};exports[_0xd2de('0x36')]=function(_0x2ec28c,_0x106152){return db[_0xd2de('0x3d')][_0xd2de('0x57')]({'where':{'id':_0x2ec28c[_0xd2de('0x58')]['id']}})['then'](handleEntityNotFound(_0x106152,null))['then'](removeEntity(_0x106152,null))[_0xd2de('0x53')](handleError(_0x106152,null));};exports[_0xd2de('0x59')]=function(_0x170eef,_0x1d5b84){if(_0x170eef[_0xd2de('0x5a')][_0xd2de('0x34')]===_0xd2de('0x2e')&&!_['startsWith'](_0x170eef[_0xd2de('0x5a')][_0xd2de('0x5b')],'_')){_0x170eef[_0xd2de('0x5a')][_0xd2de('0x5b')]='_'[_0xd2de('0x5c')](_0x170eef['body'][_0xd2de('0x5b')]);}return db[_0xd2de('0x3d')]['create'](_0x170eef[_0xd2de('0x5a')],{'raw':![]})[_0xd2de('0x2a')](function(_0xc0b141){var _0xa9796d=_0x170eef[_0xd2de('0x5d')]['get']({'plain':!![]});if(!_0xa9796d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xa9796d[_0xd2de('0x5e')]===_0xd2de('0x5d')){var _0x2cc78b=_0xc0b141[_0xd2de('0x5f')]({'plain':!![]});var _0x35d9c7=[{'name':_0xd2de('0x2b'),'value':'inbound'},{'name':_0xd2de('0x2d'),'value':_0xd2de('0x2e')},{'name':_0xd2de('0x2f'),'value':_0xd2de('0x60')}];var _0x270c2b=_[_0xd2de('0x57')](_0x35d9c7,[_0xd2de('0x32'),_0x2cc78b[_0xd2de('0x34')]])[_0xd2de('0x3a')];return db[_0xd2de('0x61')]['find']({'where':{'name':_0x270c2b,'userProfileId':_0xa9796d[_0xd2de('0x62')]},'raw':!![]})['then'](function(_0x1167b9){if(_0x1167b9&&_0x1167b9[_0xd2de('0x63')]===0x0){return db[_0xd2de('0x35')][_0xd2de('0x59')]({'name':_0x2cc78b[_0xd2de('0x3a')],'resourceId':_0x2cc78b['id'],'type':_0x1167b9[_0xd2de('0x3a')],'sectionId':_0x1167b9['id']},{})[_0xd2de('0x2a')](function(){return _0xc0b141;});}else{return _0xc0b141;}})[_0xd2de('0x53')](function(_0x3cdd17){logger[_0xd2de('0x38')](_0xd2de('0x64'),_0x3cdd17);throw _0x3cdd17;});}return _0xc0b141;})[_0xd2de('0x2a')](respondWithResult(_0x1d5b84,0xc9))[_0xd2de('0x53')](handleError(_0x1d5b84,null));};exports[_0xd2de('0x29')]=function(_0x15a66a,_0x53f41f){if(_0x15a66a[_0xd2de('0x5a')]['id']){delete _0x15a66a[_0xd2de('0x5a')]['id'];}return db[_0xd2de('0x3d')]['find']({'where':{'id':_0x15a66a[_0xd2de('0x58')]['id']}})[_0xd2de('0x2a')](handleEntityNotFound(_0x53f41f,null))[_0xd2de('0x2a')](function(_0x488bfb){if(_0x488bfb){return db['VoiceExtension'][_0xd2de('0x29')](_[_0xd2de('0x4d')](_0x15a66a['body'],[_0xd2de('0x5b'),'context',_0xd2de('0x65'),'recordingFormat',_0xd2de('0x66'),'mandatoryDisposition']),{'where':{'context':_0x488bfb[_0xd2de('0x67')],'exten':_0x488bfb[_0xd2de('0x5b')]},'individualHooks':!![]})[_0xd2de('0x2a')](function(_0x4bc1e8){return _0x4bc1e8;});}return null;})[_0xd2de('0x2a')](respondWithStatusCode(_0x53f41f,null))[_0xd2de('0x53')](handleError(_0x53f41f,null));};exports[_0xd2de('0x68')]=function(_0x3f304d,_0x586e21,_0x23be7b){return db['VoiceExtension'][_0xd2de('0x69')]({'where':{'id':_0x3f304d[_0xd2de('0x58')]['id']}})[_0xd2de('0x2a')](handleEntityNotFound(_0x586e21,null))['then'](function(_0x480412){if(_0x480412){return db[_0xd2de('0x6a')][_0xd2de('0x6b')](function(_0x595ad3){return db[_0xd2de('0x3d')][_0xd2de('0x36')]({'where':{'VoiceExtensionId':_0x3f304d['params']['id']},'transaction':_0x595ad3})[_0xd2de('0x2a')](function(_0x379490){var _0x47c452=_[_0xd2de('0x31')](_0x3f304d[_0xd2de('0x5a')],function(_0x51eba6){_0x51eba6[_0xd2de('0x6c')]=_0x3f304d[_0xd2de('0x58')]['id'];return _0x51eba6;});return db['VoiceExtension'][_0xd2de('0x6d')](_0x47c452,{'transaction':_0x595ad3});});})[_0xd2de('0x2a')](function(){return db[_0xd2de('0x3d')][_0xd2de('0x6e')]({'where':{'isApp':!![],'VoiceExtensionId':_0x3f304d[_0xd2de('0x58')]['id']},'order':'cast(priority\x20as\x20unsigned)'});});}})[_0xd2de('0x2a')](respondWithResult(_0x586e21,null))[_0xd2de('0x53')](handleError(_0x586e21,null));};