Built motion from commit c116dc8b.|2.6.30
[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 _0xaa25=['../../config/logger','api','../../config/environment','../../mysqldb','redis','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','get','InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','filter','map','value','includes','find','type','then','error','stack','name','send','index','VoiceExtension','rawAttributes','model','query','keys','filters','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','options','includeAll','findAll','rows','catch','intersection','fields','include','destroy','params','body','startsWith','exten','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','internal','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','recordingFormat','cutdigits','mandatoryDisposition','alias','addApplications','transaction','Transaction','ISOLATION_LEVELS','VoiceExtensionId','createRouting','bulkCreate','findAndCountAll','lodash','ioredis'];(function(_0x232c15,_0xcf2978){var _0x149bdd=function(_0x37a6c7){while(--_0x37a6c7){_0x232c15['push'](_0x232c15['shift']());}};_0x149bdd(++_0xcf2978);}(_0xaa25,0xb4));var _0x5aa2=function(_0x5d6456,_0x58ecc7){_0x5d6456=_0x5d6456-0x0;var _0x4d66c1=_0xaa25[_0x5d6456];return _0x4d66c1;};'use strict';var _=require(_0x5aa2('0x0'));var Redis=require(_0x5aa2('0x1'));var qs=require('../../components/parsers/qs');var logger=require(_0x5aa2('0x2'))(_0x5aa2('0x3'));var config=require(_0x5aa2('0x4'));var db=require(_0x5aa2('0x5'))['db'];config[_0x5aa2('0x6')]=_['defaults'](config[_0x5aa2('0x6')],{'host':'localhost','port':0x18eb});var socket=require(_0x5aa2('0x7'))(new Redis(config[_0x5aa2('0x6')]));require(_0x5aa2('0x8'))[_0x5aa2('0x9')](socket);function respondWithStatusCode(_0x536b8b,_0x5a41b4){_0x5a41b4=_0x5a41b4||0xcc;return function(_0xb3d2ad){if(_0xb3d2ad){return _0x536b8b[_0x5aa2('0xa')](_0x5a41b4);}return _0x536b8b[_0x5aa2('0xb')](_0x5a41b4)[_0x5aa2('0xc')]();};}function respondWithResult(_0x1bc00c,_0x56c073){_0x56c073=_0x56c073||0xc8;return function(_0x2894f9){if(_0x2894f9){return _0x1bc00c[_0x5aa2('0xb')](_0x56c073)[_0x5aa2('0xd')](_0x2894f9);}};}function respondWithFilteredResult(_0x236d94,_0x3693b1){return function(_0x5c5e55){if(_0x5c5e55){var _0x54f5de=typeof _0x3693b1[_0x5aa2('0xe')]===_0x5aa2('0xf')&&typeof _0x3693b1[_0x5aa2('0x10')]===_0x5aa2('0xf');var _0x4242ff=_0x5c5e55['count'];var _0x1d1ddd=_0x54f5de?0x0:_0x3693b1[_0x5aa2('0xe')];var _0x252f53=_0x54f5de?_0x5c5e55[_0x5aa2('0x11')]:_0x3693b1[_0x5aa2('0xe')]+_0x3693b1['limit'];var _0x5ce989;if(_0x252f53>=_0x4242ff){_0x252f53=_0x4242ff;_0x5ce989=0xc8;}else{_0x5ce989=0xce;}_0x236d94['status'](_0x5ce989);return _0x236d94[_0x5aa2('0x12')](_0x5aa2('0x13'),_0x1d1ddd+'-'+_0x252f53+'/'+_0x4242ff)[_0x5aa2('0xd')](_0x5c5e55);}return null;};}function removeEntity(_0x3e0a42){return function(_0x8d07da){if(_0x8d07da){return _0x8d07da['destroy']()['then'](function(){var _0x5b646b=_0x8d07da[_0x5aa2('0x14')]({'plain':!![]});var _0x4ffe8b=[{'name':_0x5aa2('0x15'),'value':_0x5aa2('0x16'),'ignore':![]},{'name':_0x5aa2('0x17'),'value':_0x5aa2('0x18'),'ignore':![]},{'name':_0x5aa2('0x19'),'value':'internal','ignore':![]}];var _0x3dad59=_(_0x4ffe8b)[_0x5aa2('0x1a')]('ignore')[_0x5aa2('0x1b')](_0x5aa2('0x1c'))[_0x5aa2('0x1c')]();if(_[_0x5aa2('0x1d')](_0x3dad59,_0x5b646b['type'])){return;}var _0x2e1018=_[_0x5aa2('0x1e')](_0x4ffe8b,[_0x5aa2('0x1c'),_0x5b646b[_0x5aa2('0x1f')]])['name'];return db['UserProfileResource']['destroy']({'where':{'type':_0x2e1018,'resourceId':_0x5b646b['id']}})[_0x5aa2('0x20')](function(){return _0x8d07da;});})[_0x5aa2('0x20')](function(){_0x3e0a42[_0x5aa2('0xb')](0xcc)[_0x5aa2('0xc')]();});}};}function handleEntityNotFound(_0x347bb8){return function(_0x21dc49){if(!_0x21dc49){_0x347bb8['sendStatus'](0x194);}return _0x21dc49;};}function handleError(_0x3739be,_0x4acf61){_0x4acf61=_0x4acf61||0x1f4;return function(_0x117b00){logger[_0x5aa2('0x21')](_0x117b00[_0x5aa2('0x22')]);if(_0x117b00[_0x5aa2('0x23')]){delete _0x117b00[_0x5aa2('0x23')];}_0x3739be[_0x5aa2('0xb')](_0x4acf61)[_0x5aa2('0x24')](_0x117b00);};}exports[_0x5aa2('0x25')]=function(_0x4370d5,_0x1baee3){var _0x176360={},_0x4f4b9b={},_0x5702f4={'count':0x0,'rows':[]};var _0x25075b=_[_0x5aa2('0x1b')](db[_0x5aa2('0x26')][_0x5aa2('0x27')],function(_0x570c7c){return{'name':_0x570c7c['fieldName'],'type':_0x570c7c[_0x5aa2('0x1f')]['key']};});_0x4f4b9b[_0x5aa2('0x28')]=_[_0x5aa2('0x1b')](_0x25075b,_0x5aa2('0x23'));_0x4f4b9b[_0x5aa2('0x29')]=_[_0x5aa2('0x2a')](_0x4370d5[_0x5aa2('0x29')]);_0x4f4b9b[_0x5aa2('0x2b')]=_['intersection'](_0x4f4b9b[_0x5aa2('0x28')],_0x4f4b9b[_0x5aa2('0x29')]);_0x176360[_0x5aa2('0x2c')]=_['intersection'](_0x4f4b9b['model'],qs['fields'](_0x4370d5[_0x5aa2('0x29')]['fields']));_0x176360[_0x5aa2('0x2c')]=_0x176360['attributes'][_0x5aa2('0x2d')]?_0x176360[_0x5aa2('0x2c')]:_0x4f4b9b['model'];if(!_0x4370d5[_0x5aa2('0x29')][_0x5aa2('0x2e')](_0x5aa2('0x2f'))){_0x176360[_0x5aa2('0x10')]=qs['limit'](_0x4370d5[_0x5aa2('0x29')][_0x5aa2('0x10')]);_0x176360[_0x5aa2('0xe')]=qs['offset'](_0x4370d5['query'][_0x5aa2('0xe')]);}_0x176360[_0x5aa2('0x30')]=qs[_0x5aa2('0x31')](_0x4370d5[_0x5aa2('0x29')][_0x5aa2('0x31')]);_0x176360[_0x5aa2('0x32')]=qs[_0x5aa2('0x2b')](_[_0x5aa2('0x33')](_0x4370d5['query'],_0x4f4b9b[_0x5aa2('0x2b')]),_0x25075b);if(_0x4370d5[_0x5aa2('0x29')][_0x5aa2('0x1a')]){_0x176360[_0x5aa2('0x32')]=_['merge'](_0x176360[_0x5aa2('0x32')],{'$or':_[_0x5aa2('0x1b')](_0x25075b,function(_0x5153f3){if(_0x5153f3[_0x5aa2('0x1f')]!=='VIRTUAL'){var _0x5e0a73={};_0x5e0a73[_0x5153f3[_0x5aa2('0x23')]]={'$like':'%'+_0x4370d5['query'][_0x5aa2('0x1a')]+'%'};return _0x5e0a73;}})});}_0x176360=_[_0x5aa2('0x34')]({},_0x176360,_0x4370d5[_0x5aa2('0x35')]);var _0x4da069={'where':_0x176360[_0x5aa2('0x32')]};return db[_0x5aa2('0x26')][_0x5aa2('0x11')](_0x4da069)[_0x5aa2('0x20')](function(_0xf77106){_0x5702f4[_0x5aa2('0x11')]=_0xf77106;if(_0x4370d5['query'][_0x5aa2('0x36')]){_0x176360['include']=[{'all':!![]}];}return db[_0x5aa2('0x26')][_0x5aa2('0x37')](_0x176360);})[_0x5aa2('0x20')](function(_0x261260){_0x5702f4[_0x5aa2('0x38')]=_0x261260;return _0x5702f4;})['then'](respondWithFilteredResult(_0x1baee3,_0x176360))[_0x5aa2('0x39')](handleError(_0x1baee3,null));};exports['show']=function(_0x4dfedf,_0x265311){var _0x3b6345={'raw':![],'where':{'id':_0x4dfedf['params']['id']}},_0x1b64e3={};_0x1b64e3[_0x5aa2('0x28')]=_[_0x5aa2('0x2a')](db[_0x5aa2('0x26')][_0x5aa2('0x27')]);_0x1b64e3[_0x5aa2('0x29')]=_['keys'](_0x4dfedf[_0x5aa2('0x29')]);_0x1b64e3[_0x5aa2('0x2b')]=_[_0x5aa2('0x3a')](_0x1b64e3[_0x5aa2('0x28')],_0x1b64e3['query']);_0x3b6345[_0x5aa2('0x2c')]=_[_0x5aa2('0x3a')](_0x1b64e3[_0x5aa2('0x28')],qs[_0x5aa2('0x3b')](_0x4dfedf['query'][_0x5aa2('0x3b')]));_0x3b6345[_0x5aa2('0x2c')]=_0x3b6345[_0x5aa2('0x2c')][_0x5aa2('0x2d')]?_0x3b6345['attributes']:_0x1b64e3['model'];if(_0x4dfedf[_0x5aa2('0x29')][_0x5aa2('0x36')]){_0x3b6345[_0x5aa2('0x3c')]=[{'all':!![]}];}_0x3b6345=_[_0x5aa2('0x34')]({},_0x3b6345,_0x4dfedf[_0x5aa2('0x35')]);return db[_0x5aa2('0x26')][_0x5aa2('0x1e')](_0x3b6345)[_0x5aa2('0x20')](handleEntityNotFound(_0x265311,null))['then'](respondWithResult(_0x265311,null))[_0x5aa2('0x39')](handleError(_0x265311,null));};exports[_0x5aa2('0x3d')]=function(_0x35852b,_0x7b00c3){return db[_0x5aa2('0x26')][_0x5aa2('0x1e')]({'where':{'id':_0x35852b[_0x5aa2('0x3e')]['id']}})[_0x5aa2('0x20')](handleEntityNotFound(_0x7b00c3,null))[_0x5aa2('0x20')](removeEntity(_0x7b00c3,null))[_0x5aa2('0x39')](handleError(_0x7b00c3,null));};exports['create']=function(_0x66f2ad,_0x5f2f10){if(_0x66f2ad[_0x5aa2('0x3f')]['type']===_0x5aa2('0x18')&&!_[_0x5aa2('0x40')](_0x66f2ad[_0x5aa2('0x3f')][_0x5aa2('0x41')],'_')){_0x66f2ad['body'][_0x5aa2('0x41')]='_'['concat'](_0x66f2ad['body']['exten']);}return db[_0x5aa2('0x26')][_0x5aa2('0x42')](_0x66f2ad[_0x5aa2('0x3f')],{'raw':![]})['then'](function(_0x14b360){var _0x44452e=_0x66f2ad[_0x5aa2('0x43')][_0x5aa2('0x14')]({'plain':!![]});if(!_0x44452e)throw new Error(_0x5aa2('0x44'));if(_0x44452e[_0x5aa2('0x45')]==='user'){var _0x27bab4=_0x14b360['get']({'plain':!![]});var _0x7ac6f8=[{'name':'InboundRoutes','value':_0x5aa2('0x16')},{'name':_0x5aa2('0x17'),'value':_0x5aa2('0x18')},{'name':_0x5aa2('0x19'),'value':_0x5aa2('0x46')}];var _0x3c2422=_[_0x5aa2('0x1e')](_0x7ac6f8,[_0x5aa2('0x1c'),_0x27bab4['type']])[_0x5aa2('0x23')];return db[_0x5aa2('0x47')][_0x5aa2('0x1e')]({'where':{'name':_0x3c2422,'userProfileId':_0x44452e[_0x5aa2('0x48')]},'raw':!![]})[_0x5aa2('0x20')](function(_0x408526){if(_0x408526&&_0x408526[_0x5aa2('0x49')]===0x0){return db[_0x5aa2('0x4a')][_0x5aa2('0x42')]({'name':_0x27bab4[_0x5aa2('0x23')],'resourceId':_0x27bab4['id'],'type':_0x408526[_0x5aa2('0x23')],'sectionId':_0x408526['id']},{})[_0x5aa2('0x20')](function(){return _0x14b360;});}else{return _0x14b360;}})[_0x5aa2('0x39')](function(_0x141b1e){logger[_0x5aa2('0x21')](_0x5aa2('0x4b'),_0x141b1e);throw _0x141b1e;});}return _0x14b360;})[_0x5aa2('0x20')](respondWithResult(_0x5f2f10,0xc9))[_0x5aa2('0x39')](handleError(_0x5f2f10,null));};exports['update']=function(_0x4c4d7a,_0x37f5f2){if(_0x4c4d7a[_0x5aa2('0x3f')]['id']){delete _0x4c4d7a[_0x5aa2('0x3f')]['id'];}return db[_0x5aa2('0x26')][_0x5aa2('0x1e')]({'where':{'id':_0x4c4d7a[_0x5aa2('0x3e')]['id']}})[_0x5aa2('0x20')](handleEntityNotFound(_0x37f5f2,null))[_0x5aa2('0x20')](function(_0x39c131){if(_0x39c131){return db['VoiceExtension'][_0x5aa2('0x4c')](_[_0x5aa2('0x33')](_0x4c4d7a[_0x5aa2('0x3f')],['exten',_0x5aa2('0x4d'),_0x5aa2('0x4e'),_0x5aa2('0x4f'),_0x5aa2('0x50'),_0x5aa2('0x51'),_0x5aa2('0x52')]),{'where':{'context':_0x39c131[_0x5aa2('0x4d')],'exten':_0x39c131[_0x5aa2('0x41')]},'individualHooks':!![]})[_0x5aa2('0x20')](function(_0x7c3bd){return _0x7c3bd;});}return null;})[_0x5aa2('0x20')](respondWithStatusCode(_0x37f5f2,null))[_0x5aa2('0x39')](handleError(_0x37f5f2,null));};exports[_0x5aa2('0x53')]=function(_0x2f4165,_0x288e4b){var _0x5bbd62=_0x2f4165[_0x5aa2('0x3e')]['id'];var _0x11b972=_0x2f4165[_0x5aa2('0x3f')];var _0x210db4=0xc8;var _0x4cfc38=null;return db['sequelize'][_0x5aa2('0x54')]({'isolationLevel':db['sequelize'][_0x5aa2('0x55')][_0x5aa2('0x56')]['READ_COMMITTED']},function(_0x1ed1cd){return db['VoiceExtension']['findOne']({'where':{'id':_0x5bbd62},'transaction':_0x1ed1cd})['then'](function(_0x40a564){if(_0x40a564){return db[_0x5aa2('0x26')][_0x5aa2('0x3d')]({'where':{'VoiceExtensionId':_0x5bbd62},'transaction':_0x1ed1cd})['then'](function(){var _0x4dae88=_[_0x5aa2('0x1b')](_0x11b972,function(_0x41e0fa){_0x41e0fa[_0x5aa2('0x57')]=_0x5bbd62;_0x41e0fa['isApp']=!![];return _0x41e0fa;});return _0x40a564[_0x5aa2('0x58')](_0x4dae88);})[_0x5aa2('0x20')](function(_0x20c9b2){return db[_0x5aa2('0x26')][_0x5aa2('0x59')](_0x20c9b2,{'transaction':_0x1ed1cd});});}else{_0x210db4=0x194;_0x4cfc38=[];}});})[_0x5aa2('0x20')](function(){if(_0x210db4!==0x194){return db['VoiceExtension'][_0x5aa2('0x5a')]({'where':{'isApp':!![],'VoiceExtensionId':_0x5bbd62},'order':'cast(priority\x20as\x20unsigned)'})[_0x5aa2('0x20')](function(_0x38664e){_0x4cfc38=_0x38664e;});}})[_0x5aa2('0x39')](function(_0x1c5835){_0x210db4=0x1f4;logger[_0x5aa2('0x21')](_0x1c5835['stack']);if(_0x1c5835['name']){delete _0x1c5835[_0x5aa2('0x23')];}_0x4cfc38=_0x1c5835;})['finally'](function(){if(_0x4cfc38===null){_0x288e4b[_0x5aa2('0xa')](_0x210db4);}else{if(_0x210db4===0x1f4){_0x288e4b[_0x5aa2('0xb')](_0x210db4)['send'](_0x4cfc38);}else{_0x288e4b[_0x5aa2('0xb')](_0x210db4)['json'](_0x4cfc38);}}});};