Built motion from commit f16df95f.|2.5.40
[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 _0xd35b=['count','set','Content-Range','destroy','then','get','inbound','OutboundRoutes','outbound','InternalRoutes','ignore','map','value','type','find','name','UserProfileResource','error','send','fieldName','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','VoiceExtension','includeAll','findAll','rows','catch','show','params','create','body','startsWith','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','InboundRoutes','internal','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','cutdigits','alias','addApplications','Transaction','findOne','VoiceExtensionId','isApp','createRouting','findAndCountAll','cast(priority\x20as\x20unsigned)','stack','lodash','ioredis','../../components/parsers/qs','api','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','sendStatus','status','end','offset','undefined','limit'];(function(_0x57f91f,_0x21cf17){var _0x4deca6=function(_0x5c97bb){while(--_0x5c97bb){_0x57f91f['push'](_0x57f91f['shift']());}};_0x4deca6(++_0x21cf17);}(_0xd35b,0x19e));var _0xbd35=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0xd35b[_0x491a7f];return _0x3d8f44;};'use strict';var _=require(_0xbd35('0x0'));var Redis=require(_0xbd35('0x1'));var qs=require(_0xbd35('0x2'));var logger=require('../../config/logger')(_0xbd35('0x3'));var config=require(_0xbd35('0x4'));var db=require(_0xbd35('0x5'))['db'];config['redis']=_[_0xbd35('0x6')](config[_0xbd35('0x7')],{'host':_0xbd35('0x8'),'port':0x18eb});var socket=require(_0xbd35('0x9'))(new Redis(config[_0xbd35('0x7')]));require('./voiceExtension.socket')['register'](socket);function respondWithStatusCode(_0x24cc73,_0x25b1fd){_0x25b1fd=_0x25b1fd||0xcc;return function(_0x4bca77){if(_0x4bca77){return _0x24cc73[_0xbd35('0xa')](_0x25b1fd);}return _0x24cc73[_0xbd35('0xb')](_0x25b1fd)[_0xbd35('0xc')]();};}function respondWithResult(_0x302822,_0x3bdd2c){_0x3bdd2c=_0x3bdd2c||0xc8;return function(_0x14d3d5){if(_0x14d3d5){return _0x302822[_0xbd35('0xb')](_0x3bdd2c)['json'](_0x14d3d5);}};}function respondWithFilteredResult(_0xc94664,_0x4dca91){return function(_0x19b176){if(_0x19b176){var _0x5bf27b=typeof _0x4dca91[_0xbd35('0xd')]===_0xbd35('0xe')&&typeof _0x4dca91[_0xbd35('0xf')]===_0xbd35('0xe');var _0x3df5b3=_0x19b176['count'];var _0x274e1d=_0x5bf27b?0x0:_0x4dca91['offset'];var _0x1a5fd0=_0x5bf27b?_0x19b176[_0xbd35('0x10')]:_0x4dca91[_0xbd35('0xd')]+_0x4dca91[_0xbd35('0xf')];var _0x333feb;if(_0x1a5fd0>=_0x3df5b3){_0x1a5fd0=_0x3df5b3;_0x333feb=0xc8;}else{_0x333feb=0xce;}_0xc94664[_0xbd35('0xb')](_0x333feb);return _0xc94664[_0xbd35('0x11')](_0xbd35('0x12'),_0x274e1d+'-'+_0x1a5fd0+'/'+_0x3df5b3)['json'](_0x19b176);}return null;};}function removeEntity(_0x36a453){return function(_0x4c02a3){if(_0x4c02a3){return _0x4c02a3[_0xbd35('0x13')]()[_0xbd35('0x14')](function(){var _0x39048f=_0x4c02a3[_0xbd35('0x15')]({'plain':!![]});var _0x46208d=[{'name':'InboundRoutes','value':_0xbd35('0x16'),'ignore':![]},{'name':_0xbd35('0x17'),'value':_0xbd35('0x18'),'ignore':![]},{'name':_0xbd35('0x19'),'value':'internal','ignore':![]}];var _0x2b16f1=_(_0x46208d)['filter'](_0xbd35('0x1a'))[_0xbd35('0x1b')](_0xbd35('0x1c'))[_0xbd35('0x1c')]();if(_['includes'](_0x2b16f1,_0x39048f[_0xbd35('0x1d')])){return;}var _0x47f14b=_[_0xbd35('0x1e')](_0x46208d,[_0xbd35('0x1c'),_0x39048f[_0xbd35('0x1d')]])[_0xbd35('0x1f')];return db[_0xbd35('0x20')][_0xbd35('0x13')]({'where':{'type':_0x47f14b,'resourceId':_0x39048f['id']}})[_0xbd35('0x14')](function(){return _0x4c02a3;});})['then'](function(){_0x36a453[_0xbd35('0xb')](0xcc)[_0xbd35('0xc')]();});}};}function handleEntityNotFound(_0x100c1c){return function(_0xe58ca1){if(!_0xe58ca1){_0x100c1c[_0xbd35('0xa')](0x194);}return _0xe58ca1;};}function handleError(_0x247ea2,_0x2615e1){_0x2615e1=_0x2615e1||0x1f4;return function(_0x575770){logger[_0xbd35('0x21')](_0x575770['stack']);if(_0x575770[_0xbd35('0x1f')]){delete _0x575770[_0xbd35('0x1f')];}_0x247ea2[_0xbd35('0xb')](_0x2615e1)[_0xbd35('0x22')](_0x575770);};}exports['index']=function(_0x4384c5,_0xef4ae){var _0x4eef7a={},_0x3128b6={},_0x49d487={'count':0x0,'rows':[]};var _0x3c3109=_[_0xbd35('0x1b')](db['VoiceExtension']['rawAttributes'],function(_0x4d7bc6){return{'name':_0x4d7bc6[_0xbd35('0x23')],'type':_0x4d7bc6[_0xbd35('0x1d')]['key']};});_0x3128b6[_0xbd35('0x24')]=_[_0xbd35('0x1b')](_0x3c3109,_0xbd35('0x1f'));_0x3128b6[_0xbd35('0x25')]=_[_0xbd35('0x26')](_0x4384c5['query']);_0x3128b6[_0xbd35('0x27')]=_['intersection'](_0x3128b6['model'],_0x3128b6['query']);_0x4eef7a[_0xbd35('0x28')]=_[_0xbd35('0x29')](_0x3128b6['model'],qs[_0xbd35('0x2a')](_0x4384c5['query']['fields']));_0x4eef7a[_0xbd35('0x28')]=_0x4eef7a[_0xbd35('0x28')][_0xbd35('0x2b')]?_0x4eef7a['attributes']:_0x3128b6[_0xbd35('0x24')];if(!_0x4384c5[_0xbd35('0x25')][_0xbd35('0x2c')](_0xbd35('0x2d'))){_0x4eef7a[_0xbd35('0xf')]=qs[_0xbd35('0xf')](_0x4384c5[_0xbd35('0x25')][_0xbd35('0xf')]);_0x4eef7a['offset']=qs[_0xbd35('0xd')](_0x4384c5[_0xbd35('0x25')][_0xbd35('0xd')]);}_0x4eef7a['order']=qs[_0xbd35('0x2e')](_0x4384c5[_0xbd35('0x25')][_0xbd35('0x2e')]);_0x4eef7a[_0xbd35('0x2f')]=qs['filters'](_[_0xbd35('0x30')](_0x4384c5[_0xbd35('0x25')],_0x3128b6[_0xbd35('0x27')]),_0x3c3109);if(_0x4384c5[_0xbd35('0x25')][_0xbd35('0x31')]){_0x4eef7a[_0xbd35('0x2f')]=_[_0xbd35('0x32')](_0x4eef7a[_0xbd35('0x2f')],{'$or':_[_0xbd35('0x1b')](_0x3c3109,function(_0x4760ae){if(_0x4760ae['type']!==_0xbd35('0x33')){var _0x2dd2d7={};_0x2dd2d7[_0x4760ae[_0xbd35('0x1f')]]={'$like':'%'+_0x4384c5['query']['filter']+'%'};return _0x2dd2d7;}})});}_0x4eef7a=_['merge']({},_0x4eef7a,_0x4384c5[_0xbd35('0x34')]);var _0x4c0ddd={'where':_0x4eef7a[_0xbd35('0x2f')]};return db[_0xbd35('0x35')][_0xbd35('0x10')](_0x4c0ddd)['then'](function(_0x4935ec){_0x49d487[_0xbd35('0x10')]=_0x4935ec;if(_0x4384c5[_0xbd35('0x25')][_0xbd35('0x36')]){_0x4eef7a['include']=[{'all':!![]}];}return db[_0xbd35('0x35')][_0xbd35('0x37')](_0x4eef7a);})[_0xbd35('0x14')](function(_0x465c26){_0x49d487[_0xbd35('0x38')]=_0x465c26;return _0x49d487;})[_0xbd35('0x14')](respondWithFilteredResult(_0xef4ae,_0x4eef7a))[_0xbd35('0x39')](handleError(_0xef4ae,null));};exports[_0xbd35('0x3a')]=function(_0x26aeb0,_0x4c1d4f){var _0x19d8a1={'raw':![],'where':{'id':_0x26aeb0[_0xbd35('0x3b')]['id']}},_0x35da5d={};_0x35da5d[_0xbd35('0x24')]=_[_0xbd35('0x26')](db[_0xbd35('0x35')]['rawAttributes']);_0x35da5d[_0xbd35('0x25')]=_[_0xbd35('0x26')](_0x26aeb0[_0xbd35('0x25')]);_0x35da5d['filters']=_[_0xbd35('0x29')](_0x35da5d['model'],_0x35da5d['query']);_0x19d8a1[_0xbd35('0x28')]=_[_0xbd35('0x29')](_0x35da5d[_0xbd35('0x24')],qs[_0xbd35('0x2a')](_0x26aeb0[_0xbd35('0x25')][_0xbd35('0x2a')]));_0x19d8a1[_0xbd35('0x28')]=_0x19d8a1[_0xbd35('0x28')][_0xbd35('0x2b')]?_0x19d8a1[_0xbd35('0x28')]:_0x35da5d[_0xbd35('0x24')];if(_0x26aeb0[_0xbd35('0x25')][_0xbd35('0x36')]){_0x19d8a1['include']=[{'all':!![]}];}_0x19d8a1=_[_0xbd35('0x32')]({},_0x19d8a1,_0x26aeb0['options']);return db['VoiceExtension']['find'](_0x19d8a1)[_0xbd35('0x14')](handleEntityNotFound(_0x4c1d4f,null))[_0xbd35('0x14')](respondWithResult(_0x4c1d4f,null))[_0xbd35('0x39')](handleError(_0x4c1d4f,null));};exports[_0xbd35('0x13')]=function(_0x434a55,_0x3b2d70){return db['VoiceExtension'][_0xbd35('0x1e')]({'where':{'id':_0x434a55[_0xbd35('0x3b')]['id']}})[_0xbd35('0x14')](handleEntityNotFound(_0x3b2d70,null))[_0xbd35('0x14')](removeEntity(_0x3b2d70,null))['catch'](handleError(_0x3b2d70,null));};exports[_0xbd35('0x3c')]=function(_0x50a0ba,_0x553e30){if(_0x50a0ba[_0xbd35('0x3d')][_0xbd35('0x1d')]===_0xbd35('0x18')&&!_[_0xbd35('0x3e')](_0x50a0ba[_0xbd35('0x3d')][_0xbd35('0x3f')],'_')){_0x50a0ba[_0xbd35('0x3d')]['exten']='_'[_0xbd35('0x40')](_0x50a0ba[_0xbd35('0x3d')][_0xbd35('0x3f')]);}return db[_0xbd35('0x35')]['create'](_0x50a0ba['body'],{'raw':![]})[_0xbd35('0x14')](function(_0x4994a0){var _0x5ce917=_0x50a0ba[_0xbd35('0x41')][_0xbd35('0x15')]({'plain':!![]});if(!_0x5ce917)throw new Error(_0xbd35('0x42'));if(_0x5ce917[_0xbd35('0x43')]===_0xbd35('0x41')){var _0xd855e0=_0x4994a0[_0xbd35('0x15')]({'plain':!![]});var _0x3e3ef=[{'name':_0xbd35('0x44'),'value':_0xbd35('0x16')},{'name':_0xbd35('0x17'),'value':_0xbd35('0x18')},{'name':_0xbd35('0x19'),'value':_0xbd35('0x45')}];var _0x149b97=_[_0xbd35('0x1e')](_0x3e3ef,[_0xbd35('0x1c'),_0xd855e0['type']])['name'];return db['UserProfileSection']['find']({'where':{'name':_0x149b97,'userProfileId':_0x5ce917[_0xbd35('0x46')]},'raw':!![]})[_0xbd35('0x14')](function(_0x585719){if(_0x585719&&_0x585719['autoAssociation']===0x0){return db[_0xbd35('0x20')][_0xbd35('0x3c')]({'name':_0xd855e0[_0xbd35('0x1f')],'resourceId':_0xd855e0['id'],'type':_0x585719[_0xbd35('0x1f')],'sectionId':_0x585719['id']},{})['then'](function(){return _0x4994a0;});}else{return _0x4994a0;}})['catch'](function(_0x592e5d){logger[_0xbd35('0x21')](_0xbd35('0x47'),_0x592e5d);throw _0x592e5d;});}return _0x4994a0;})[_0xbd35('0x14')](respondWithResult(_0x553e30,0xc9))[_0xbd35('0x39')](handleError(_0x553e30,null));};exports[_0xbd35('0x48')]=function(_0x514c8b,_0x2cb409){if(_0x514c8b[_0xbd35('0x3d')]['id']){delete _0x514c8b[_0xbd35('0x3d')]['id'];}return db[_0xbd35('0x35')][_0xbd35('0x1e')]({'where':{'id':_0x514c8b[_0xbd35('0x3b')]['id']}})[_0xbd35('0x14')](handleEntityNotFound(_0x2cb409,null))[_0xbd35('0x14')](function(_0x2997a3){if(_0x2997a3){return db[_0xbd35('0x35')][_0xbd35('0x48')](_[_0xbd35('0x30')](_0x514c8b[_0xbd35('0x3d')],['exten',_0xbd35('0x49'),_0xbd35('0x4a'),'recordingFormat',_0xbd35('0x4b'),'mandatoryDisposition',_0xbd35('0x4c')]),{'where':{'context':_0x2997a3[_0xbd35('0x49')],'exten':_0x2997a3[_0xbd35('0x3f')]},'individualHooks':!![]})[_0xbd35('0x14')](function(_0x359e87){return _0x359e87;});}return null;})['then'](respondWithStatusCode(_0x2cb409,null))[_0xbd35('0x39')](handleError(_0x2cb409,null));};exports[_0xbd35('0x4d')]=function(_0x66dea4,_0x230a39){var _0x1ea061=_0x66dea4[_0xbd35('0x3b')]['id'];var _0x20a4fb=_0x66dea4['body'];var _0x17e1fd=0xc8;var _0x4ea78d=null;return db['sequelize']['transaction']({'isolationLevel':db['sequelize'][_0xbd35('0x4e')]['ISOLATION_LEVELS']['READ_COMMITTED']},function(_0x3770f3){return db[_0xbd35('0x35')][_0xbd35('0x4f')]({'where':{'id':_0x1ea061},'transaction':_0x3770f3})['then'](function(_0x5d6d76){if(_0x5d6d76){return db[_0xbd35('0x35')]['destroy']({'where':{'VoiceExtensionId':_0x1ea061},'transaction':_0x3770f3})[_0xbd35('0x14')](function(){var _0x4bb0fd=_[_0xbd35('0x1b')](_0x20a4fb,function(_0x336c68){_0x336c68[_0xbd35('0x50')]=_0x1ea061;_0x336c68[_0xbd35('0x51')]=!![];return _0x336c68;});return _0x5d6d76[_0xbd35('0x52')](_0x4bb0fd);})[_0xbd35('0x14')](function(_0x124222){return db[_0xbd35('0x35')]['bulkCreate'](_0x124222,{'transaction':_0x3770f3});});}else{_0x17e1fd=0x194;_0x4ea78d=[];}});})[_0xbd35('0x14')](function(){if(_0x17e1fd!==0x194){return db[_0xbd35('0x35')][_0xbd35('0x53')]({'where':{'isApp':!![],'VoiceExtensionId':_0x1ea061},'order':_0xbd35('0x54')})[_0xbd35('0x14')](function(_0x28b9de){_0x4ea78d=_0x28b9de;});}})[_0xbd35('0x39')](function(_0x2a7ac3){_0x17e1fd=0x1f4;logger[_0xbd35('0x21')](_0x2a7ac3[_0xbd35('0x55')]);if(_0x2a7ac3['name']){delete _0x2a7ac3[_0xbd35('0x1f')];}_0x4ea78d=_0x2a7ac3;})['finally'](function(){if(_0x4ea78d===null){_0x230a39['sendStatus'](_0x17e1fd);}else{if(_0x17e1fd===0x1f4){_0x230a39['status'](_0x17e1fd)[_0xbd35('0x22')](_0x4ea78d);}else{_0x230a39[_0xbd35('0xb')](_0x17e1fd)['json'](_0x4ea78d);}}});};