Built motion from commit 19a84241.|2.5.34
[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 _0x12ac=['filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','options','include','findAll','rows','catch','show','params','rawAttributes','fields','includeAll','create','body','startsWith','exten','concat','user','get','inbound','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','recordingFormat','cutdigits','mandatoryDisposition','alias','addApplications','findOne','transaction','VoiceExtensionId','isApp','rewriteDial','true','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','socket.io-emitter','register','sendStatus','end','status','json','offset','limit','undefined','count','set','reject','save','then','InboundRoutes','OutboundRoutes','outbound','InternalRoutes','internal','filter','ignore','value','includes','type','find','name','UserProfileResource','destroy','error','stack','index','map','VoiceExtension','fieldName','key','model','query','keys'];(function(_0x349bda,_0x3179b4){var _0x184f7c=function(_0x1bed25){while(--_0x1bed25){_0x349bda['push'](_0x349bda['shift']());}};_0x184f7c(++_0x3179b4);}(_0x12ac,0x1ee));var _0xc12a=function(_0x40f645,_0x4b8450){_0x40f645=_0x40f645-0x0;var _0x14acd9=_0x12ac[_0x40f645];return _0x14acd9;};'use strict';var emlformat=require(_0xc12a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc12a('0x1'));var jsonpatch=require(_0xc12a('0x2'));var rp=require(_0xc12a('0x3'));var moment=require('moment');var BPromise=require(_0xc12a('0x4'));var Mustache=require(_0xc12a('0x5'));var util=require(_0xc12a('0x6'));var path=require('path');var sox=require(_0xc12a('0x7'));var csv=require('to-csv');var ejs=require(_0xc12a('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0xc12a('0x9'));var jsforce=require(_0xc12a('0xa'));var deskjs=require(_0xc12a('0xb'));var toCsv=require(_0xc12a('0xc'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xc12a('0xd'));var authService=require(_0xc12a('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc12a('0xf'));var logger=require(_0xc12a('0x10'))(_0xc12a('0x11'));var utils=require(_0xc12a('0x12'));var config=require(_0xc12a('0x13'));var licenseUtil=require(_0xc12a('0x14'));var db=require('../../mysqldb')['db'];config[_0xc12a('0x15')]=_[_0xc12a('0x16')](config[_0xc12a('0x15')],{'host':'localhost','port':0x18eb});var socket=require(_0xc12a('0x17'))(new Redis(config['redis']));require('./voiceExtension.socket')[_0xc12a('0x18')](socket);function respondWithStatusCode(_0x39fd04,_0x6b06cd){_0x6b06cd=_0x6b06cd||0xcc;return function(_0xa10baa){if(_0xa10baa){return _0x39fd04[_0xc12a('0x19')](_0x6b06cd);}return _0x39fd04['status'](_0x6b06cd)[_0xc12a('0x1a')]();};}function respondWithResult(_0x512ea4,_0x3b22fd){_0x3b22fd=_0x3b22fd||0xc8;return function(_0x5634b1){if(_0x5634b1){return _0x512ea4[_0xc12a('0x1b')](_0x3b22fd)[_0xc12a('0x1c')](_0x5634b1);}};}function respondWithFilteredResult(_0x864309,_0x4b2b1d){return function(_0x3f951d){if(_0x3f951d){var _0x19a790=typeof _0x4b2b1d[_0xc12a('0x1d')]==='undefined'&&typeof _0x4b2b1d[_0xc12a('0x1e')]===_0xc12a('0x1f');var _0x5274e6=_0x3f951d[_0xc12a('0x20')];var _0x2476a5=_0x19a790?0x0:_0x4b2b1d[_0xc12a('0x1d')];var _0x3cc718=_0x19a790?_0x3f951d[_0xc12a('0x20')]:_0x4b2b1d['offset']+_0x4b2b1d[_0xc12a('0x1e')];var _0x53e0a5;if(_0x3cc718>=_0x5274e6){_0x3cc718=_0x5274e6;_0x53e0a5=0xc8;}else{_0x53e0a5=0xce;}_0x864309[_0xc12a('0x1b')](_0x53e0a5);return _0x864309[_0xc12a('0x21')]('Content-Range',_0x2476a5+'-'+_0x3cc718+'/'+_0x5274e6)[_0xc12a('0x1c')](_0x3f951d);}return null;};}function patchUpdates(_0x5567ca){return function(_0x593f59){try{jsonpatch['apply'](_0x593f59,_0x5567ca,!![]);}catch(_0x2123ce){return BPromise[_0xc12a('0x22')](_0x2123ce);}return _0x593f59[_0xc12a('0x23')]();};}function saveUpdates(_0x57f4c0,_0x6a510f){return function(_0xf29bc2){if(_0xf29bc2){return _0xf29bc2['update'](_0x57f4c0)[_0xc12a('0x24')](function(_0x41daf0){return _0x41daf0;});}return null;};}function removeEntity(_0x1160b4,_0x3a5c02){return function(_0x5590db){if(_0x5590db){return _0x5590db['destroy']()[_0xc12a('0x24')](function(){var _0x114960=_0x5590db['get']({'plain':!![]});var _0x1717c3=[{'name':_0xc12a('0x25'),'value':'inbound','ignore':![]},{'name':_0xc12a('0x26'),'value':_0xc12a('0x27'),'ignore':![]},{'name':_0xc12a('0x28'),'value':_0xc12a('0x29'),'ignore':![]}];var _0xe9ea9d=_(_0x1717c3)[_0xc12a('0x2a')](_0xc12a('0x2b'))['map'](_0xc12a('0x2c'))[_0xc12a('0x2c')]();if(_[_0xc12a('0x2d')](_0xe9ea9d,_0x114960[_0xc12a('0x2e')])){return;}var _0x7dc39c=_[_0xc12a('0x2f')](_0x1717c3,[_0xc12a('0x2c'),_0x114960[_0xc12a('0x2e')]])[_0xc12a('0x30')];return db[_0xc12a('0x31')][_0xc12a('0x32')]({'where':{'type':_0x7dc39c,'resourceId':_0x114960['id']}})[_0xc12a('0x24')](function(){return _0x5590db;});})['then'](function(){_0x1160b4[_0xc12a('0x1b')](0xcc)[_0xc12a('0x1a')]();});}};}function handleEntityNotFound(_0xeb9e0a,_0x4fd479){return function(_0x3060fa){if(!_0x3060fa){_0xeb9e0a['sendStatus'](0x194);}return _0x3060fa;};}function handleError(_0x4d036b,_0x2ed110){_0x2ed110=_0x2ed110||0x1f4;return function(_0x55aafe){logger[_0xc12a('0x33')](_0x55aafe[_0xc12a('0x34')]);if(_0x55aafe[_0xc12a('0x30')]){delete _0x55aafe[_0xc12a('0x30')];}_0x4d036b[_0xc12a('0x1b')](_0x2ed110)['send'](_0x55aafe);};}exports[_0xc12a('0x35')]=function(_0x5c9d60,_0x3dfceb){var _0x12340b={},_0x43be49={},_0x330bcc={'count':0x0,'rows':[]};var _0x111a8a=_[_0xc12a('0x36')](db[_0xc12a('0x37')]['rawAttributes'],function(_0x3a61a8){return{'name':_0x3a61a8[_0xc12a('0x38')],'type':_0x3a61a8[_0xc12a('0x2e')][_0xc12a('0x39')]};});_0x43be49[_0xc12a('0x3a')]=_[_0xc12a('0x36')](_0x111a8a,_0xc12a('0x30'));_0x43be49[_0xc12a('0x3b')]=_[_0xc12a('0x3c')](_0x5c9d60[_0xc12a('0x3b')]);_0x43be49[_0xc12a('0x3d')]=_[_0xc12a('0x3e')](_0x43be49['model'],_0x43be49['query']);_0x12340b[_0xc12a('0x3f')]=_[_0xc12a('0x3e')](_0x43be49[_0xc12a('0x3a')],qs['fields'](_0x5c9d60['query']['fields']));_0x12340b['attributes']=_0x12340b['attributes'][_0xc12a('0x40')]?_0x12340b[_0xc12a('0x3f')]:_0x43be49[_0xc12a('0x3a')];if(!_0x5c9d60[_0xc12a('0x3b')][_0xc12a('0x41')](_0xc12a('0x42'))){_0x12340b[_0xc12a('0x1e')]=qs[_0xc12a('0x1e')](_0x5c9d60['query'][_0xc12a('0x1e')]);_0x12340b[_0xc12a('0x1d')]=qs[_0xc12a('0x1d')](_0x5c9d60[_0xc12a('0x3b')][_0xc12a('0x1d')]);}_0x12340b[_0xc12a('0x43')]=qs[_0xc12a('0x44')](_0x5c9d60[_0xc12a('0x3b')][_0xc12a('0x44')]);_0x12340b['where']=qs[_0xc12a('0x3d')](_[_0xc12a('0x45')](_0x5c9d60['query'],_0x43be49['filters']),_0x111a8a);if(_0x5c9d60[_0xc12a('0x3b')][_0xc12a('0x2a')]){_0x12340b[_0xc12a('0x46')]=_['merge'](_0x12340b[_0xc12a('0x46')],{'$or':_[_0xc12a('0x36')](_0x111a8a,function(_0x3c6cdc){if(_0x3c6cdc[_0xc12a('0x2e')]!=='VIRTUAL'){var _0x3d1220={};_0x3d1220[_0x3c6cdc[_0xc12a('0x30')]]={'$like':'%'+_0x5c9d60[_0xc12a('0x3b')][_0xc12a('0x2a')]+'%'};return _0x3d1220;}})});}_0x12340b=_[_0xc12a('0x47')]({},_0x12340b,_0x5c9d60[_0xc12a('0x48')]);var _0x291923={'where':_0x12340b[_0xc12a('0x46')]};return db['VoiceExtension'][_0xc12a('0x20')](_0x291923)[_0xc12a('0x24')](function(_0x1a9a1b){_0x330bcc[_0xc12a('0x20')]=_0x1a9a1b;if(_0x5c9d60['query']['includeAll']){_0x12340b[_0xc12a('0x49')]=[{'all':!![]}];}return db['VoiceExtension'][_0xc12a('0x4a')](_0x12340b);})['then'](function(_0x391ead){_0x330bcc[_0xc12a('0x4b')]=_0x391ead;return _0x330bcc;})[_0xc12a('0x24')](respondWithFilteredResult(_0x3dfceb,_0x12340b))[_0xc12a('0x4c')](handleError(_0x3dfceb,null));};exports[_0xc12a('0x4d')]=function(_0x4279d5,_0x4b1bfc){var _0x521ec7={'raw':![],'where':{'id':_0x4279d5[_0xc12a('0x4e')]['id']}},_0x2e261d={};_0x2e261d['model']=_['keys'](db['VoiceExtension'][_0xc12a('0x4f')]);_0x2e261d[_0xc12a('0x3b')]=_[_0xc12a('0x3c')](_0x4279d5[_0xc12a('0x3b')]);_0x2e261d[_0xc12a('0x3d')]=_[_0xc12a('0x3e')](_0x2e261d[_0xc12a('0x3a')],_0x2e261d['query']);_0x521ec7[_0xc12a('0x3f')]=_['intersection'](_0x2e261d[_0xc12a('0x3a')],qs[_0xc12a('0x50')](_0x4279d5[_0xc12a('0x3b')][_0xc12a('0x50')]));_0x521ec7[_0xc12a('0x3f')]=_0x521ec7['attributes']['length']?_0x521ec7[_0xc12a('0x3f')]:_0x2e261d[_0xc12a('0x3a')];if(_0x4279d5[_0xc12a('0x3b')][_0xc12a('0x51')]){_0x521ec7['include']=[{'all':!![]}];}_0x521ec7=_[_0xc12a('0x47')]({},_0x521ec7,_0x4279d5[_0xc12a('0x48')]);return db[_0xc12a('0x37')][_0xc12a('0x2f')](_0x521ec7)['then'](handleEntityNotFound(_0x4b1bfc,null))['then'](respondWithResult(_0x4b1bfc,null))['catch'](handleError(_0x4b1bfc,null));};exports[_0xc12a('0x32')]=function(_0x4c7833,_0x2dceec){return db[_0xc12a('0x37')][_0xc12a('0x2f')]({'where':{'id':_0x4c7833[_0xc12a('0x4e')]['id']}})[_0xc12a('0x24')](handleEntityNotFound(_0x2dceec,null))['then'](removeEntity(_0x2dceec,null))[_0xc12a('0x4c')](handleError(_0x2dceec,null));};exports[_0xc12a('0x52')]=function(_0x5e7cb9,_0x41cf87){if(_0x5e7cb9[_0xc12a('0x53')][_0xc12a('0x2e')]==='outbound'&&!_[_0xc12a('0x54')](_0x5e7cb9[_0xc12a('0x53')][_0xc12a('0x55')],'_')){_0x5e7cb9[_0xc12a('0x53')]['exten']='_'[_0xc12a('0x56')](_0x5e7cb9[_0xc12a('0x53')][_0xc12a('0x55')]);}return db[_0xc12a('0x37')]['create'](_0x5e7cb9[_0xc12a('0x53')],{'raw':![]})['then'](function(_0x5351e5){var _0x5b1767=_0x5e7cb9[_0xc12a('0x57')][_0xc12a('0x58')]({'plain':!![]});if(!_0x5b1767)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5b1767['role']===_0xc12a('0x57')){var _0x23fc79=_0x5351e5[_0xc12a('0x58')]({'plain':!![]});var _0x1a7207=[{'name':'InboundRoutes','value':_0xc12a('0x59')},{'name':_0xc12a('0x26'),'value':_0xc12a('0x27')},{'name':_0xc12a('0x28'),'value':_0xc12a('0x29')}];var _0x32205b=_[_0xc12a('0x2f')](_0x1a7207,['value',_0x23fc79['type']])['name'];return db[_0xc12a('0x5a')][_0xc12a('0x2f')]({'where':{'name':_0x32205b,'userProfileId':_0x5b1767['userProfileId']},'raw':!![]})['then'](function(_0x3491a8){if(_0x3491a8&&_0x3491a8[_0xc12a('0x5b')]===0x0){return db['UserProfileResource'][_0xc12a('0x52')]({'name':_0x23fc79['name'],'resourceId':_0x23fc79['id'],'type':_0x3491a8['name'],'sectionId':_0x3491a8['id']},{})[_0xc12a('0x24')](function(){return _0x5351e5;});}else{return _0x5351e5;}})[_0xc12a('0x4c')](function(_0x2db62a){logger['error'](_0xc12a('0x5c'),_0x2db62a);throw _0x2db62a;});}return _0x5351e5;})['then'](respondWithResult(_0x41cf87,0xc9))[_0xc12a('0x4c')](handleError(_0x41cf87,null));};exports[_0xc12a('0x5d')]=function(_0x261a79,_0x41af51){if(_0x261a79[_0xc12a('0x53')]['id']){delete _0x261a79[_0xc12a('0x53')]['id'];}return db[_0xc12a('0x37')]['find']({'where':{'id':_0x261a79[_0xc12a('0x4e')]['id']}})['then'](handleEntityNotFound(_0x41af51,null))[_0xc12a('0x24')](function(_0x36f64b){if(_0x36f64b){return db['VoiceExtension'][_0xc12a('0x5d')](_[_0xc12a('0x45')](_0x261a79[_0xc12a('0x53')],[_0xc12a('0x55'),_0xc12a('0x5e'),_0xc12a('0x5f'),_0xc12a('0x60'),_0xc12a('0x61'),_0xc12a('0x62'),_0xc12a('0x63')]),{'where':{'context':_0x36f64b['context'],'exten':_0x36f64b[_0xc12a('0x55')]},'individualHooks':!![]})[_0xc12a('0x24')](function(_0x513994){return _0x513994;});}return null;})['then'](respondWithStatusCode(_0x41af51,null))[_0xc12a('0x4c')](handleError(_0x41af51,null));};exports[_0xc12a('0x64')]=function(_0x1d0ef3,_0x53c666){return db[_0xc12a('0x37')][_0xc12a('0x65')]({'where':{'id':_0x1d0ef3['params']['id']}})[_0xc12a('0x24')](function(_0x1ffd59){if(_0x1ffd59){return db['sequelize'][_0xc12a('0x66')](function(_0x4c3ae2){return db[_0xc12a('0x37')][_0xc12a('0x32')]({'where':{'VoiceExtensionId':_0x1d0ef3['params']['id']},'transaction':_0x4c3ae2})['then'](function(){var _0x56d0a5=_['map'](_0x1d0ef3[_0xc12a('0x53')],function(_0x21f6db){_0x21f6db[_0xc12a('0x67')]=_0x1d0ef3[_0xc12a('0x4e')]['id'];_0x21f6db[_0xc12a('0x68')]=!![];return _0x21f6db;});var _0x29f54e=_0x1d0ef3['query'][_0xc12a('0x69')]&&_0x1d0ef3['query'][_0xc12a('0x69')]['toLowerCase']()===_0xc12a('0x6a')?!![]:![];return _0x1ffd59[_0xc12a('0x6b')](_0x56d0a5,_0x29f54e);})[_0xc12a('0x24')](function(_0x5ccd19){return db[_0xc12a('0x37')][_0xc12a('0x6c')](_0x5ccd19,{'transaction':_0x4c3ae2});});})[_0xc12a('0x24')](function(){return db[_0xc12a('0x37')][_0xc12a('0x6d')]({'where':{'isApp':!![],'VoiceExtensionId':_0x1d0ef3[_0xc12a('0x4e')]['id']},'order':_0xc12a('0x6e')});});}})['then'](respondWithResult(_0x53c666,null))[_0xc12a('0x4c')](handleError(_0x53c666,null));};