Built motion from commit da617fac.|2.6.6
[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 _0xe8c9=['InternalRoutes','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','recordingFormat','cutdigits','mandatoryDisposition','addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','finally','send','lodash','ioredis','../../components/parsers/qs','api','../../config/environment','../../mysqldb','defaults','localhost','./voiceExtension.socket','register','status','offset','undefined','limit','count','set','Content-Range','json','get','InboundRoutes','OutboundRoutes','outbound','internal','ignore','map','value','includes','type','find','name','destroy','then','end','sendStatus','error','stack','fieldName','key','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','VoiceExtension','includeAll','include','findAll','rows','catch','rawAttributes','params','body','exten','concat','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','inbound'];(function(_0x3f3f06,_0x581e5b){var _0x140feb=function(_0x4cc383){while(--_0x4cc383){_0x3f3f06['push'](_0x3f3f06['shift']());}};_0x140feb(++_0x581e5b);}(_0xe8c9,0x134));var _0x9e8c=function(_0x50788d,_0x2049b8){_0x50788d=_0x50788d-0x0;var _0x21622f=_0xe8c9[_0x50788d];return _0x21622f;};'use strict';var _=require(_0x9e8c('0x0'));var Redis=require(_0x9e8c('0x1'));var qs=require(_0x9e8c('0x2'));var logger=require('../../config/logger')(_0x9e8c('0x3'));var config=require(_0x9e8c('0x4'));var db=require(_0x9e8c('0x5'))['db'];config['redis']=_[_0x9e8c('0x6')](config['redis'],{'host':_0x9e8c('0x7'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x9e8c('0x8'))[_0x9e8c('0x9')](socket);function respondWithStatusCode(_0x51ba70,_0x1c02d3){_0x1c02d3=_0x1c02d3||0xcc;return function(_0xb5dba3){if(_0xb5dba3){return _0x51ba70['sendStatus'](_0x1c02d3);}return _0x51ba70[_0x9e8c('0xa')](_0x1c02d3)['end']();};}function respondWithResult(_0x3ed875,_0x50c85e){_0x50c85e=_0x50c85e||0xc8;return function(_0x38ed96){if(_0x38ed96){return _0x3ed875[_0x9e8c('0xa')](_0x50c85e)['json'](_0x38ed96);}};}function respondWithFilteredResult(_0x66c0f1,_0x4aae85){return function(_0x16c5e9){if(_0x16c5e9){var _0x14cccd=typeof _0x4aae85[_0x9e8c('0xb')]===_0x9e8c('0xc')&&typeof _0x4aae85[_0x9e8c('0xd')]===_0x9e8c('0xc');var _0x53cc6e=_0x16c5e9['count'];var _0x2f97f4=_0x14cccd?0x0:_0x4aae85[_0x9e8c('0xb')];var _0x23ec63=_0x14cccd?_0x16c5e9[_0x9e8c('0xe')]:_0x4aae85[_0x9e8c('0xb')]+_0x4aae85['limit'];var _0x206558;if(_0x23ec63>=_0x53cc6e){_0x23ec63=_0x53cc6e;_0x206558=0xc8;}else{_0x206558=0xce;}_0x66c0f1['status'](_0x206558);return _0x66c0f1[_0x9e8c('0xf')](_0x9e8c('0x10'),_0x2f97f4+'-'+_0x23ec63+'/'+_0x53cc6e)[_0x9e8c('0x11')](_0x16c5e9);}return null;};}function removeEntity(_0x4c1d5c){return function(_0x39c52c){if(_0x39c52c){return _0x39c52c['destroy']()['then'](function(){var _0x27c218=_0x39c52c[_0x9e8c('0x12')]({'plain':!![]});var _0x4df19a=[{'name':_0x9e8c('0x13'),'value':'inbound','ignore':![]},{'name':_0x9e8c('0x14'),'value':_0x9e8c('0x15'),'ignore':![]},{'name':'InternalRoutes','value':_0x9e8c('0x16'),'ignore':![]}];var _0x3dd64c=_(_0x4df19a)['filter'](_0x9e8c('0x17'))[_0x9e8c('0x18')]('value')[_0x9e8c('0x19')]();if(_[_0x9e8c('0x1a')](_0x3dd64c,_0x27c218[_0x9e8c('0x1b')])){return;}var _0x1c3ff1=_[_0x9e8c('0x1c')](_0x4df19a,['value',_0x27c218[_0x9e8c('0x1b')]])[_0x9e8c('0x1d')];return db['UserProfileResource'][_0x9e8c('0x1e')]({'where':{'type':_0x1c3ff1,'resourceId':_0x27c218['id']}})[_0x9e8c('0x1f')](function(){return _0x39c52c;});})[_0x9e8c('0x1f')](function(){_0x4c1d5c['status'](0xcc)[_0x9e8c('0x20')]();});}};}function handleEntityNotFound(_0x39e0d0){return function(_0x498438){if(!_0x498438){_0x39e0d0[_0x9e8c('0x21')](0x194);}return _0x498438;};}function handleError(_0x4ffaf5,_0x3438d2){_0x3438d2=_0x3438d2||0x1f4;return function(_0x4b3cb5){logger[_0x9e8c('0x22')](_0x4b3cb5[_0x9e8c('0x23')]);if(_0x4b3cb5[_0x9e8c('0x1d')]){delete _0x4b3cb5[_0x9e8c('0x1d')];}_0x4ffaf5[_0x9e8c('0xa')](_0x3438d2)['send'](_0x4b3cb5);};}exports['index']=function(_0x5aa2f3,_0x5f492c){var _0x23738b={},_0x435b64={},_0x336014={'count':0x0,'rows':[]};var _0x20d9b5=_[_0x9e8c('0x18')](db['VoiceExtension']['rawAttributes'],function(_0xf62647){return{'name':_0xf62647[_0x9e8c('0x24')],'type':_0xf62647[_0x9e8c('0x1b')][_0x9e8c('0x25')]};});_0x435b64[_0x9e8c('0x26')]=_[_0x9e8c('0x18')](_0x20d9b5,_0x9e8c('0x1d'));_0x435b64['query']=_[_0x9e8c('0x27')](_0x5aa2f3[_0x9e8c('0x28')]);_0x435b64[_0x9e8c('0x29')]=_[_0x9e8c('0x2a')](_0x435b64[_0x9e8c('0x26')],_0x435b64[_0x9e8c('0x28')]);_0x23738b[_0x9e8c('0x2b')]=_[_0x9e8c('0x2a')](_0x435b64[_0x9e8c('0x26')],qs[_0x9e8c('0x2c')](_0x5aa2f3[_0x9e8c('0x28')]['fields']));_0x23738b[_0x9e8c('0x2b')]=_0x23738b[_0x9e8c('0x2b')]['length']?_0x23738b[_0x9e8c('0x2b')]:_0x435b64[_0x9e8c('0x26')];if(!_0x5aa2f3[_0x9e8c('0x28')][_0x9e8c('0x2d')]('nolimit')){_0x23738b[_0x9e8c('0xd')]=qs[_0x9e8c('0xd')](_0x5aa2f3[_0x9e8c('0x28')][_0x9e8c('0xd')]);_0x23738b[_0x9e8c('0xb')]=qs['offset'](_0x5aa2f3[_0x9e8c('0x28')][_0x9e8c('0xb')]);}_0x23738b[_0x9e8c('0x2e')]=qs[_0x9e8c('0x2f')](_0x5aa2f3[_0x9e8c('0x28')][_0x9e8c('0x2f')]);_0x23738b[_0x9e8c('0x30')]=qs[_0x9e8c('0x29')](_[_0x9e8c('0x31')](_0x5aa2f3[_0x9e8c('0x28')],_0x435b64[_0x9e8c('0x29')]),_0x20d9b5);if(_0x5aa2f3['query'][_0x9e8c('0x32')]){_0x23738b[_0x9e8c('0x30')]=_[_0x9e8c('0x33')](_0x23738b[_0x9e8c('0x30')],{'$or':_[_0x9e8c('0x18')](_0x20d9b5,function(_0x1a184a){if(_0x1a184a['type']!==_0x9e8c('0x34')){var _0x235bef={};_0x235bef[_0x1a184a[_0x9e8c('0x1d')]]={'$like':'%'+_0x5aa2f3[_0x9e8c('0x28')][_0x9e8c('0x32')]+'%'};return _0x235bef;}})});}_0x23738b=_['merge']({},_0x23738b,_0x5aa2f3['options']);var _0x1f861c={'where':_0x23738b[_0x9e8c('0x30')]};return db[_0x9e8c('0x35')]['count'](_0x1f861c)[_0x9e8c('0x1f')](function(_0xed7ad7){_0x336014[_0x9e8c('0xe')]=_0xed7ad7;if(_0x5aa2f3[_0x9e8c('0x28')][_0x9e8c('0x36')]){_0x23738b[_0x9e8c('0x37')]=[{'all':!![]}];}return db[_0x9e8c('0x35')][_0x9e8c('0x38')](_0x23738b);})['then'](function(_0x56d217){_0x336014[_0x9e8c('0x39')]=_0x56d217;return _0x336014;})[_0x9e8c('0x1f')](respondWithFilteredResult(_0x5f492c,_0x23738b))[_0x9e8c('0x3a')](handleError(_0x5f492c,null));};exports['show']=function(_0x2bd076,_0x250381){var _0x5d2a21={'raw':![],'where':{'id':_0x2bd076['params']['id']}},_0x5af7db={};_0x5af7db[_0x9e8c('0x26')]=_[_0x9e8c('0x27')](db[_0x9e8c('0x35')][_0x9e8c('0x3b')]);_0x5af7db['query']=_['keys'](_0x2bd076['query']);_0x5af7db[_0x9e8c('0x29')]=_[_0x9e8c('0x2a')](_0x5af7db[_0x9e8c('0x26')],_0x5af7db[_0x9e8c('0x28')]);_0x5d2a21[_0x9e8c('0x2b')]=_[_0x9e8c('0x2a')](_0x5af7db[_0x9e8c('0x26')],qs[_0x9e8c('0x2c')](_0x2bd076[_0x9e8c('0x28')][_0x9e8c('0x2c')]));_0x5d2a21[_0x9e8c('0x2b')]=_0x5d2a21[_0x9e8c('0x2b')]['length']?_0x5d2a21[_0x9e8c('0x2b')]:_0x5af7db[_0x9e8c('0x26')];if(_0x2bd076[_0x9e8c('0x28')][_0x9e8c('0x36')]){_0x5d2a21['include']=[{'all':!![]}];}_0x5d2a21=_[_0x9e8c('0x33')]({},_0x5d2a21,_0x2bd076['options']);return db[_0x9e8c('0x35')][_0x9e8c('0x1c')](_0x5d2a21)['then'](handleEntityNotFound(_0x250381,null))[_0x9e8c('0x1f')](respondWithResult(_0x250381,null))['catch'](handleError(_0x250381,null));};exports[_0x9e8c('0x1e')]=function(_0x4845c8,_0x468c26){return db['VoiceExtension'][_0x9e8c('0x1c')]({'where':{'id':_0x4845c8[_0x9e8c('0x3c')]['id']}})[_0x9e8c('0x1f')](handleEntityNotFound(_0x468c26,null))[_0x9e8c('0x1f')](removeEntity(_0x468c26,null))[_0x9e8c('0x3a')](handleError(_0x468c26,null));};exports['create']=function(_0x5d12e5,_0x423e5e){if(_0x5d12e5[_0x9e8c('0x3d')]['type']==='outbound'&&!_['startsWith'](_0x5d12e5['body'][_0x9e8c('0x3e')],'_')){_0x5d12e5[_0x9e8c('0x3d')]['exten']='_'[_0x9e8c('0x3f')](_0x5d12e5[_0x9e8c('0x3d')][_0x9e8c('0x3e')]);}return db[_0x9e8c('0x35')][_0x9e8c('0x40')](_0x5d12e5[_0x9e8c('0x3d')],{'raw':![]})[_0x9e8c('0x1f')](function(_0x2f1cef){var _0x90639d=_0x5d12e5[_0x9e8c('0x41')][_0x9e8c('0x12')]({'plain':!![]});if(!_0x90639d)throw new Error(_0x9e8c('0x42'));if(_0x90639d['role']===_0x9e8c('0x41')){var _0x42bcac=_0x2f1cef[_0x9e8c('0x12')]({'plain':!![]});var _0x4992fe=[{'name':_0x9e8c('0x13'),'value':_0x9e8c('0x43')},{'name':_0x9e8c('0x14'),'value':_0x9e8c('0x15')},{'name':_0x9e8c('0x44'),'value':_0x9e8c('0x16')}];var _0x5deeac=_[_0x9e8c('0x1c')](_0x4992fe,[_0x9e8c('0x19'),_0x42bcac[_0x9e8c('0x1b')]])[_0x9e8c('0x1d')];return db['UserProfileSection'][_0x9e8c('0x1c')]({'where':{'name':_0x5deeac,'userProfileId':_0x90639d[_0x9e8c('0x45')]},'raw':!![]})[_0x9e8c('0x1f')](function(_0x283d66){if(_0x283d66&&_0x283d66[_0x9e8c('0x46')]===0x0){return db[_0x9e8c('0x47')][_0x9e8c('0x40')]({'name':_0x42bcac[_0x9e8c('0x1d')],'resourceId':_0x42bcac['id'],'type':_0x283d66['name'],'sectionId':_0x283d66['id']},{})[_0x9e8c('0x1f')](function(){return _0x2f1cef;});}else{return _0x2f1cef;}})['catch'](function(_0x5d739f){logger['error'](_0x9e8c('0x48'),_0x5d739f);throw _0x5d739f;});}return _0x2f1cef;})[_0x9e8c('0x1f')](respondWithResult(_0x423e5e,0xc9))[_0x9e8c('0x3a')](handleError(_0x423e5e,null));};exports['update']=function(_0x18fc64,_0x3f488f){if(_0x18fc64[_0x9e8c('0x3d')]['id']){delete _0x18fc64['body']['id'];}return db[_0x9e8c('0x35')][_0x9e8c('0x1c')]({'where':{'id':_0x18fc64[_0x9e8c('0x3c')]['id']}})[_0x9e8c('0x1f')](handleEntityNotFound(_0x3f488f,null))[_0x9e8c('0x1f')](function(_0x4f3ad1){if(_0x4f3ad1){return db[_0x9e8c('0x35')][_0x9e8c('0x49')](_[_0x9e8c('0x31')](_0x18fc64[_0x9e8c('0x3d')],[_0x9e8c('0x3e'),_0x9e8c('0x4a'),_0x9e8c('0x4b'),_0x9e8c('0x4c'),_0x9e8c('0x4d'),_0x9e8c('0x4e'),'alias']),{'where':{'context':_0x4f3ad1[_0x9e8c('0x4a')],'exten':_0x4f3ad1[_0x9e8c('0x3e')]},'individualHooks':!![]})[_0x9e8c('0x1f')](function(_0xca7eda){return _0xca7eda;});}return null;})[_0x9e8c('0x1f')](respondWithStatusCode(_0x3f488f,null))[_0x9e8c('0x3a')](handleError(_0x3f488f,null));};exports[_0x9e8c('0x4f')]=function(_0x4cbb6b,_0x209016){var _0x13d8d3=_0x4cbb6b[_0x9e8c('0x3c')]['id'];var _0x4e6ea9=_0x4cbb6b['body'];var _0x4faa85=0xc8;var _0x5b409b=null;return db[_0x9e8c('0x50')][_0x9e8c('0x51')]({'isolationLevel':db[_0x9e8c('0x50')][_0x9e8c('0x52')][_0x9e8c('0x53')][_0x9e8c('0x54')]},function(_0x6e34db){return db[_0x9e8c('0x35')][_0x9e8c('0x55')]({'where':{'id':_0x13d8d3},'transaction':_0x6e34db})['then'](function(_0x51dd5d){if(_0x51dd5d){return db[_0x9e8c('0x35')][_0x9e8c('0x1e')]({'where':{'VoiceExtensionId':_0x13d8d3},'transaction':_0x6e34db})[_0x9e8c('0x1f')](function(){var _0x4d3c02=_[_0x9e8c('0x18')](_0x4e6ea9,function(_0xc0dd67){_0xc0dd67[_0x9e8c('0x56')]=_0x13d8d3;_0xc0dd67[_0x9e8c('0x57')]=!![];return _0xc0dd67;});return _0x51dd5d[_0x9e8c('0x58')](_0x4d3c02);})[_0x9e8c('0x1f')](function(_0x2bd247){return db['VoiceExtension'][_0x9e8c('0x59')](_0x2bd247,{'transaction':_0x6e34db});});}else{_0x4faa85=0x194;_0x5b409b=[];}});})[_0x9e8c('0x1f')](function(){if(_0x4faa85!==0x194){return db[_0x9e8c('0x35')][_0x9e8c('0x5a')]({'where':{'isApp':!![],'VoiceExtensionId':_0x13d8d3},'order':_0x9e8c('0x5b')})['then'](function(_0x221b44){_0x5b409b=_0x221b44;});}})[_0x9e8c('0x3a')](function(_0x1e8b45){_0x4faa85=0x1f4;logger[_0x9e8c('0x22')](_0x1e8b45[_0x9e8c('0x23')]);if(_0x1e8b45[_0x9e8c('0x1d')]){delete _0x1e8b45[_0x9e8c('0x1d')];}_0x5b409b=_0x1e8b45;})[_0x9e8c('0x5c')](function(){if(_0x5b409b===null){_0x209016[_0x9e8c('0x21')](_0x4faa85);}else{if(_0x4faa85===0x1f4){_0x209016[_0x9e8c('0xa')](_0x4faa85)[_0x9e8c('0x5d')](_0x5b409b);}else{_0x209016[_0x9e8c('0xa')](_0x4faa85)['json'](_0x5b409b);}}});};