Built motion from commit e02f907f.|2.6.14
[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 _0x5c39=['params','catch','create','body','outbound','startsWith','exten','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','internal','UserProfileSection','autoAssociation','update','context','description','recordingFormat','cutdigits','mandatoryDisposition','alias','addApplications','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','isApp','createRouting','bulkCreate','cast(priority\x20as\x20unsigned)','stack','send','../../config/logger','api','../../mysqldb','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','destroy','get','InboundRoutes','inbound','OutboundRoutes','InternalRoutes','filter','ignore','map','value','includes','find','type','name','UserProfileResource','then','error','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','sort','where','pick','merge','VIRTUAL','options','VoiceExtension','includeAll','findAll','rows','show'];(function(_0x220413,_0x359dcb){var _0x248f13=function(_0x38ec86){while(--_0x38ec86){_0x220413['push'](_0x220413['shift']());}};_0x248f13(++_0x359dcb);}(_0x5c39,0x76));var _0x95c3=function(_0x3f5543,_0x23eed3){_0x3f5543=_0x3f5543-0x0;var _0x2c00e4=_0x5c39[_0x3f5543];return _0x2c00e4;};'use strict';var _=require('lodash');var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require(_0x95c3('0x0'))(_0x95c3('0x1'));var config=require('../../config/environment');var db=require(_0x95c3('0x2'))['db'];config['redis']=_[_0x95c3('0x3')](config['redis'],{'host':_0x95c3('0x4'),'port':0x18eb});var socket=require(_0x95c3('0x5'))(new Redis(config['redis']));require('./voiceExtension.socket')[_0x95c3('0x6')](socket);function respondWithStatusCode(_0x4f748d,_0xabd4bd){_0xabd4bd=_0xabd4bd||0xcc;return function(_0x533d74){if(_0x533d74){return _0x4f748d[_0x95c3('0x7')](_0xabd4bd);}return _0x4f748d[_0x95c3('0x8')](_0xabd4bd)[_0x95c3('0x9')]();};}function respondWithResult(_0x57346c,_0x5cf638){_0x5cf638=_0x5cf638||0xc8;return function(_0x1032ef){if(_0x1032ef){return _0x57346c[_0x95c3('0x8')](_0x5cf638)[_0x95c3('0xa')](_0x1032ef);}};}function respondWithFilteredResult(_0x186141,_0x88003e){return function(_0x4f7a26){if(_0x4f7a26){var _0x219ad4=typeof _0x88003e['offset']===_0x95c3('0xb')&&typeof _0x88003e[_0x95c3('0xc')]===_0x95c3('0xb');var _0x4973f6=_0x4f7a26[_0x95c3('0xd')];var _0x4fd190=_0x219ad4?0x0:_0x88003e[_0x95c3('0xe')];var _0x1cc708=_0x219ad4?_0x4f7a26['count']:_0x88003e[_0x95c3('0xe')]+_0x88003e[_0x95c3('0xc')];var _0x3001b0;if(_0x1cc708>=_0x4973f6){_0x1cc708=_0x4973f6;_0x3001b0=0xc8;}else{_0x3001b0=0xce;}_0x186141['status'](_0x3001b0);return _0x186141[_0x95c3('0xf')](_0x95c3('0x10'),_0x4fd190+'-'+_0x1cc708+'/'+_0x4973f6)[_0x95c3('0xa')](_0x4f7a26);}return null;};}function removeEntity(_0x1b193b){return function(_0x24c771){if(_0x24c771){return _0x24c771[_0x95c3('0x11')]()['then'](function(){var _0x46df8d=_0x24c771[_0x95c3('0x12')]({'plain':!![]});var _0x9ef9ac=[{'name':_0x95c3('0x13'),'value':_0x95c3('0x14'),'ignore':![]},{'name':_0x95c3('0x15'),'value':'outbound','ignore':![]},{'name':_0x95c3('0x16'),'value':'internal','ignore':![]}];var _0x174135=_(_0x9ef9ac)[_0x95c3('0x17')](_0x95c3('0x18'))[_0x95c3('0x19')](_0x95c3('0x1a'))[_0x95c3('0x1a')]();if(_[_0x95c3('0x1b')](_0x174135,_0x46df8d['type'])){return;}var _0x4fc11f=_[_0x95c3('0x1c')](_0x9ef9ac,[_0x95c3('0x1a'),_0x46df8d[_0x95c3('0x1d')]])[_0x95c3('0x1e')];return db[_0x95c3('0x1f')][_0x95c3('0x11')]({'where':{'type':_0x4fc11f,'resourceId':_0x46df8d['id']}})['then'](function(){return _0x24c771;});})[_0x95c3('0x20')](function(){_0x1b193b[_0x95c3('0x8')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5be174){return function(_0x145eae){if(!_0x145eae){_0x5be174[_0x95c3('0x7')](0x194);}return _0x145eae;};}function handleError(_0x3de360,_0x280d36){_0x280d36=_0x280d36||0x1f4;return function(_0x403714){logger[_0x95c3('0x21')](_0x403714['stack']);if(_0x403714[_0x95c3('0x1e')]){delete _0x403714[_0x95c3('0x1e')];}_0x3de360['status'](_0x280d36)['send'](_0x403714);};}exports['index']=function(_0xcffea1,_0x39f013){var _0x3047d7={},_0x22951b={},_0x315c90={'count':0x0,'rows':[]};var _0x1d3afc=_[_0x95c3('0x19')](db['VoiceExtension'][_0x95c3('0x22')],function(_0x1d02ca){return{'name':_0x1d02ca[_0x95c3('0x23')],'type':_0x1d02ca['type'][_0x95c3('0x24')]};});_0x22951b[_0x95c3('0x25')]=_[_0x95c3('0x19')](_0x1d3afc,_0x95c3('0x1e'));_0x22951b[_0x95c3('0x26')]=_[_0x95c3('0x27')](_0xcffea1[_0x95c3('0x26')]);_0x22951b[_0x95c3('0x28')]=_[_0x95c3('0x29')](_0x22951b['model'],_0x22951b['query']);_0x3047d7[_0x95c3('0x2a')]=_[_0x95c3('0x29')](_0x22951b['model'],qs[_0x95c3('0x2b')](_0xcffea1['query']['fields']));_0x3047d7[_0x95c3('0x2a')]=_0x3047d7[_0x95c3('0x2a')][_0x95c3('0x2c')]?_0x3047d7[_0x95c3('0x2a')]:_0x22951b[_0x95c3('0x25')];if(!_0xcffea1[_0x95c3('0x26')]['hasOwnProperty']('nolimit')){_0x3047d7['limit']=qs['limit'](_0xcffea1[_0x95c3('0x26')][_0x95c3('0xc')]);_0x3047d7[_0x95c3('0xe')]=qs[_0x95c3('0xe')](_0xcffea1[_0x95c3('0x26')][_0x95c3('0xe')]);}_0x3047d7['order']=qs[_0x95c3('0x2d')](_0xcffea1[_0x95c3('0x26')]['sort']);_0x3047d7[_0x95c3('0x2e')]=qs[_0x95c3('0x28')](_[_0x95c3('0x2f')](_0xcffea1[_0x95c3('0x26')],_0x22951b[_0x95c3('0x28')]),_0x1d3afc);if(_0xcffea1[_0x95c3('0x26')][_0x95c3('0x17')]){_0x3047d7['where']=_[_0x95c3('0x30')](_0x3047d7[_0x95c3('0x2e')],{'$or':_[_0x95c3('0x19')](_0x1d3afc,function(_0x4d86e6){if(_0x4d86e6['type']!==_0x95c3('0x31')){var _0x44e6db={};_0x44e6db[_0x4d86e6[_0x95c3('0x1e')]]={'$like':'%'+_0xcffea1['query'][_0x95c3('0x17')]+'%'};return _0x44e6db;}})});}_0x3047d7=_[_0x95c3('0x30')]({},_0x3047d7,_0xcffea1[_0x95c3('0x32')]);var _0x57eac3={'where':_0x3047d7[_0x95c3('0x2e')]};return db[_0x95c3('0x33')][_0x95c3('0xd')](_0x57eac3)['then'](function(_0x463f67){_0x315c90['count']=_0x463f67;if(_0xcffea1['query'][_0x95c3('0x34')]){_0x3047d7['include']=[{'all':!![]}];}return db[_0x95c3('0x33')][_0x95c3('0x35')](_0x3047d7);})[_0x95c3('0x20')](function(_0x3b5a5b){_0x315c90[_0x95c3('0x36')]=_0x3b5a5b;return _0x315c90;})[_0x95c3('0x20')](respondWithFilteredResult(_0x39f013,_0x3047d7))['catch'](handleError(_0x39f013,null));};exports[_0x95c3('0x37')]=function(_0x223f80,_0x4440d0){var _0x30736f={'raw':![],'where':{'id':_0x223f80[_0x95c3('0x38')]['id']}},_0x454770={};_0x454770[_0x95c3('0x25')]=_[_0x95c3('0x27')](db['VoiceExtension'][_0x95c3('0x22')]);_0x454770[_0x95c3('0x26')]=_[_0x95c3('0x27')](_0x223f80[_0x95c3('0x26')]);_0x454770[_0x95c3('0x28')]=_[_0x95c3('0x29')](_0x454770[_0x95c3('0x25')],_0x454770[_0x95c3('0x26')]);_0x30736f[_0x95c3('0x2a')]=_[_0x95c3('0x29')](_0x454770[_0x95c3('0x25')],qs[_0x95c3('0x2b')](_0x223f80[_0x95c3('0x26')][_0x95c3('0x2b')]));_0x30736f[_0x95c3('0x2a')]=_0x30736f[_0x95c3('0x2a')][_0x95c3('0x2c')]?_0x30736f[_0x95c3('0x2a')]:_0x454770[_0x95c3('0x25')];if(_0x223f80[_0x95c3('0x26')]['includeAll']){_0x30736f['include']=[{'all':!![]}];}_0x30736f=_[_0x95c3('0x30')]({},_0x30736f,_0x223f80[_0x95c3('0x32')]);return db[_0x95c3('0x33')]['find'](_0x30736f)[_0x95c3('0x20')](handleEntityNotFound(_0x4440d0,null))['then'](respondWithResult(_0x4440d0,null))[_0x95c3('0x39')](handleError(_0x4440d0,null));};exports['destroy']=function(_0x1b5c2e,_0x15c6bb){return db['VoiceExtension']['find']({'where':{'id':_0x1b5c2e[_0x95c3('0x38')]['id']}})[_0x95c3('0x20')](handleEntityNotFound(_0x15c6bb,null))[_0x95c3('0x20')](removeEntity(_0x15c6bb,null))['catch'](handleError(_0x15c6bb,null));};exports[_0x95c3('0x3a')]=function(_0xbb1fd1,_0x5f13e9){if(_0xbb1fd1[_0x95c3('0x3b')][_0x95c3('0x1d')]===_0x95c3('0x3c')&&!_[_0x95c3('0x3d')](_0xbb1fd1[_0x95c3('0x3b')][_0x95c3('0x3e')],'_')){_0xbb1fd1[_0x95c3('0x3b')][_0x95c3('0x3e')]='_'['concat'](_0xbb1fd1[_0x95c3('0x3b')][_0x95c3('0x3e')]);}return db[_0x95c3('0x33')][_0x95c3('0x3a')](_0xbb1fd1[_0x95c3('0x3b')],{'raw':![]})['then'](function(_0x607655){var _0x4aa752=_0xbb1fd1[_0x95c3('0x3f')][_0x95c3('0x12')]({'plain':!![]});if(!_0x4aa752)throw new Error(_0x95c3('0x40'));if(_0x4aa752[_0x95c3('0x41')]===_0x95c3('0x3f')){var _0x3cfbc5=_0x607655[_0x95c3('0x12')]({'plain':!![]});var _0x408a02=[{'name':_0x95c3('0x13'),'value':_0x95c3('0x14')},{'name':'OutboundRoutes','value':_0x95c3('0x3c')},{'name':_0x95c3('0x16'),'value':_0x95c3('0x42')}];var _0x5c1e01=_[_0x95c3('0x1c')](_0x408a02,[_0x95c3('0x1a'),_0x3cfbc5[_0x95c3('0x1d')]])[_0x95c3('0x1e')];return db[_0x95c3('0x43')]['find']({'where':{'name':_0x5c1e01,'userProfileId':_0x4aa752['userProfileId']},'raw':!![]})[_0x95c3('0x20')](function(_0x2f9a16){if(_0x2f9a16&&_0x2f9a16[_0x95c3('0x44')]===0x0){return db['UserProfileResource'][_0x95c3('0x3a')]({'name':_0x3cfbc5[_0x95c3('0x1e')],'resourceId':_0x3cfbc5['id'],'type':_0x2f9a16[_0x95c3('0x1e')],'sectionId':_0x2f9a16['id']},{})[_0x95c3('0x20')](function(){return _0x607655;});}else{return _0x607655;}})['catch'](function(_0x43e6d4){logger[_0x95c3('0x21')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x43e6d4);throw _0x43e6d4;});}return _0x607655;})[_0x95c3('0x20')](respondWithResult(_0x5f13e9,0xc9))['catch'](handleError(_0x5f13e9,null));};exports['update']=function(_0xe211e,_0x4362ac){if(_0xe211e['body']['id']){delete _0xe211e['body']['id'];}return db['VoiceExtension'][_0x95c3('0x1c')]({'where':{'id':_0xe211e['params']['id']}})[_0x95c3('0x20')](handleEntityNotFound(_0x4362ac,null))[_0x95c3('0x20')](function(_0x151e27){if(_0x151e27){return db['VoiceExtension'][_0x95c3('0x45')](_['pick'](_0xe211e[_0x95c3('0x3b')],[_0x95c3('0x3e'),_0x95c3('0x46'),_0x95c3('0x47'),_0x95c3('0x48'),_0x95c3('0x49'),_0x95c3('0x4a'),_0x95c3('0x4b')]),{'where':{'context':_0x151e27[_0x95c3('0x46')],'exten':_0x151e27[_0x95c3('0x3e')]},'individualHooks':!![]})[_0x95c3('0x20')](function(_0x59dc74){return _0x59dc74;});}return null;})[_0x95c3('0x20')](respondWithStatusCode(_0x4362ac,null))['catch'](handleError(_0x4362ac,null));};exports[_0x95c3('0x4c')]=function(_0x586b95,_0xacdbdb){var _0x151f37=_0x586b95[_0x95c3('0x38')]['id'];var _0x20af68=_0x586b95['body'];var _0x1c55d8=0xc8;var _0x318ad6=null;return db['sequelize']['transaction']({'isolationLevel':db['sequelize'][_0x95c3('0x4d')][_0x95c3('0x4e')][_0x95c3('0x4f')]},function(_0x2a4ca2){return db[_0x95c3('0x33')][_0x95c3('0x50')]({'where':{'id':_0x151f37},'transaction':_0x2a4ca2})[_0x95c3('0x20')](function(_0x1fe535){if(_0x1fe535){return db['VoiceExtension'][_0x95c3('0x11')]({'where':{'VoiceExtensionId':_0x151f37},'transaction':_0x2a4ca2})[_0x95c3('0x20')](function(){var _0x593af8=_['map'](_0x20af68,function(_0x22e48c){_0x22e48c['VoiceExtensionId']=_0x151f37;_0x22e48c[_0x95c3('0x51')]=!![];return _0x22e48c;});return _0x1fe535[_0x95c3('0x52')](_0x593af8);})[_0x95c3('0x20')](function(_0x524d15){return db[_0x95c3('0x33')][_0x95c3('0x53')](_0x524d15,{'transaction':_0x2a4ca2});});}else{_0x1c55d8=0x194;_0x318ad6=[];}});})['then'](function(){if(_0x1c55d8!==0x194){return db['VoiceExtension']['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x151f37},'order':_0x95c3('0x54')})[_0x95c3('0x20')](function(_0x3f7f2b){_0x318ad6=_0x3f7f2b;});}})[_0x95c3('0x39')](function(_0x1c2aa5){_0x1c55d8=0x1f4;logger['error'](_0x1c2aa5[_0x95c3('0x55')]);if(_0x1c2aa5[_0x95c3('0x1e')]){delete _0x1c2aa5[_0x95c3('0x1e')];}_0x318ad6=_0x1c2aa5;})['finally'](function(){if(_0x318ad6===null){_0xacdbdb['sendStatus'](_0x1c55d8);}else{if(_0x1c55d8===0x1f4){_0xacdbdb[_0x95c3('0x8')](_0x1c55d8)[_0x95c3('0x56')](_0x318ad6);}else{_0xacdbdb['status'](_0x1c55d8)[_0x95c3('0xa')](_0x318ad6);}}});};