Built motion from commit 43538d75.|2.5.35
[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 _0x1bfd=['createRouting','log','LOG\x20~\x20.then\x20~\x20routing','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','lodash','ioredis','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','destroy','then','get','InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','ignore','value','includes','type','find','name','UserProfileResource','error','stack','send','index','VoiceExtension','rawAttributes','fieldName','key','map','keys','query','filters','intersection','model','attributes','fields','nolimit','order','sort','where','filter','merge','VIRTUAL','includeAll','include','show','params','length','catch','create','body','startsWith','exten','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','internal','userProfileId','autoAssociation','update','pick','context','description','recordingFormat','cutdigits','mandatoryDisposition','alias','addApplications','findOne','transaction','VoiceExtensionId'];(function(_0x3297f8,_0x23071c){var _0xb62103=function(_0x21290c){while(--_0x21290c){_0x3297f8['push'](_0x3297f8['shift']());}};_0xb62103(++_0x23071c);}(_0x1bfd,0xbc));var _0xd1bf=function(_0x56938c,_0x249241){_0x56938c=_0x56938c-0x0;var _0x108c9e=_0x1bfd[_0x56938c];return _0x108c9e;};'use strict';var _=require(_0xd1bf('0x0'));var Redis=require(_0xd1bf('0x1'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0xd1bf('0x2'));var config=require(_0xd1bf('0x3'));var db=require(_0xd1bf('0x4'))['db'];config[_0xd1bf('0x5')]=_[_0xd1bf('0x6')](config[_0xd1bf('0x5')],{'host':_0xd1bf('0x7'),'port':0x18eb});var socket=require(_0xd1bf('0x8'))(new Redis(config['redis']));require('./voiceExtension.socket')[_0xd1bf('0x9')](socket);function respondWithStatusCode(_0x33903b,_0x589301){_0x589301=_0x589301||0xcc;return function(_0x529369){if(_0x529369){return _0x33903b[_0xd1bf('0xa')](_0x589301);}return _0x33903b[_0xd1bf('0xb')](_0x589301)[_0xd1bf('0xc')]();};}function respondWithResult(_0x4e3628,_0x2c2810){_0x2c2810=_0x2c2810||0xc8;return function(_0x101a37){if(_0x101a37){return _0x4e3628[_0xd1bf('0xb')](_0x2c2810)[_0xd1bf('0xd')](_0x101a37);}};}function respondWithFilteredResult(_0x332014,_0x556de7){return function(_0x2839d6){if(_0x2839d6){var _0xfa50d2=typeof _0x556de7['offset']===_0xd1bf('0xe')&&typeof _0x556de7[_0xd1bf('0xf')]===_0xd1bf('0xe');var _0x58ec72=_0x2839d6[_0xd1bf('0x10')];var _0x7af3b1=_0xfa50d2?0x0:_0x556de7[_0xd1bf('0x11')];var _0x1a7f55=_0xfa50d2?_0x2839d6[_0xd1bf('0x10')]:_0x556de7[_0xd1bf('0x11')]+_0x556de7[_0xd1bf('0xf')];var _0x1c3900;if(_0x1a7f55>=_0x58ec72){_0x1a7f55=_0x58ec72;_0x1c3900=0xc8;}else{_0x1c3900=0xce;}_0x332014[_0xd1bf('0xb')](_0x1c3900);return _0x332014['set'](_0xd1bf('0x12'),_0x7af3b1+'-'+_0x1a7f55+'/'+_0x58ec72)[_0xd1bf('0xd')](_0x2839d6);}return null;};}function removeEntity(_0x3c4568){return function(_0x8f3dd3){if(_0x8f3dd3){return _0x8f3dd3[_0xd1bf('0x13')]()[_0xd1bf('0x14')](function(){var _0x1c48e5=_0x8f3dd3[_0xd1bf('0x15')]({'plain':!![]});var _0x1899c8=[{'name':_0xd1bf('0x16'),'value':_0xd1bf('0x17'),'ignore':![]},{'name':_0xd1bf('0x18'),'value':_0xd1bf('0x19'),'ignore':![]},{'name':_0xd1bf('0x1a'),'value':'internal','ignore':![]}];var _0x5e18fb=_(_0x1899c8)['filter'](_0xd1bf('0x1b'))['map']('value')[_0xd1bf('0x1c')]();if(_[_0xd1bf('0x1d')](_0x5e18fb,_0x1c48e5[_0xd1bf('0x1e')])){return;}var _0xb0693d=_[_0xd1bf('0x1f')](_0x1899c8,[_0xd1bf('0x1c'),_0x1c48e5[_0xd1bf('0x1e')]])[_0xd1bf('0x20')];return db[_0xd1bf('0x21')]['destroy']({'where':{'type':_0xb0693d,'resourceId':_0x1c48e5['id']}})[_0xd1bf('0x14')](function(){return _0x8f3dd3;});})[_0xd1bf('0x14')](function(){_0x3c4568[_0xd1bf('0xb')](0xcc)['end']();});}};}function handleEntityNotFound(_0xe3bd88){return function(_0x4e44f8){if(!_0x4e44f8){_0xe3bd88['sendStatus'](0x194);}return _0x4e44f8;};}function handleError(_0x12d61d,_0x5701d1){_0x5701d1=_0x5701d1||0x1f4;return function(_0x4772ae){logger[_0xd1bf('0x22')](_0x4772ae[_0xd1bf('0x23')]);if(_0x4772ae[_0xd1bf('0x20')]){delete _0x4772ae[_0xd1bf('0x20')];}_0x12d61d[_0xd1bf('0xb')](_0x5701d1)[_0xd1bf('0x24')](_0x4772ae);};}exports[_0xd1bf('0x25')]=function(_0x4c0a0d,_0x20fe18){var _0x1f8c54={},_0x45b012={},_0x569b36={'count':0x0,'rows':[]};var _0x1af9ea=_['map'](db[_0xd1bf('0x26')][_0xd1bf('0x27')],function(_0x928557){return{'name':_0x928557[_0xd1bf('0x28')],'type':_0x928557[_0xd1bf('0x1e')][_0xd1bf('0x29')]};});_0x45b012['model']=_[_0xd1bf('0x2a')](_0x1af9ea,_0xd1bf('0x20'));_0x45b012['query']=_[_0xd1bf('0x2b')](_0x4c0a0d[_0xd1bf('0x2c')]);_0x45b012[_0xd1bf('0x2d')]=_[_0xd1bf('0x2e')](_0x45b012[_0xd1bf('0x2f')],_0x45b012[_0xd1bf('0x2c')]);_0x1f8c54[_0xd1bf('0x30')]=_[_0xd1bf('0x2e')](_0x45b012[_0xd1bf('0x2f')],qs[_0xd1bf('0x31')](_0x4c0a0d[_0xd1bf('0x2c')][_0xd1bf('0x31')]));_0x1f8c54['attributes']=_0x1f8c54[_0xd1bf('0x30')]['length']?_0x1f8c54['attributes']:_0x45b012['model'];if(!_0x4c0a0d[_0xd1bf('0x2c')]['hasOwnProperty'](_0xd1bf('0x32'))){_0x1f8c54['limit']=qs[_0xd1bf('0xf')](_0x4c0a0d[_0xd1bf('0x2c')][_0xd1bf('0xf')]);_0x1f8c54['offset']=qs['offset'](_0x4c0a0d[_0xd1bf('0x2c')]['offset']);}_0x1f8c54[_0xd1bf('0x33')]=qs[_0xd1bf('0x34')](_0x4c0a0d[_0xd1bf('0x2c')][_0xd1bf('0x34')]);_0x1f8c54[_0xd1bf('0x35')]=qs[_0xd1bf('0x2d')](_['pick'](_0x4c0a0d[_0xd1bf('0x2c')],_0x45b012[_0xd1bf('0x2d')]),_0x1af9ea);if(_0x4c0a0d['query'][_0xd1bf('0x36')]){_0x1f8c54['where']=_[_0xd1bf('0x37')](_0x1f8c54['where'],{'$or':_['map'](_0x1af9ea,function(_0x3f1206){if(_0x3f1206[_0xd1bf('0x1e')]!==_0xd1bf('0x38')){var _0x16b0d1={};_0x16b0d1[_0x3f1206[_0xd1bf('0x20')]]={'$like':'%'+_0x4c0a0d[_0xd1bf('0x2c')][_0xd1bf('0x36')]+'%'};return _0x16b0d1;}})});}_0x1f8c54=_[_0xd1bf('0x37')]({},_0x1f8c54,_0x4c0a0d['options']);var _0x17abfa={'where':_0x1f8c54[_0xd1bf('0x35')]};return db[_0xd1bf('0x26')][_0xd1bf('0x10')](_0x17abfa)[_0xd1bf('0x14')](function(_0x41abfb){_0x569b36[_0xd1bf('0x10')]=_0x41abfb;if(_0x4c0a0d[_0xd1bf('0x2c')][_0xd1bf('0x39')]){_0x1f8c54[_0xd1bf('0x3a')]=[{'all':!![]}];}return db[_0xd1bf('0x26')]['findAll'](_0x1f8c54);})['then'](function(_0x31f057){_0x569b36['rows']=_0x31f057;return _0x569b36;})[_0xd1bf('0x14')](respondWithFilteredResult(_0x20fe18,_0x1f8c54))['catch'](handleError(_0x20fe18,null));};exports[_0xd1bf('0x3b')]=function(_0x1e6501,_0x232e4a){var _0x3c8169={'raw':![],'where':{'id':_0x1e6501[_0xd1bf('0x3c')]['id']}},_0x6cea39={};_0x6cea39[_0xd1bf('0x2f')]=_[_0xd1bf('0x2b')](db['VoiceExtension'][_0xd1bf('0x27')]);_0x6cea39[_0xd1bf('0x2c')]=_['keys'](_0x1e6501[_0xd1bf('0x2c')]);_0x6cea39['filters']=_[_0xd1bf('0x2e')](_0x6cea39['model'],_0x6cea39['query']);_0x3c8169['attributes']=_['intersection'](_0x6cea39[_0xd1bf('0x2f')],qs['fields'](_0x1e6501[_0xd1bf('0x2c')][_0xd1bf('0x31')]));_0x3c8169[_0xd1bf('0x30')]=_0x3c8169[_0xd1bf('0x30')][_0xd1bf('0x3d')]?_0x3c8169[_0xd1bf('0x30')]:_0x6cea39[_0xd1bf('0x2f')];if(_0x1e6501[_0xd1bf('0x2c')]['includeAll']){_0x3c8169[_0xd1bf('0x3a')]=[{'all':!![]}];}_0x3c8169=_[_0xd1bf('0x37')]({},_0x3c8169,_0x1e6501['options']);return db[_0xd1bf('0x26')][_0xd1bf('0x1f')](_0x3c8169)[_0xd1bf('0x14')](handleEntityNotFound(_0x232e4a,null))['then'](respondWithResult(_0x232e4a,null))[_0xd1bf('0x3e')](handleError(_0x232e4a,null));};exports['destroy']=function(_0x4b4c50,_0x87eaba){return db[_0xd1bf('0x26')]['find']({'where':{'id':_0x4b4c50['params']['id']}})['then'](handleEntityNotFound(_0x87eaba,null))[_0xd1bf('0x14')](removeEntity(_0x87eaba,null))[_0xd1bf('0x3e')](handleError(_0x87eaba,null));};exports[_0xd1bf('0x3f')]=function(_0x12f027,_0x10791a){if(_0x12f027[_0xd1bf('0x40')][_0xd1bf('0x1e')]===_0xd1bf('0x19')&&!_[_0xd1bf('0x41')](_0x12f027[_0xd1bf('0x40')][_0xd1bf('0x42')],'_')){_0x12f027[_0xd1bf('0x40')][_0xd1bf('0x42')]='_'['concat'](_0x12f027[_0xd1bf('0x40')][_0xd1bf('0x42')]);}return db['VoiceExtension'][_0xd1bf('0x3f')](_0x12f027['body'],{'raw':![]})[_0xd1bf('0x14')](function(_0x3ce4f4){var _0x3ae278=_0x12f027[_0xd1bf('0x43')][_0xd1bf('0x15')]({'plain':!![]});if(!_0x3ae278)throw new Error(_0xd1bf('0x44'));if(_0x3ae278[_0xd1bf('0x45')]===_0xd1bf('0x43')){var _0x2f94c4=_0x3ce4f4[_0xd1bf('0x15')]({'plain':!![]});var _0x3f4333=[{'name':_0xd1bf('0x16'),'value':_0xd1bf('0x17')},{'name':_0xd1bf('0x18'),'value':'outbound'},{'name':_0xd1bf('0x1a'),'value':_0xd1bf('0x46')}];var _0xd86fbb=_[_0xd1bf('0x1f')](_0x3f4333,['value',_0x2f94c4['type']])[_0xd1bf('0x20')];return db['UserProfileSection'][_0xd1bf('0x1f')]({'where':{'name':_0xd86fbb,'userProfileId':_0x3ae278[_0xd1bf('0x47')]},'raw':!![]})[_0xd1bf('0x14')](function(_0xd9b70b){if(_0xd9b70b&&_0xd9b70b[_0xd1bf('0x48')]===0x0){return db['UserProfileResource'][_0xd1bf('0x3f')]({'name':_0x2f94c4['name'],'resourceId':_0x2f94c4['id'],'type':_0xd9b70b[_0xd1bf('0x20')],'sectionId':_0xd9b70b['id']},{})[_0xd1bf('0x14')](function(){return _0x3ce4f4;});}else{return _0x3ce4f4;}})[_0xd1bf('0x3e')](function(_0x16061c){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x16061c);throw _0x16061c;});}return _0x3ce4f4;})[_0xd1bf('0x14')](respondWithResult(_0x10791a,0xc9))[_0xd1bf('0x3e')](handleError(_0x10791a,null));};exports['update']=function(_0x208ee8,_0x1d08ee){if(_0x208ee8[_0xd1bf('0x40')]['id']){delete _0x208ee8[_0xd1bf('0x40')]['id'];}return db[_0xd1bf('0x26')][_0xd1bf('0x1f')]({'where':{'id':_0x208ee8[_0xd1bf('0x3c')]['id']}})[_0xd1bf('0x14')](handleEntityNotFound(_0x1d08ee,null))['then'](function(_0x450319){if(_0x450319){return db['VoiceExtension'][_0xd1bf('0x49')](_[_0xd1bf('0x4a')](_0x208ee8[_0xd1bf('0x40')],[_0xd1bf('0x42'),_0xd1bf('0x4b'),_0xd1bf('0x4c'),_0xd1bf('0x4d'),_0xd1bf('0x4e'),_0xd1bf('0x4f'),_0xd1bf('0x50')]),{'where':{'context':_0x450319[_0xd1bf('0x4b')],'exten':_0x450319['exten']},'individualHooks':!![]})[_0xd1bf('0x14')](function(_0x37674f){return _0x37674f;});}return null;})[_0xd1bf('0x14')](respondWithStatusCode(_0x1d08ee,null))[_0xd1bf('0x3e')](handleError(_0x1d08ee,null));};exports[_0xd1bf('0x51')]=function(_0x5577dc,_0x131a77){return db[_0xd1bf('0x26')][_0xd1bf('0x52')]({'where':{'id':_0x5577dc['params']['id']}})[_0xd1bf('0x14')](function(_0x3a3687){if(_0x3a3687){return db['sequelize'][_0xd1bf('0x53')](function(_0x1b6787){return db[_0xd1bf('0x26')]['destroy']({'where':{'VoiceExtensionId':_0x5577dc[_0xd1bf('0x3c')]['id']},'transaction':_0x1b6787})[_0xd1bf('0x14')](function(){var _0x1aff8b=_[_0xd1bf('0x2a')](_0x5577dc['body'],function(_0x1aa4f8){_0x1aa4f8[_0xd1bf('0x54')]=_0x5577dc[_0xd1bf('0x3c')]['id'];_0x1aa4f8['isApp']=!![];return _0x1aa4f8;});return _0x3a3687[_0xd1bf('0x55')](_0x1aff8b);})[_0xd1bf('0x14')](function(_0x4a5970){console[_0xd1bf('0x56')](_0xd1bf('0x57'),_0x4a5970);return db[_0xd1bf('0x26')][_0xd1bf('0x58')](_0x4a5970,{'transaction':_0x1b6787});});})[_0xd1bf('0x14')](function(){return db[_0xd1bf('0x26')][_0xd1bf('0x59')]({'where':{'isApp':!![],'VoiceExtensionId':_0x5577dc[_0xd1bf('0x3c')]['id']},'order':_0xd1bf('0x5a')});});}})['then'](respondWithResult(_0x131a77,null))[_0xd1bf('0x3e')](handleError(_0x131a77,null));};