d684151d6de77420115d84503a3a249098768475
[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 _0x8cb3=['count','set','Content-Range','destroy','then','get','InboundRoutes','inbound','OutboundRoutes','InternalRoutes','filter','ignore','map','value','type','find','error','name','send','VoiceExtension','fieldName','key','model','keys','filters','intersection','query','attributes','fields','length','nolimit','order','sort','where','pick','merge','VIRTUAL','options','includeAll','findAll','rows','catch','params','rawAttributes','include','body','outbound','exten','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','internal','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','cutdigits','mandatoryDisposition','alias','addApplications','sequelize','Transaction','ISOLATION_LEVELS','VoiceExtensionId','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','stack','finally','ioredis','../../components/parsers/qs','../../config/logger','api','../../mysqldb','defaults','localhost','socket.io-emitter','redis','sendStatus','status','end','json','offset','undefined','limit'];(function(_0x470b0a,_0x2889d6){var _0x4463f6=function(_0x2b5f0e){while(--_0x2b5f0e){_0x470b0a['push'](_0x470b0a['shift']());}};_0x4463f6(++_0x2889d6);}(_0x8cb3,0xf8));var _0x38cb=function(_0x49c253,_0x23865a){_0x49c253=_0x49c253-0x0;var _0x2285fc=_0x8cb3[_0x49c253];return _0x2285fc;};'use strict';var _=require('lodash');var Redis=require(_0x38cb('0x0'));var qs=require(_0x38cb('0x1'));var logger=require(_0x38cb('0x2'))(_0x38cb('0x3'));var config=require('../../config/environment');var db=require(_0x38cb('0x4'))['db'];config['redis']=_[_0x38cb('0x5')](config['redis'],{'host':_0x38cb('0x6'),'port':0x18eb});var socket=require(_0x38cb('0x7'))(new Redis(config[_0x38cb('0x8')]));require('./voiceExtension.socket')['register'](socket);function respondWithStatusCode(_0x16e10e,_0x168336){_0x168336=_0x168336||0xcc;return function(_0x246164){if(_0x246164){return _0x16e10e[_0x38cb('0x9')](_0x168336);}return _0x16e10e[_0x38cb('0xa')](_0x168336)[_0x38cb('0xb')]();};}function respondWithResult(_0x39dd3b,_0x2dcd0c){_0x2dcd0c=_0x2dcd0c||0xc8;return function(_0x3b6f22){if(_0x3b6f22){return _0x39dd3b[_0x38cb('0xa')](_0x2dcd0c)[_0x38cb('0xc')](_0x3b6f22);}};}function respondWithFilteredResult(_0x34f68d,_0x2e39cc){return function(_0x435925){if(_0x435925){var _0x5dc1dd=typeof _0x2e39cc[_0x38cb('0xd')]===_0x38cb('0xe')&&typeof _0x2e39cc[_0x38cb('0xf')]===_0x38cb('0xe');var _0x5d7400=_0x435925[_0x38cb('0x10')];var _0x4c4667=_0x5dc1dd?0x0:_0x2e39cc[_0x38cb('0xd')];var _0x412c4=_0x5dc1dd?_0x435925['count']:_0x2e39cc[_0x38cb('0xd')]+_0x2e39cc['limit'];var _0x37b5ed;if(_0x412c4>=_0x5d7400){_0x412c4=_0x5d7400;_0x37b5ed=0xc8;}else{_0x37b5ed=0xce;}_0x34f68d[_0x38cb('0xa')](_0x37b5ed);return _0x34f68d[_0x38cb('0x11')](_0x38cb('0x12'),_0x4c4667+'-'+_0x412c4+'/'+_0x5d7400)['json'](_0x435925);}return null;};}function removeEntity(_0x1ad421){return function(_0x4f2373){if(_0x4f2373){return _0x4f2373[_0x38cb('0x13')]()[_0x38cb('0x14')](function(){var _0x4596da=_0x4f2373[_0x38cb('0x15')]({'plain':!![]});var _0x395f27=[{'name':_0x38cb('0x16'),'value':_0x38cb('0x17'),'ignore':![]},{'name':_0x38cb('0x18'),'value':'outbound','ignore':![]},{'name':_0x38cb('0x19'),'value':'internal','ignore':![]}];var _0x272c1f=_(_0x395f27)[_0x38cb('0x1a')](_0x38cb('0x1b'))[_0x38cb('0x1c')](_0x38cb('0x1d'))[_0x38cb('0x1d')]();if(_['includes'](_0x272c1f,_0x4596da[_0x38cb('0x1e')])){return;}var _0x566740=_[_0x38cb('0x1f')](_0x395f27,[_0x38cb('0x1d'),_0x4596da[_0x38cb('0x1e')]])['name'];return db['UserProfileResource'][_0x38cb('0x13')]({'where':{'type':_0x566740,'resourceId':_0x4596da['id']}})[_0x38cb('0x14')](function(){return _0x4f2373;});})[_0x38cb('0x14')](function(){_0x1ad421['status'](0xcc)[_0x38cb('0xb')]();});}};}function handleEntityNotFound(_0x46b106){return function(_0x58bed3){if(!_0x58bed3){_0x46b106[_0x38cb('0x9')](0x194);}return _0x58bed3;};}function handleError(_0x34e210,_0x5c1212){_0x5c1212=_0x5c1212||0x1f4;return function(_0x1b531e){logger[_0x38cb('0x20')](_0x1b531e['stack']);if(_0x1b531e[_0x38cb('0x21')]){delete _0x1b531e[_0x38cb('0x21')];}_0x34e210[_0x38cb('0xa')](_0x5c1212)[_0x38cb('0x22')](_0x1b531e);};}exports['index']=function(_0x50ef1f,_0x38020c){var _0x1112d0={},_0x40e2f9={},_0x4ca041={'count':0x0,'rows':[]};var _0x1918f9=_[_0x38cb('0x1c')](db[_0x38cb('0x23')]['rawAttributes'],function(_0x3065ef){return{'name':_0x3065ef[_0x38cb('0x24')],'type':_0x3065ef[_0x38cb('0x1e')][_0x38cb('0x25')]};});_0x40e2f9[_0x38cb('0x26')]=_['map'](_0x1918f9,_0x38cb('0x21'));_0x40e2f9['query']=_[_0x38cb('0x27')](_0x50ef1f['query']);_0x40e2f9[_0x38cb('0x28')]=_[_0x38cb('0x29')](_0x40e2f9['model'],_0x40e2f9[_0x38cb('0x2a')]);_0x1112d0[_0x38cb('0x2b')]=_[_0x38cb('0x29')](_0x40e2f9['model'],qs[_0x38cb('0x2c')](_0x50ef1f['query'][_0x38cb('0x2c')]));_0x1112d0[_0x38cb('0x2b')]=_0x1112d0['attributes'][_0x38cb('0x2d')]?_0x1112d0[_0x38cb('0x2b')]:_0x40e2f9[_0x38cb('0x26')];if(!_0x50ef1f[_0x38cb('0x2a')]['hasOwnProperty'](_0x38cb('0x2e'))){_0x1112d0['limit']=qs[_0x38cb('0xf')](_0x50ef1f['query'][_0x38cb('0xf')]);_0x1112d0[_0x38cb('0xd')]=qs['offset'](_0x50ef1f[_0x38cb('0x2a')]['offset']);}_0x1112d0[_0x38cb('0x2f')]=qs['sort'](_0x50ef1f[_0x38cb('0x2a')][_0x38cb('0x30')]);_0x1112d0[_0x38cb('0x31')]=qs[_0x38cb('0x28')](_[_0x38cb('0x32')](_0x50ef1f['query'],_0x40e2f9[_0x38cb('0x28')]),_0x1918f9);if(_0x50ef1f['query'][_0x38cb('0x1a')]){_0x1112d0['where']=_[_0x38cb('0x33')](_0x1112d0[_0x38cb('0x31')],{'$or':_['map'](_0x1918f9,function(_0x2e99ad){if(_0x2e99ad['type']!==_0x38cb('0x34')){var _0x391345={};_0x391345[_0x2e99ad[_0x38cb('0x21')]]={'$like':'%'+_0x50ef1f[_0x38cb('0x2a')]['filter']+'%'};return _0x391345;}})});}_0x1112d0=_['merge']({},_0x1112d0,_0x50ef1f[_0x38cb('0x35')]);var _0x55ec69={'where':_0x1112d0[_0x38cb('0x31')]};return db['VoiceExtension'][_0x38cb('0x10')](_0x55ec69)[_0x38cb('0x14')](function(_0x1a7833){_0x4ca041[_0x38cb('0x10')]=_0x1a7833;if(_0x50ef1f['query'][_0x38cb('0x36')]){_0x1112d0['include']=[{'all':!![]}];}return db[_0x38cb('0x23')][_0x38cb('0x37')](_0x1112d0);})[_0x38cb('0x14')](function(_0x2e50cc){_0x4ca041[_0x38cb('0x38')]=_0x2e50cc;return _0x4ca041;})[_0x38cb('0x14')](respondWithFilteredResult(_0x38020c,_0x1112d0))[_0x38cb('0x39')](handleError(_0x38020c,null));};exports['show']=function(_0x2b9d75,_0x372085){var _0x4c3334={'raw':![],'where':{'id':_0x2b9d75[_0x38cb('0x3a')]['id']}},_0x2875b1={};_0x2875b1['model']=_[_0x38cb('0x27')](db[_0x38cb('0x23')][_0x38cb('0x3b')]);_0x2875b1[_0x38cb('0x2a')]=_[_0x38cb('0x27')](_0x2b9d75['query']);_0x2875b1['filters']=_[_0x38cb('0x29')](_0x2875b1['model'],_0x2875b1[_0x38cb('0x2a')]);_0x4c3334[_0x38cb('0x2b')]=_[_0x38cb('0x29')](_0x2875b1[_0x38cb('0x26')],qs['fields'](_0x2b9d75[_0x38cb('0x2a')][_0x38cb('0x2c')]));_0x4c3334['attributes']=_0x4c3334['attributes'][_0x38cb('0x2d')]?_0x4c3334[_0x38cb('0x2b')]:_0x2875b1[_0x38cb('0x26')];if(_0x2b9d75[_0x38cb('0x2a')][_0x38cb('0x36')]){_0x4c3334[_0x38cb('0x3c')]=[{'all':!![]}];}_0x4c3334=_[_0x38cb('0x33')]({},_0x4c3334,_0x2b9d75[_0x38cb('0x35')]);return db[_0x38cb('0x23')][_0x38cb('0x1f')](_0x4c3334)[_0x38cb('0x14')](handleEntityNotFound(_0x372085,null))[_0x38cb('0x14')](respondWithResult(_0x372085,null))[_0x38cb('0x39')](handleError(_0x372085,null));};exports[_0x38cb('0x13')]=function(_0x1bd621,_0xb96c0e){return db['VoiceExtension'][_0x38cb('0x1f')]({'where':{'id':_0x1bd621[_0x38cb('0x3a')]['id']}})['then'](handleEntityNotFound(_0xb96c0e,null))[_0x38cb('0x14')](removeEntity(_0xb96c0e,null))[_0x38cb('0x39')](handleError(_0xb96c0e,null));};exports['create']=function(_0x284b35,_0x2552e4){if(_0x284b35[_0x38cb('0x3d')][_0x38cb('0x1e')]===_0x38cb('0x3e')&&!_['startsWith'](_0x284b35['body'][_0x38cb('0x3f')],'_')){_0x284b35[_0x38cb('0x3d')][_0x38cb('0x3f')]='_'['concat'](_0x284b35[_0x38cb('0x3d')][_0x38cb('0x3f')]);}return db[_0x38cb('0x23')][_0x38cb('0x40')](_0x284b35[_0x38cb('0x3d')],{'raw':![]})['then'](function(_0x22d97e){var _0x265461=_0x284b35[_0x38cb('0x41')][_0x38cb('0x15')]({'plain':!![]});if(!_0x265461)throw new Error(_0x38cb('0x42'));if(_0x265461[_0x38cb('0x43')]===_0x38cb('0x41')){var _0x2638aa=_0x22d97e[_0x38cb('0x15')]({'plain':!![]});var _0x3c7a29=[{'name':'InboundRoutes','value':_0x38cb('0x17')},{'name':_0x38cb('0x18'),'value':_0x38cb('0x3e')},{'name':_0x38cb('0x19'),'value':_0x38cb('0x44')}];var _0xf9dbd4=_[_0x38cb('0x1f')](_0x3c7a29,[_0x38cb('0x1d'),_0x2638aa[_0x38cb('0x1e')]])[_0x38cb('0x21')];return db[_0x38cb('0x45')]['find']({'where':{'name':_0xf9dbd4,'userProfileId':_0x265461['userProfileId']},'raw':!![]})[_0x38cb('0x14')](function(_0x11f417){if(_0x11f417&&_0x11f417[_0x38cb('0x46')]===0x0){return db['UserProfileResource'][_0x38cb('0x40')]({'name':_0x2638aa['name'],'resourceId':_0x2638aa['id'],'type':_0x11f417['name'],'sectionId':_0x11f417['id']},{})[_0x38cb('0x14')](function(){return _0x22d97e;});}else{return _0x22d97e;}})[_0x38cb('0x39')](function(_0x43b2ee){logger[_0x38cb('0x20')](_0x38cb('0x47'),_0x43b2ee);throw _0x43b2ee;});}return _0x22d97e;})[_0x38cb('0x14')](respondWithResult(_0x2552e4,0xc9))[_0x38cb('0x39')](handleError(_0x2552e4,null));};exports[_0x38cb('0x48')]=function(_0x264dca,_0x3e26bb){if(_0x264dca[_0x38cb('0x3d')]['id']){delete _0x264dca[_0x38cb('0x3d')]['id'];}return db[_0x38cb('0x23')]['find']({'where':{'id':_0x264dca['params']['id']}})[_0x38cb('0x14')](handleEntityNotFound(_0x3e26bb,null))['then'](function(_0x2ec8d5){if(_0x2ec8d5){return db[_0x38cb('0x23')][_0x38cb('0x48')](_[_0x38cb('0x32')](_0x264dca[_0x38cb('0x3d')],['exten',_0x38cb('0x49'),_0x38cb('0x4a'),'recordingFormat',_0x38cb('0x4b'),_0x38cb('0x4c'),_0x38cb('0x4d')]),{'where':{'context':_0x2ec8d5['context'],'exten':_0x2ec8d5[_0x38cb('0x3f')]},'individualHooks':!![]})[_0x38cb('0x14')](function(_0x18fcb5){return _0x18fcb5;});}return null;})[_0x38cb('0x14')](respondWithStatusCode(_0x3e26bb,null))[_0x38cb('0x39')](handleError(_0x3e26bb,null));};exports[_0x38cb('0x4e')]=function(_0x2b4be1,_0x40b6de){var _0x18227f=_0x2b4be1[_0x38cb('0x3a')]['id'];var _0x311cd9=_0x2b4be1['body'];var _0x135b3b=0xc8;var _0x1f67a8=null;return db['sequelize']['transaction']({'isolationLevel':db[_0x38cb('0x4f')][_0x38cb('0x50')][_0x38cb('0x51')]['READ_COMMITTED']},function(_0x5c01e1){return db['VoiceExtension']['findOne']({'where':{'id':_0x18227f},'transaction':_0x5c01e1})[_0x38cb('0x14')](function(_0x4d4b97){if(_0x4d4b97){return db[_0x38cb('0x23')]['destroy']({'where':{'VoiceExtensionId':_0x18227f},'transaction':_0x5c01e1})['then'](function(){var _0x3ccb50=_[_0x38cb('0x1c')](_0x311cd9,function(_0x2d23ff){_0x2d23ff[_0x38cb('0x52')]=_0x18227f;_0x2d23ff['isApp']=!![];return _0x2d23ff;});return _0x4d4b97['createRouting'](_0x3ccb50);})['then'](function(_0x8d4246){return db[_0x38cb('0x23')][_0x38cb('0x53')](_0x8d4246,{'transaction':_0x5c01e1});});}else{_0x135b3b=0x194;_0x1f67a8=[];}});})[_0x38cb('0x14')](function(){if(_0x135b3b!==0x194){return db[_0x38cb('0x23')][_0x38cb('0x54')]({'where':{'isApp':!![],'VoiceExtensionId':_0x18227f},'order':_0x38cb('0x55')})[_0x38cb('0x14')](function(_0x504cab){_0x1f67a8=_0x504cab;});}})[_0x38cb('0x39')](function(_0x41330e){_0x135b3b=0x1f4;logger[_0x38cb('0x20')](_0x41330e[_0x38cb('0x56')]);if(_0x41330e[_0x38cb('0x21')]){delete _0x41330e[_0x38cb('0x21')];}_0x1f67a8=_0x41330e;})[_0x38cb('0x57')](function(){if(_0x1f67a8===null){_0x40b6de[_0x38cb('0x9')](_0x135b3b);}else{if(_0x135b3b===0x1f4){_0x40b6de['status'](_0x135b3b)[_0x38cb('0x22')](_0x1f67a8);}else{_0x40b6de[_0x38cb('0xa')](_0x135b3b)[_0x38cb('0xc')](_0x1f67a8);}}});};