Built motion from commit 20b39a97.|2.6.29
[motion2.git] / server / api / network / network.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 _0x57e5=['body','findAll','toUpperCase','STUN','readFileSync','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','Reload','res_stun_monitor.so','TURN','join','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','format','toLowerCase','chan_sip.so','find','/etc/asterisk/stun_xcally.conf','server/files/templates/network.ejs','/etc/asterisk/sip_xcally_%s.conf','util','ejs','lodash','../../components/parsers/qs','api','../../mysqldb','jayson/promise','http','info','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','Network,\x20%s,\x20%s','catch','status','offset','undefined','count','limit','set','Content-Range','json','update','then','destroy','end','sendStatus','name','send','index','map','Network','fieldName','type','key','model','keys','filters','intersection','query','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','merge','where','VIRTUAL','options','includeAll','include','params','rawAttributes','create'];(function(_0x313c13,_0x287646){var _0x2c4859=function(_0x4bb463){while(--_0x4bb463){_0x313c13['push'](_0x313c13['shift']());}};_0x2c4859(++_0x287646);}(_0x57e5,0x1bb));var _0x557e=function(_0x243b2f,_0x30aa15){_0x243b2f=_0x243b2f-0x0;var _0xcb3c2d=_0x57e5[_0x243b2f];return _0xcb3c2d;};'use strict';var util=require(_0x557e('0x0'));var path=require('path');var ejs=require(_0x557e('0x1'));var fs=require('fs');var _=require(_0x557e('0x2'));var qs=require(_0x557e('0x3'));var logger=require('../../config/logger')(_0x557e('0x4'));var config=require('../../config/environment');var db=require(_0x557e('0x5'))['db'];var jayson=require(_0x557e('0x6'));var client=jayson['client'][_0x557e('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x37ce34,_0x187432,_0x54f880,_0x540c07){return new Promise(function(_0x467866,_0x501825){var _0x237f69=_0x540c07||client;return _0x237f69['request'](_0x37ce34,_0x54f880)['then'](function(_0x3a54b3){logger[_0x557e('0x8')]('Network,\x20%s,\x20%s',_0x187432,_0x557e('0x9'));logger[_0x557e('0xa')](_0x557e('0xb'),_0x187432,_0x557e('0x9'),JSON[_0x557e('0xc')](_0x3a54b3));if(_0x3a54b3[_0x557e('0xd')]){if(_0x3a54b3[_0x557e('0xd')][_0x557e('0xe')]===0x1f4){logger[_0x557e('0xd')]('Network,\x20%s,\x20%s',_0x187432,_0x3a54b3[_0x557e('0xd')][_0x557e('0xf')]);return _0x501825(_0x3a54b3[_0x557e('0xd')][_0x557e('0xf')]);}logger[_0x557e('0xd')]('Network,\x20%s,\x20%s',_0x187432,_0x3a54b3[_0x557e('0xd')][_0x557e('0xf')]);return _0x467866(_0x3a54b3[_0x557e('0xd')]['message']);}else{logger[_0x557e('0x8')](_0x557e('0x10'),_0x187432,'request\x20sent');_0x467866(_0x3a54b3['result'][_0x557e('0xf')]);}})[_0x557e('0x11')](function(_0x25c62e){logger[_0x557e('0xd')](_0x557e('0x10'),_0x187432,_0x25c62e);_0x501825(_0x25c62e);});});}function respondWithResult(_0x6bd164,_0x403678){_0x403678=_0x403678||0xc8;return function(_0x516d28){if(_0x516d28){return _0x6bd164[_0x557e('0x12')](_0x403678)['json'](_0x516d28);}};}function respondWithFilteredResult(_0x19d808,_0x19ba5f){return function(_0x1d857b){if(_0x1d857b){var _0x7788eb=typeof _0x19ba5f[_0x557e('0x13')]===_0x557e('0x14')&&typeof _0x19ba5f['limit']===_0x557e('0x14');var _0xe513d9=_0x1d857b[_0x557e('0x15')];var _0x4ab901=_0x7788eb?0x0:_0x19ba5f[_0x557e('0x13')];var _0x380f28=_0x7788eb?_0x1d857b[_0x557e('0x15')]:_0x19ba5f[_0x557e('0x13')]+_0x19ba5f[_0x557e('0x16')];var _0x13ef0e;if(_0x380f28>=_0xe513d9){_0x380f28=_0xe513d9;_0x13ef0e=0xc8;}else{_0x13ef0e=0xce;}_0x19d808['status'](_0x13ef0e);return _0x19d808[_0x557e('0x17')](_0x557e('0x18'),_0x4ab901+'-'+_0x380f28+'/'+_0xe513d9)[_0x557e('0x19')](_0x1d857b);}return null;};}function saveUpdates(_0x57bbd8){return function(_0x4645c3){if(_0x4645c3){return _0x4645c3[_0x557e('0x1a')](_0x57bbd8)[_0x557e('0x1b')](function(_0x29c71d){return _0x29c71d;});}return null;};}function removeEntity(_0x560524){return function(_0x3209a3){if(_0x3209a3){return _0x3209a3[_0x557e('0x1c')]()[_0x557e('0x1b')](function(){_0x560524[_0x557e('0x12')](0xcc)[_0x557e('0x1d')]();});}};}function handleEntityNotFound(_0x1b86f5){return function(_0x5d9fc0){if(!_0x5d9fc0){_0x1b86f5[_0x557e('0x1e')](0x194);}return _0x5d9fc0;};}function handleError(_0x4f18a0,_0x2c7636){_0x2c7636=_0x2c7636||0x1f4;return function(_0x493018){logger[_0x557e('0xd')](_0x493018['stack']);if(_0x493018[_0x557e('0x1f')]){delete _0x493018[_0x557e('0x1f')];}_0x4f18a0['status'](_0x2c7636)[_0x557e('0x20')](_0x493018);};}exports[_0x557e('0x21')]=function(_0xf9d96c,_0x557501){var _0xc6ab={},_0x51d288={},_0x161fb2={'count':0x0,'rows':[]};var _0x2f7596=_[_0x557e('0x22')](db[_0x557e('0x23')]['rawAttributes'],function(_0x28040d){return{'name':_0x28040d[_0x557e('0x24')],'type':_0x28040d[_0x557e('0x25')][_0x557e('0x26')]};});_0x51d288[_0x557e('0x27')]=_[_0x557e('0x22')](_0x2f7596,_0x557e('0x1f'));_0x51d288['query']=_[_0x557e('0x28')](_0xf9d96c['query']);_0x51d288[_0x557e('0x29')]=_[_0x557e('0x2a')](_0x51d288['model'],_0x51d288[_0x557e('0x2b')]);_0xc6ab['attributes']=_[_0x557e('0x2a')](_0x51d288['model'],qs[_0x557e('0x2c')](_0xf9d96c[_0x557e('0x2b')]['fields']));_0xc6ab[_0x557e('0x2d')]=_0xc6ab[_0x557e('0x2d')][_0x557e('0x2e')]?_0xc6ab[_0x557e('0x2d')]:_0x51d288[_0x557e('0x27')];if(!_0xf9d96c['query'][_0x557e('0x2f')](_0x557e('0x30'))){_0xc6ab[_0x557e('0x16')]=qs[_0x557e('0x16')](_0xf9d96c[_0x557e('0x2b')][_0x557e('0x16')]);_0xc6ab['offset']=qs['offset'](_0xf9d96c[_0x557e('0x2b')]['offset']);}_0xc6ab[_0x557e('0x31')]=qs['sort'](_0xf9d96c[_0x557e('0x2b')][_0x557e('0x32')]);_0xc6ab['where']=qs[_0x557e('0x29')](_[_0x557e('0x33')](_0xf9d96c['query'],_0x51d288['filters']),_0x2f7596);if(_0xf9d96c[_0x557e('0x2b')]['filter']){_0xc6ab['where']=_[_0x557e('0x34')](_0xc6ab[_0x557e('0x35')],{'$or':_['map'](_0x2f7596,function(_0x5dc873){if(_0x5dc873[_0x557e('0x25')]!==_0x557e('0x36')){var _0x3609dd={};_0x3609dd[_0x5dc873[_0x557e('0x1f')]]={'$like':'%'+_0xf9d96c[_0x557e('0x2b')]['filter']+'%'};return _0x3609dd;}})});}_0xc6ab=_[_0x557e('0x34')]({},_0xc6ab,_0xf9d96c[_0x557e('0x37')]);var _0x2bcb1c={'where':_0xc6ab['where']};return db[_0x557e('0x23')]['count'](_0x2bcb1c)['then'](function(_0x3141d0){_0x161fb2[_0x557e('0x15')]=_0x3141d0;if(_0xf9d96c[_0x557e('0x2b')][_0x557e('0x38')]){_0xc6ab[_0x557e('0x39')]=[{'all':!![]}];}return db[_0x557e('0x23')]['findAll'](_0xc6ab);})[_0x557e('0x1b')](function(_0x2a0f57){_0x161fb2['rows']=_0x2a0f57;return _0x161fb2;})['then'](respondWithFilteredResult(_0x557501,_0xc6ab))[_0x557e('0x11')](handleError(_0x557501,null));};exports['show']=function(_0x1ea5a4,_0x39628a){var _0x45662b={'raw':!![],'where':{'id':_0x1ea5a4[_0x557e('0x3a')]['id']}},_0xa99a26={};_0xa99a26[_0x557e('0x27')]=_[_0x557e('0x28')](db[_0x557e('0x23')][_0x557e('0x3b')]);_0xa99a26[_0x557e('0x2b')]=_['keys'](_0x1ea5a4[_0x557e('0x2b')]);_0xa99a26['filters']=_[_0x557e('0x2a')](_0xa99a26[_0x557e('0x27')],_0xa99a26[_0x557e('0x2b')]);_0x45662b[_0x557e('0x2d')]=_[_0x557e('0x2a')](_0xa99a26['model'],qs[_0x557e('0x2c')](_0x1ea5a4[_0x557e('0x2b')][_0x557e('0x2c')]));_0x45662b[_0x557e('0x2d')]=_0x45662b[_0x557e('0x2d')][_0x557e('0x2e')]?_0x45662b['attributes']:_0xa99a26['model'];if(_0x1ea5a4[_0x557e('0x2b')][_0x557e('0x38')]){_0x45662b[_0x557e('0x39')]=[{'all':!![]}];}_0x45662b=_[_0x557e('0x34')]({},_0x45662b,_0x1ea5a4[_0x557e('0x37')]);return db['Network']['find'](_0x45662b)['then'](handleEntityNotFound(_0x39628a,null))[_0x557e('0x1b')](respondWithResult(_0x39628a,null))[_0x557e('0x11')](handleError(_0x39628a,null));};exports['create']=function(_0x1497c5,_0x1b4b43){var _0x1855ac;return db[_0x557e('0x23')][_0x557e('0x3c')](_0x1497c5[_0x557e('0x3d')],{'raw':!![]})[_0x557e('0x1b')](function(_0x52f737){_0x1855ac=_0x52f737;return db[_0x557e('0x23')][_0x557e('0x3e')]({'where':{'type':_0x1497c5[_0x557e('0x3d')][_0x557e('0x25')]},'raw':!![]});})['then'](function(_0x14382a){if(_0x1855ac[_0x557e('0x25')][_0x557e('0x3f')]()==_0x557e('0x40')){var _0x5ee22d=fs[_0x557e('0x41')](path['join'](config[_0x557e('0x42')],_0x557e('0x43')),_0x557e('0x44'));var _0xd1f36f=ejs[_0x557e('0x45')](_0x5ee22d,{'networks':_0x14382a||[]});fs[_0x557e('0x46')]('/etc/asterisk/stun_xcally.conf',_0xd1f36f);return respondWithRpcPromise(_0x557e('0x47'),_0x557e('0x3c'),{'module':_0x557e('0x48')});}else if(_0x1855ac[_0x557e('0x25')][_0x557e('0x3f')]()==_0x557e('0x49')){var _0x3c82e2=fs[_0x557e('0x41')](path[_0x557e('0x4a')](config[_0x557e('0x42')],_0x557e('0x4b')),'utf8');var _0x2537be=ejs['render'](_0x3c82e2,{'networks':_0x14382a||[]});fs[_0x557e('0x46')](_0x557e('0x4c'),_0x2537be);return respondWithRpcPromise(_0x557e('0x47'),_0x557e('0x3c'),{'module':_0x557e('0x48')});}else{var _0x20dc99=fs[_0x557e('0x41')](path[_0x557e('0x4a')](config[_0x557e('0x42')],'server/files/templates/network.ejs'),_0x557e('0x44'));var _0x277064=ejs[_0x557e('0x45')](_0x20dc99,{'networks':_0x14382a||[]});fs[_0x557e('0x46')](util[_0x557e('0x4d')]('/etc/asterisk/sip_xcally_%s.conf',_0x1497c5[_0x557e('0x3d')][_0x557e('0x25')][_0x557e('0x4e')]()),_0x277064);return respondWithRpcPromise(_0x557e('0x47'),'create',{'module':_0x557e('0x4f')});}})['then'](function(){return _0x1855ac;})[_0x557e('0x1b')](respondWithResult(_0x1b4b43,0xc9))['catch'](handleError(_0x1b4b43,null));};exports[_0x557e('0x1a')]=function(_0x5c0c69,_0x57fb6f){var _0x5c2c01;return db[_0x557e('0x23')][_0x557e('0x50')]({'where':{'id':_0x5c0c69[_0x557e('0x3a')]['id']}})[_0x557e('0x1b')](handleEntityNotFound(_0x57fb6f,null))['then'](saveUpdates(_0x5c0c69['body'],null))[_0x557e('0x1b')](function(_0x559690){if(_0x559690){_0x5c2c01=_0x559690;return db[_0x557e('0x23')][_0x557e('0x3e')]({'where':{'type':_0x5c2c01[_0x557e('0x25')]},'raw':!![]});}return null;})['then'](function(_0xeffd2){if(_0x5c2c01[_0x557e('0x25')][_0x557e('0x3f')]()==_0x557e('0x40')){var _0x38ce94=fs[_0x557e('0x41')](path['join'](config['root'],_0x557e('0x43')),'utf8');var _0x4d7cb4=ejs[_0x557e('0x45')](_0x38ce94,{'networks':_0xeffd2||[]});fs['writeFileSync'](_0x557e('0x51'),_0x4d7cb4);return respondWithRpcPromise(_0x557e('0x47'),_0x557e('0x1a'),{'module':_0x557e('0x48')});}else if(_0x5c2c01[_0x557e('0x25')][_0x557e('0x3f')]()=='TURN'){var _0x2a6bc3=fs[_0x557e('0x41')](path['join'](config[_0x557e('0x42')],_0x557e('0x4b')),_0x557e('0x44'));var _0x202b09=ejs[_0x557e('0x45')](_0x2a6bc3,{'networks':_0xeffd2||[]});fs['writeFileSync'](_0x557e('0x4c'),_0x202b09);return respondWithRpcPromise(_0x557e('0x47'),'update',{'module':_0x557e('0x48')});}else{var _0x57f2b2=fs['readFileSync'](path[_0x557e('0x4a')](config['root'],_0x557e('0x52')),_0x557e('0x44'));var _0x2b93ce=ejs[_0x557e('0x45')](_0x57f2b2,{'networks':_0xeffd2||[]});fs[_0x557e('0x46')](util[_0x557e('0x4d')](_0x557e('0x53'),_0x5c0c69[_0x557e('0x3d')][_0x557e('0x25')][_0x557e('0x4e')]()),_0x2b93ce);return respondWithRpcPromise(_0x557e('0x47'),_0x557e('0x1a'),{'module':_0x557e('0x4f')});}})[_0x557e('0x1b')](function(_0x3bb4de){if(_0x3bb4de){return _0x5c2c01;}return null;})[_0x557e('0x1b')](respondWithResult(_0x57fb6f,null))[_0x557e('0x11')](handleError(_0x57fb6f,null));};exports[_0x557e('0x1c')]=function(_0x1dabd2,_0x4188b0){var _0x49282e;return db[_0x557e('0x23')]['find']({'where':{'id':_0x1dabd2['params']['id']}})['then'](function(_0x27c3e5){_0x49282e=_0x27c3e5;return _0x27c3e5;})['then'](handleEntityNotFound(_0x4188b0,null))[_0x557e('0x1b')](removeEntity(_0x4188b0,null))['then'](function(){if(_0x49282e){return db[_0x557e('0x23')][_0x557e('0x3e')]({'where':{'type':_0x49282e[_0x557e('0x25')]},'raw':!![]});}})[_0x557e('0x1b')](function(_0x172ada){if(_0x49282e[_0x557e('0x25')][_0x557e('0x3f')]()==_0x557e('0x40')){var _0x37dfa8=fs[_0x557e('0x41')](path[_0x557e('0x4a')](config[_0x557e('0x42')],'server/files/templates/stun_multiple.ejs'),'utf8');var _0x4e33b2=ejs[_0x557e('0x45')](_0x37dfa8,{'networks':_0x172ada||[]});fs[_0x557e('0x46')](_0x557e('0x51'),_0x4e33b2);return respondWithRpcPromise(_0x557e('0x47'),_0x557e('0x1c'),{'module':_0x557e('0x48')});}else if(_0x49282e[_0x557e('0x25')][_0x557e('0x3f')]()==_0x557e('0x49')){var _0x214b94=fs[_0x557e('0x41')](path[_0x557e('0x4a')](config[_0x557e('0x42')],'server/files/templates/turn_multiple.ejs'),_0x557e('0x44'));var _0xc8bcab=ejs[_0x557e('0x45')](_0x214b94,{'networks':_0x172ada||[]});fs['writeFileSync'](_0x557e('0x4c'),_0xc8bcab);return respondWithRpcPromise('Reload',_0x557e('0x1c'),{'module':'res_stun_monitor.so'});}else{var _0x12c9d6=fs['readFileSync'](path[_0x557e('0x4a')](config['root'],_0x557e('0x52')),'utf8');var _0x5b304d=ejs['render'](_0x12c9d6,{'networks':_0x172ada||[]});fs['writeFileSync'](util[_0x557e('0x4d')](_0x557e('0x53'),_0x49282e[_0x557e('0x25')][_0x557e('0x4e')]()),_0x5b304d);return respondWithRpcPromise('Reload',_0x557e('0x1c'),{'module':_0x557e('0x4f')});}})['catch'](handleError(_0x4188b0,null));};