Built motion from commit 25580385.|2.6.2
[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 _0xe2d3=['json','offset','undefined','limit','count','Content-Range','destroy','then','get','InboundRoutes','OutboundRoutes','outbound','InternalRoutes','filter','ignore','map','value','includes','type','find','UserProfileResource','error','stack','name','send','VoiceExtension','fieldName','key','query','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','options','includeAll','include','rows','catch','show','params','keys','rawAttributes','create','body','startsWith','exten','concat','role','user','inbound','internal','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','mandatoryDisposition','alias','addApplications','sequelize','transaction','ISOLATION_LEVELS','READ_COMMITTED','VoiceExtensionId','isApp','createRouting','findAndCountAll','finally','../../components/parsers/qs','../../config/logger','api','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','sendStatus','status','end'];(function(_0x56f130,_0x502c55){var _0x345f75=function(_0x5267fc){while(--_0x5267fc){_0x56f130['push'](_0x56f130['shift']());}};_0x345f75(++_0x502c55);}(_0xe2d3,0x102));var _0x3e2d=function(_0x12bcf7,_0xc11103){_0x12bcf7=_0x12bcf7-0x0;var _0x2825a=_0xe2d3[_0x12bcf7];return _0x2825a;};'use strict';var _=require('lodash');var Redis=require('ioredis');var qs=require(_0x3e2d('0x0'));var logger=require(_0x3e2d('0x1'))(_0x3e2d('0x2'));var config=require('../../config/environment');var db=require(_0x3e2d('0x3'))['db'];config[_0x3e2d('0x4')]=_[_0x3e2d('0x5')](config[_0x3e2d('0x4')],{'host':_0x3e2d('0x6'),'port':0x18eb});var socket=require(_0x3e2d('0x7'))(new Redis(config['redis']));require(_0x3e2d('0x8'))['register'](socket);function respondWithStatusCode(_0x26564d,_0x31b611){_0x31b611=_0x31b611||0xcc;return function(_0x260640){if(_0x260640){return _0x26564d[_0x3e2d('0x9')](_0x31b611);}return _0x26564d[_0x3e2d('0xa')](_0x31b611)[_0x3e2d('0xb')]();};}function respondWithResult(_0x298f7c,_0x27f836){_0x27f836=_0x27f836||0xc8;return function(_0x53e612){if(_0x53e612){return _0x298f7c['status'](_0x27f836)[_0x3e2d('0xc')](_0x53e612);}};}function respondWithFilteredResult(_0xfe2010,_0x591e35){return function(_0x581760){if(_0x581760){var _0x41b362=typeof _0x591e35[_0x3e2d('0xd')]===_0x3e2d('0xe')&&typeof _0x591e35[_0x3e2d('0xf')]===_0x3e2d('0xe');var _0x3e604e=_0x581760[_0x3e2d('0x10')];var _0x439c8b=_0x41b362?0x0:_0x591e35[_0x3e2d('0xd')];var _0x13c792=_0x41b362?_0x581760[_0x3e2d('0x10')]:_0x591e35['offset']+_0x591e35[_0x3e2d('0xf')];var _0x132dee;if(_0x13c792>=_0x3e604e){_0x13c792=_0x3e604e;_0x132dee=0xc8;}else{_0x132dee=0xce;}_0xfe2010['status'](_0x132dee);return _0xfe2010['set'](_0x3e2d('0x11'),_0x439c8b+'-'+_0x13c792+'/'+_0x3e604e)['json'](_0x581760);}return null;};}function removeEntity(_0x50b0e2){return function(_0x29a448){if(_0x29a448){return _0x29a448[_0x3e2d('0x12')]()[_0x3e2d('0x13')](function(){var _0x3fc6cb=_0x29a448[_0x3e2d('0x14')]({'plain':!![]});var _0x191d97=[{'name':_0x3e2d('0x15'),'value':'inbound','ignore':![]},{'name':_0x3e2d('0x16'),'value':_0x3e2d('0x17'),'ignore':![]},{'name':_0x3e2d('0x18'),'value':'internal','ignore':![]}];var _0xd78391=_(_0x191d97)[_0x3e2d('0x19')](_0x3e2d('0x1a'))[_0x3e2d('0x1b')](_0x3e2d('0x1c'))[_0x3e2d('0x1c')]();if(_[_0x3e2d('0x1d')](_0xd78391,_0x3fc6cb[_0x3e2d('0x1e')])){return;}var _0x2274a7=_[_0x3e2d('0x1f')](_0x191d97,[_0x3e2d('0x1c'),_0x3fc6cb[_0x3e2d('0x1e')]])['name'];return db[_0x3e2d('0x20')]['destroy']({'where':{'type':_0x2274a7,'resourceId':_0x3fc6cb['id']}})['then'](function(){return _0x29a448;});})['then'](function(){_0x50b0e2[_0x3e2d('0xa')](0xcc)[_0x3e2d('0xb')]();});}};}function handleEntityNotFound(_0x458b5c){return function(_0x3d9af3){if(!_0x3d9af3){_0x458b5c[_0x3e2d('0x9')](0x194);}return _0x3d9af3;};}function handleError(_0x1e5ca2,_0x3fd0f4){_0x3fd0f4=_0x3fd0f4||0x1f4;return function(_0x9753f3){logger[_0x3e2d('0x21')](_0x9753f3[_0x3e2d('0x22')]);if(_0x9753f3[_0x3e2d('0x23')]){delete _0x9753f3[_0x3e2d('0x23')];}_0x1e5ca2[_0x3e2d('0xa')](_0x3fd0f4)[_0x3e2d('0x24')](_0x9753f3);};}exports['index']=function(_0x218ced,_0x4fdf06){var _0x10f709={},_0x17bd28={},_0x56b0fc={'count':0x0,'rows':[]};var _0x59396d=_[_0x3e2d('0x1b')](db[_0x3e2d('0x25')]['rawAttributes'],function(_0x597c6b){return{'name':_0x597c6b[_0x3e2d('0x26')],'type':_0x597c6b[_0x3e2d('0x1e')][_0x3e2d('0x27')]};});_0x17bd28['model']=_['map'](_0x59396d,'name');_0x17bd28[_0x3e2d('0x28')]=_['keys'](_0x218ced['query']);_0x17bd28['filters']=_[_0x3e2d('0x29')](_0x17bd28[_0x3e2d('0x2a')],_0x17bd28[_0x3e2d('0x28')]);_0x10f709[_0x3e2d('0x2b')]=_[_0x3e2d('0x29')](_0x17bd28[_0x3e2d('0x2a')],qs[_0x3e2d('0x2c')](_0x218ced[_0x3e2d('0x28')][_0x3e2d('0x2c')]));_0x10f709[_0x3e2d('0x2b')]=_0x10f709['attributes'][_0x3e2d('0x2d')]?_0x10f709[_0x3e2d('0x2b')]:_0x17bd28['model'];if(!_0x218ced[_0x3e2d('0x28')][_0x3e2d('0x2e')](_0x3e2d('0x2f'))){_0x10f709[_0x3e2d('0xf')]=qs['limit'](_0x218ced[_0x3e2d('0x28')][_0x3e2d('0xf')]);_0x10f709['offset']=qs[_0x3e2d('0xd')](_0x218ced[_0x3e2d('0x28')][_0x3e2d('0xd')]);}_0x10f709[_0x3e2d('0x30')]=qs[_0x3e2d('0x31')](_0x218ced[_0x3e2d('0x28')]['sort']);_0x10f709[_0x3e2d('0x32')]=qs[_0x3e2d('0x33')](_[_0x3e2d('0x34')](_0x218ced['query'],_0x17bd28['filters']),_0x59396d);if(_0x218ced[_0x3e2d('0x28')][_0x3e2d('0x19')]){_0x10f709[_0x3e2d('0x32')]=_[_0x3e2d('0x35')](_0x10f709['where'],{'$or':_['map'](_0x59396d,function(_0x16795b){if(_0x16795b[_0x3e2d('0x1e')]!=='VIRTUAL'){var _0x534cc3={};_0x534cc3[_0x16795b[_0x3e2d('0x23')]]={'$like':'%'+_0x218ced[_0x3e2d('0x28')]['filter']+'%'};return _0x534cc3;}})});}_0x10f709=_[_0x3e2d('0x35')]({},_0x10f709,_0x218ced[_0x3e2d('0x36')]);var _0x205765={'where':_0x10f709['where']};return db[_0x3e2d('0x25')][_0x3e2d('0x10')](_0x205765)[_0x3e2d('0x13')](function(_0x2bf04e){_0x56b0fc[_0x3e2d('0x10')]=_0x2bf04e;if(_0x218ced[_0x3e2d('0x28')][_0x3e2d('0x37')]){_0x10f709[_0x3e2d('0x38')]=[{'all':!![]}];}return db[_0x3e2d('0x25')]['findAll'](_0x10f709);})[_0x3e2d('0x13')](function(_0x150e66){_0x56b0fc[_0x3e2d('0x39')]=_0x150e66;return _0x56b0fc;})[_0x3e2d('0x13')](respondWithFilteredResult(_0x4fdf06,_0x10f709))[_0x3e2d('0x3a')](handleError(_0x4fdf06,null));};exports[_0x3e2d('0x3b')]=function(_0x11dc1c,_0xd2e5f6){var _0x503454={'raw':![],'where':{'id':_0x11dc1c[_0x3e2d('0x3c')]['id']}},_0x45e353={};_0x45e353[_0x3e2d('0x2a')]=_[_0x3e2d('0x3d')](db['VoiceExtension'][_0x3e2d('0x3e')]);_0x45e353['query']=_[_0x3e2d('0x3d')](_0x11dc1c[_0x3e2d('0x28')]);_0x45e353['filters']=_[_0x3e2d('0x29')](_0x45e353['model'],_0x45e353['query']);_0x503454[_0x3e2d('0x2b')]=_[_0x3e2d('0x29')](_0x45e353[_0x3e2d('0x2a')],qs['fields'](_0x11dc1c[_0x3e2d('0x28')][_0x3e2d('0x2c')]));_0x503454[_0x3e2d('0x2b')]=_0x503454[_0x3e2d('0x2b')]['length']?_0x503454[_0x3e2d('0x2b')]:_0x45e353[_0x3e2d('0x2a')];if(_0x11dc1c['query'][_0x3e2d('0x37')]){_0x503454[_0x3e2d('0x38')]=[{'all':!![]}];}_0x503454=_[_0x3e2d('0x35')]({},_0x503454,_0x11dc1c[_0x3e2d('0x36')]);return db[_0x3e2d('0x25')][_0x3e2d('0x1f')](_0x503454)[_0x3e2d('0x13')](handleEntityNotFound(_0xd2e5f6,null))[_0x3e2d('0x13')](respondWithResult(_0xd2e5f6,null))[_0x3e2d('0x3a')](handleError(_0xd2e5f6,null));};exports['destroy']=function(_0x15f17f,_0x12aa2c){return db[_0x3e2d('0x25')]['find']({'where':{'id':_0x15f17f[_0x3e2d('0x3c')]['id']}})[_0x3e2d('0x13')](handleEntityNotFound(_0x12aa2c,null))[_0x3e2d('0x13')](removeEntity(_0x12aa2c,null))[_0x3e2d('0x3a')](handleError(_0x12aa2c,null));};exports[_0x3e2d('0x3f')]=function(_0x5c95be,_0x3ef0f7){if(_0x5c95be[_0x3e2d('0x40')][_0x3e2d('0x1e')]===_0x3e2d('0x17')&&!_[_0x3e2d('0x41')](_0x5c95be[_0x3e2d('0x40')][_0x3e2d('0x42')],'_')){_0x5c95be[_0x3e2d('0x40')][_0x3e2d('0x42')]='_'[_0x3e2d('0x43')](_0x5c95be[_0x3e2d('0x40')][_0x3e2d('0x42')]);}return db[_0x3e2d('0x25')][_0x3e2d('0x3f')](_0x5c95be[_0x3e2d('0x40')],{'raw':![]})[_0x3e2d('0x13')](function(_0x2d8db8){var _0x5ddb18=_0x5c95be['user'][_0x3e2d('0x14')]({'plain':!![]});if(!_0x5ddb18)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5ddb18[_0x3e2d('0x44')]===_0x3e2d('0x45')){var _0x4d9f64=_0x2d8db8[_0x3e2d('0x14')]({'plain':!![]});var _0x51d504=[{'name':'InboundRoutes','value':_0x3e2d('0x46')},{'name':'OutboundRoutes','value':_0x3e2d('0x17')},{'name':_0x3e2d('0x18'),'value':_0x3e2d('0x47')}];var _0x57d4e5=_[_0x3e2d('0x1f')](_0x51d504,[_0x3e2d('0x1c'),_0x4d9f64[_0x3e2d('0x1e')]])[_0x3e2d('0x23')];return db[_0x3e2d('0x48')][_0x3e2d('0x1f')]({'where':{'name':_0x57d4e5,'userProfileId':_0x5ddb18[_0x3e2d('0x49')]},'raw':!![]})[_0x3e2d('0x13')](function(_0xa264b8){if(_0xa264b8&&_0xa264b8['autoAssociation']===0x0){return db[_0x3e2d('0x20')][_0x3e2d('0x3f')]({'name':_0x4d9f64['name'],'resourceId':_0x4d9f64['id'],'type':_0xa264b8['name'],'sectionId':_0xa264b8['id']},{})['then'](function(){return _0x2d8db8;});}else{return _0x2d8db8;}})[_0x3e2d('0x3a')](function(_0xff5dcc){logger[_0x3e2d('0x21')](_0x3e2d('0x4a'),_0xff5dcc);throw _0xff5dcc;});}return _0x2d8db8;})['then'](respondWithResult(_0x3ef0f7,0xc9))['catch'](handleError(_0x3ef0f7,null));};exports['update']=function(_0x1a2fe3,_0x55add8){if(_0x1a2fe3[_0x3e2d('0x40')]['id']){delete _0x1a2fe3['body']['id'];}return db[_0x3e2d('0x25')][_0x3e2d('0x1f')]({'where':{'id':_0x1a2fe3[_0x3e2d('0x3c')]['id']}})[_0x3e2d('0x13')](handleEntityNotFound(_0x55add8,null))[_0x3e2d('0x13')](function(_0x33a166){if(_0x33a166){return db[_0x3e2d('0x25')][_0x3e2d('0x4b')](_[_0x3e2d('0x34')](_0x1a2fe3[_0x3e2d('0x40')],[_0x3e2d('0x42'),_0x3e2d('0x4c'),_0x3e2d('0x4d'),'recordingFormat','cutdigits',_0x3e2d('0x4e'),_0x3e2d('0x4f')]),{'where':{'context':_0x33a166[_0x3e2d('0x4c')],'exten':_0x33a166[_0x3e2d('0x42')]},'individualHooks':!![]})[_0x3e2d('0x13')](function(_0x309911){return _0x309911;});}return null;})[_0x3e2d('0x13')](respondWithStatusCode(_0x55add8,null))[_0x3e2d('0x3a')](handleError(_0x55add8,null));};exports[_0x3e2d('0x50')]=function(_0x1d2faf,_0xa1f852){var _0x5afb5b=_0x1d2faf['params']['id'];var _0x5e8aa7=_0x1d2faf[_0x3e2d('0x40')];var _0x56cc85=0xc8;var _0x47f96f=null;return db[_0x3e2d('0x51')][_0x3e2d('0x52')]({'isolationLevel':db[_0x3e2d('0x51')]['Transaction'][_0x3e2d('0x53')][_0x3e2d('0x54')]},function(_0x47a61f){return db[_0x3e2d('0x25')]['findOne']({'where':{'id':_0x5afb5b},'transaction':_0x47a61f})[_0x3e2d('0x13')](function(_0x2be162){if(_0x2be162){return db['VoiceExtension']['destroy']({'where':{'VoiceExtensionId':_0x5afb5b},'transaction':_0x47a61f})[_0x3e2d('0x13')](function(){var _0x146032=_[_0x3e2d('0x1b')](_0x5e8aa7,function(_0x2ae91f){_0x2ae91f[_0x3e2d('0x55')]=_0x5afb5b;_0x2ae91f[_0x3e2d('0x56')]=!![];return _0x2ae91f;});return _0x2be162[_0x3e2d('0x57')](_0x146032);})['then'](function(_0x3821c3){return db['VoiceExtension']['bulkCreate'](_0x3821c3,{'transaction':_0x47a61f});});}else{_0x56cc85=0x194;_0x47f96f=[];}});})[_0x3e2d('0x13')](function(){if(_0x56cc85!==0x194){return db['VoiceExtension'][_0x3e2d('0x58')]({'where':{'isApp':!![],'VoiceExtensionId':_0x5afb5b},'order':'cast(priority\x20as\x20unsigned)'})[_0x3e2d('0x13')](function(_0x3f8a39){_0x47f96f=_0x3f8a39;});}})[_0x3e2d('0x3a')](function(_0x3f7b3a){_0x56cc85=0x1f4;logger[_0x3e2d('0x21')](_0x3f7b3a[_0x3e2d('0x22')]);if(_0x3f7b3a[_0x3e2d('0x23')]){delete _0x3f7b3a['name'];}_0x47f96f=_0x3f7b3a;})[_0x3e2d('0x59')](function(){if(_0x47f96f===null){_0xa1f852[_0x3e2d('0x9')](_0x56cc85);}else{if(_0x56cc85===0x1f4){_0xa1f852['status'](_0x56cc85)[_0x3e2d('0x24')](_0x47f96f);}else{_0xa1f852['status'](_0x56cc85)[_0x3e2d('0xc')](_0x47f96f);}}});};