a25f1e38c149cb9bd5c6bf028364afc6d4d14a11
[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 _0x3154=['ignore','map','value','includes','UserProfileResource','error','stack','name','send','VoiceExtension','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','keys','options','find','params','create','body','outbound','startsWith','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','inbound','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','recordingFormat','cutdigits','mandatoryDisposition','alias','addApplications','sequelize','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','findAndCountAll','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','limit','undefined','count','offset','Content-Range','destroy','then','get','InboundRoutes','OutboundRoutes','InternalRoutes','internal'];(function(_0x38b1fe,_0x53aedb){var _0x1b3f86=function(_0x2d4112){while(--_0x2d4112){_0x38b1fe['push'](_0x38b1fe['shift']());}};_0x1b3f86(++_0x53aedb);}(_0x3154,0xfe));var _0x4315=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x3154[_0x4a9fb1];return _0x348672;};'use strict';var _=require(_0x4315('0x0'));var Redis=require(_0x4315('0x1'));var qs=require(_0x4315('0x2'));var logger=require(_0x4315('0x3'))(_0x4315('0x4'));var config=require(_0x4315('0x5'));var db=require(_0x4315('0x6'))['db'];config[_0x4315('0x7')]=_[_0x4315('0x8')](config[_0x4315('0x7')],{'host':_0x4315('0x9'),'port':0x18eb});var socket=require(_0x4315('0xa'))(new Redis(config[_0x4315('0x7')]));require('./voiceExtension.socket')[_0x4315('0xb')](socket);function respondWithStatusCode(_0x2e95d7,_0x23d381){_0x23d381=_0x23d381||0xcc;return function(_0x56274d){if(_0x56274d){return _0x2e95d7[_0x4315('0xc')](_0x23d381);}return _0x2e95d7[_0x4315('0xd')](_0x23d381)[_0x4315('0xe')]();};}function respondWithResult(_0x3bcf2b,_0x12c896){_0x12c896=_0x12c896||0xc8;return function(_0x5d2385){if(_0x5d2385){return _0x3bcf2b[_0x4315('0xd')](_0x12c896)[_0x4315('0xf')](_0x5d2385);}};}function respondWithFilteredResult(_0x3147fa,_0x551ce1){return function(_0x4b7f81){if(_0x4b7f81){var _0xf5e9f0=typeof _0x551ce1['offset']==='undefined'&&typeof _0x551ce1[_0x4315('0x10')]===_0x4315('0x11');var _0xc7e8bf=_0x4b7f81[_0x4315('0x12')];var _0x558cc7=_0xf5e9f0?0x0:_0x551ce1[_0x4315('0x13')];var _0x154def=_0xf5e9f0?_0x4b7f81['count']:_0x551ce1[_0x4315('0x13')]+_0x551ce1[_0x4315('0x10')];var _0x3f99f2;if(_0x154def>=_0xc7e8bf){_0x154def=_0xc7e8bf;_0x3f99f2=0xc8;}else{_0x3f99f2=0xce;}_0x3147fa[_0x4315('0xd')](_0x3f99f2);return _0x3147fa['set'](_0x4315('0x14'),_0x558cc7+'-'+_0x154def+'/'+_0xc7e8bf)[_0x4315('0xf')](_0x4b7f81);}return null;};}function removeEntity(_0x5a2bcf){return function(_0x3efff2){if(_0x3efff2){return _0x3efff2[_0x4315('0x15')]()[_0x4315('0x16')](function(){var _0x9f0a93=_0x3efff2[_0x4315('0x17')]({'plain':!![]});var _0x44b5b9=[{'name':_0x4315('0x18'),'value':'inbound','ignore':![]},{'name':_0x4315('0x19'),'value':'outbound','ignore':![]},{'name':_0x4315('0x1a'),'value':_0x4315('0x1b'),'ignore':![]}];var _0x323c2a=_(_0x44b5b9)['filter'](_0x4315('0x1c'))[_0x4315('0x1d')]('value')[_0x4315('0x1e')]();if(_[_0x4315('0x1f')](_0x323c2a,_0x9f0a93['type'])){return;}var _0x2cd595=_['find'](_0x44b5b9,[_0x4315('0x1e'),_0x9f0a93['type']])['name'];return db[_0x4315('0x20')][_0x4315('0x15')]({'where':{'type':_0x2cd595,'resourceId':_0x9f0a93['id']}})[_0x4315('0x16')](function(){return _0x3efff2;});})[_0x4315('0x16')](function(){_0x5a2bcf[_0x4315('0xd')](0xcc)[_0x4315('0xe')]();});}};}function handleEntityNotFound(_0x23df46){return function(_0x195dcb){if(!_0x195dcb){_0x23df46[_0x4315('0xc')](0x194);}return _0x195dcb;};}function handleError(_0x55d224,_0xdd3ec7){_0xdd3ec7=_0xdd3ec7||0x1f4;return function(_0x3bea9e){logger[_0x4315('0x21')](_0x3bea9e[_0x4315('0x22')]);if(_0x3bea9e[_0x4315('0x23')]){delete _0x3bea9e[_0x4315('0x23')];}_0x55d224[_0x4315('0xd')](_0xdd3ec7)[_0x4315('0x24')](_0x3bea9e);};}exports['index']=function(_0x2eef9e,_0x377efd){var _0xc0eb46={},_0x420b1b={},_0x19ccc9={'count':0x0,'rows':[]};var _0x44b7bc=_['map'](db[_0x4315('0x25')][_0x4315('0x26')],function(_0x28eac8){return{'name':_0x28eac8['fieldName'],'type':_0x28eac8[_0x4315('0x27')][_0x4315('0x28')]};});_0x420b1b[_0x4315('0x29')]=_[_0x4315('0x1d')](_0x44b7bc,_0x4315('0x23'));_0x420b1b[_0x4315('0x2a')]=_['keys'](_0x2eef9e['query']);_0x420b1b[_0x4315('0x2b')]=_[_0x4315('0x2c')](_0x420b1b[_0x4315('0x29')],_0x420b1b[_0x4315('0x2a')]);_0xc0eb46[_0x4315('0x2d')]=_[_0x4315('0x2c')](_0x420b1b['model'],qs[_0x4315('0x2e')](_0x2eef9e[_0x4315('0x2a')][_0x4315('0x2e')]));_0xc0eb46[_0x4315('0x2d')]=_0xc0eb46['attributes'][_0x4315('0x2f')]?_0xc0eb46['attributes']:_0x420b1b[_0x4315('0x29')];if(!_0x2eef9e[_0x4315('0x2a')]['hasOwnProperty'](_0x4315('0x30'))){_0xc0eb46[_0x4315('0x10')]=qs['limit'](_0x2eef9e['query'][_0x4315('0x10')]);_0xc0eb46[_0x4315('0x13')]=qs[_0x4315('0x13')](_0x2eef9e[_0x4315('0x2a')][_0x4315('0x13')]);}_0xc0eb46[_0x4315('0x31')]=qs[_0x4315('0x32')](_0x2eef9e[_0x4315('0x2a')][_0x4315('0x32')]);_0xc0eb46[_0x4315('0x33')]=qs[_0x4315('0x2b')](_[_0x4315('0x34')](_0x2eef9e['query'],_0x420b1b[_0x4315('0x2b')]),_0x44b7bc);if(_0x2eef9e[_0x4315('0x2a')][_0x4315('0x35')]){_0xc0eb46[_0x4315('0x33')]=_[_0x4315('0x36')](_0xc0eb46[_0x4315('0x33')],{'$or':_[_0x4315('0x1d')](_0x44b7bc,function(_0x1b2422){if(_0x1b2422[_0x4315('0x27')]!==_0x4315('0x37')){var _0x515634={};_0x515634[_0x1b2422[_0x4315('0x23')]]={'$like':'%'+_0x2eef9e[_0x4315('0x2a')][_0x4315('0x35')]+'%'};return _0x515634;}})});}_0xc0eb46=_['merge']({},_0xc0eb46,_0x2eef9e['options']);var _0x5050ea={'where':_0xc0eb46[_0x4315('0x33')]};return db['VoiceExtension'][_0x4315('0x12')](_0x5050ea)[_0x4315('0x16')](function(_0x3380a7){_0x19ccc9[_0x4315('0x12')]=_0x3380a7;if(_0x2eef9e[_0x4315('0x2a')][_0x4315('0x38')]){_0xc0eb46[_0x4315('0x39')]=[{'all':!![]}];}return db[_0x4315('0x25')][_0x4315('0x3a')](_0xc0eb46);})['then'](function(_0x1bd212){_0x19ccc9[_0x4315('0x3b')]=_0x1bd212;return _0x19ccc9;})[_0x4315('0x16')](respondWithFilteredResult(_0x377efd,_0xc0eb46))[_0x4315('0x3c')](handleError(_0x377efd,null));};exports['show']=function(_0x5138a6,_0x3edb1d){var _0x45a7d6={'raw':![],'where':{'id':_0x5138a6['params']['id']}},_0x12da19={};_0x12da19['model']=_[_0x4315('0x3d')](db[_0x4315('0x25')][_0x4315('0x26')]);_0x12da19[_0x4315('0x2a')]=_[_0x4315('0x3d')](_0x5138a6[_0x4315('0x2a')]);_0x12da19[_0x4315('0x2b')]=_[_0x4315('0x2c')](_0x12da19[_0x4315('0x29')],_0x12da19['query']);_0x45a7d6[_0x4315('0x2d')]=_['intersection'](_0x12da19[_0x4315('0x29')],qs[_0x4315('0x2e')](_0x5138a6['query'][_0x4315('0x2e')]));_0x45a7d6['attributes']=_0x45a7d6['attributes'][_0x4315('0x2f')]?_0x45a7d6[_0x4315('0x2d')]:_0x12da19[_0x4315('0x29')];if(_0x5138a6[_0x4315('0x2a')][_0x4315('0x38')]){_0x45a7d6[_0x4315('0x39')]=[{'all':!![]}];}_0x45a7d6=_[_0x4315('0x36')]({},_0x45a7d6,_0x5138a6[_0x4315('0x3e')]);return db[_0x4315('0x25')][_0x4315('0x3f')](_0x45a7d6)[_0x4315('0x16')](handleEntityNotFound(_0x3edb1d,null))[_0x4315('0x16')](respondWithResult(_0x3edb1d,null))[_0x4315('0x3c')](handleError(_0x3edb1d,null));};exports[_0x4315('0x15')]=function(_0x503ff9,_0x14a480){return db[_0x4315('0x25')]['find']({'where':{'id':_0x503ff9[_0x4315('0x40')]['id']}})[_0x4315('0x16')](handleEntityNotFound(_0x14a480,null))[_0x4315('0x16')](removeEntity(_0x14a480,null))[_0x4315('0x3c')](handleError(_0x14a480,null));};exports[_0x4315('0x41')]=function(_0x167eb5,_0x467bbb){if(_0x167eb5[_0x4315('0x42')][_0x4315('0x27')]===_0x4315('0x43')&&!_[_0x4315('0x44')](_0x167eb5[_0x4315('0x42')][_0x4315('0x45')],'_')){_0x167eb5['body'][_0x4315('0x45')]='_'[_0x4315('0x46')](_0x167eb5[_0x4315('0x42')]['exten']);}return db['VoiceExtension'][_0x4315('0x41')](_0x167eb5['body'],{'raw':![]})[_0x4315('0x16')](function(_0x3732ab){var _0x383c26=_0x167eb5[_0x4315('0x47')]['get']({'plain':!![]});if(!_0x383c26)throw new Error(_0x4315('0x48'));if(_0x383c26['role']===_0x4315('0x47')){var _0x2b8cb0=_0x3732ab[_0x4315('0x17')]({'plain':!![]});var _0x221210=[{'name':_0x4315('0x18'),'value':_0x4315('0x49')},{'name':_0x4315('0x19'),'value':_0x4315('0x43')},{'name':_0x4315('0x1a'),'value':_0x4315('0x1b')}];var _0x493e36=_[_0x4315('0x3f')](_0x221210,['value',_0x2b8cb0['type']])['name'];return db['UserProfileSection'][_0x4315('0x3f')]({'where':{'name':_0x493e36,'userProfileId':_0x383c26[_0x4315('0x4a')]},'raw':!![]})['then'](function(_0x4294b9){if(_0x4294b9&&_0x4294b9[_0x4315('0x4b')]===0x0){return db[_0x4315('0x20')][_0x4315('0x41')]({'name':_0x2b8cb0['name'],'resourceId':_0x2b8cb0['id'],'type':_0x4294b9['name'],'sectionId':_0x4294b9['id']},{})[_0x4315('0x16')](function(){return _0x3732ab;});}else{return _0x3732ab;}})['catch'](function(_0x415499){logger[_0x4315('0x21')](_0x4315('0x4c'),_0x415499);throw _0x415499;});}return _0x3732ab;})['then'](respondWithResult(_0x467bbb,0xc9))[_0x4315('0x3c')](handleError(_0x467bbb,null));};exports[_0x4315('0x4d')]=function(_0xe8983f,_0x30d101){if(_0xe8983f[_0x4315('0x42')]['id']){delete _0xe8983f[_0x4315('0x42')]['id'];}return db[_0x4315('0x25')]['find']({'where':{'id':_0xe8983f[_0x4315('0x40')]['id']}})[_0x4315('0x16')](handleEntityNotFound(_0x30d101,null))[_0x4315('0x16')](function(_0x51c273){if(_0x51c273){return db['VoiceExtension'][_0x4315('0x4d')](_[_0x4315('0x34')](_0xe8983f[_0x4315('0x42')],[_0x4315('0x45'),_0x4315('0x4e'),'description',_0x4315('0x4f'),_0x4315('0x50'),_0x4315('0x51'),_0x4315('0x52')]),{'where':{'context':_0x51c273['context'],'exten':_0x51c273[_0x4315('0x45')]},'individualHooks':!![]})[_0x4315('0x16')](function(_0x2d2757){return _0x2d2757;});}return null;})[_0x4315('0x16')](respondWithStatusCode(_0x30d101,null))[_0x4315('0x3c')](handleError(_0x30d101,null));};exports[_0x4315('0x53')]=function(_0x4629bd,_0x12c6c3){var _0x4fa3d1=_0x4629bd[_0x4315('0x40')]['id'];var _0x3be75e=_0x4629bd['body'];var _0x2c4ebd=0xc8;var _0x3ad4b1=null;return db[_0x4315('0x54')]['transaction']({'isolationLevel':db['sequelize'][_0x4315('0x55')][_0x4315('0x56')][_0x4315('0x57')]},function(_0x170809){return db['VoiceExtension'][_0x4315('0x58')]({'where':{'id':_0x4fa3d1},'transaction':_0x170809})[_0x4315('0x16')](function(_0x440f4e){if(_0x440f4e){return db[_0x4315('0x25')][_0x4315('0x15')]({'where':{'VoiceExtensionId':_0x4fa3d1},'transaction':_0x170809})[_0x4315('0x16')](function(){var _0x1c5f38=_[_0x4315('0x1d')](_0x3be75e,function(_0x78d0a5){_0x78d0a5[_0x4315('0x59')]=_0x4fa3d1;_0x78d0a5[_0x4315('0x5a')]=!![];return _0x78d0a5;});return _0x440f4e[_0x4315('0x5b')](_0x1c5f38);})[_0x4315('0x16')](function(_0x50d7cd){return db['VoiceExtension'][_0x4315('0x5c')](_0x50d7cd,{'transaction':_0x170809});});}else{_0x2c4ebd=0x194;_0x3ad4b1=[];}});})[_0x4315('0x16')](function(){if(_0x2c4ebd!==0x194){return db[_0x4315('0x25')][_0x4315('0x5d')]({'where':{'isApp':!![],'VoiceExtensionId':_0x4fa3d1},'order':'cast(priority\x20as\x20unsigned)'})[_0x4315('0x16')](function(_0x31ad9b){_0x3ad4b1=_0x31ad9b;});}})[_0x4315('0x3c')](function(_0x3b3737){_0x2c4ebd=0x1f4;logger[_0x4315('0x21')](_0x3b3737['stack']);if(_0x3b3737['name']){delete _0x3b3737['name'];}_0x3ad4b1=_0x3b3737;})['finally'](function(){if(_0x3ad4b1===null){_0x12c6c3['sendStatus'](_0x2c4ebd);}else{if(_0x2c4ebd===0x1f4){_0x12c6c3[_0x4315('0xd')](_0x2c4ebd)[_0x4315('0x24')](_0x3ad4b1);}else{_0x12c6c3[_0x4315('0xd')](_0x2c4ebd)['json'](_0x3ad4b1);}}});};