Built motion from commit 10af8726.|2.6.34
[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 _0x90c5=['join','utf8','render','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','root','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','toLowerCase','chan_sip.so','body','writeFileSync','/etc/asterisk/sip_xcally_%s.conf','util','path','lodash','../../components/parsers/qs','api','../../config/environment','jayson/promise','client','request','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','status','offset','undefined','limit','count','set','json','update','destroy','sendStatus','stack','name','send','index','map','Network','type','key','model','keys','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filters','filter','where','options','includeAll','include','findAll','rows','show','params','rawAttributes','merge','find','create','toUpperCase','STUN','readFileSync'];(function(_0x259fb3,_0x3dd45d){var _0x1d4c78=function(_0x222020){while(--_0x222020){_0x259fb3['push'](_0x259fb3['shift']());}};_0x1d4c78(++_0x3dd45d);}(_0x90c5,0x1b0));var _0x590c=function(_0x3ff32f,_0x3d71e2){_0x3ff32f=_0x3ff32f-0x0;var _0x3eb245=_0x90c5[_0x3ff32f];return _0x3eb245;};'use strict';var util=require(_0x590c('0x0'));var path=require(_0x590c('0x1'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x590c('0x2'));var qs=require(_0x590c('0x3'));var logger=require('../../config/logger')(_0x590c('0x4'));var config=require(_0x590c('0x5'));var db=require('../../mysqldb')['db'];var jayson=require(_0x590c('0x6'));var client=jayson[_0x590c('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2a1e82,_0x114b70,_0xb281af,_0x25321c){return new Promise(function(_0x45046d,_0x1f0365){var _0x573928=_0x25321c||client;return _0x573928[_0x590c('0x8')](_0x2a1e82,_0xb281af)[_0x590c('0x9')](function(_0xdddec3){logger[_0x590c('0xa')](_0x590c('0xb'),_0x114b70,_0x590c('0xc'));logger[_0x590c('0xd')](_0x590c('0xe'),_0x114b70,_0x590c('0xc'),JSON[_0x590c('0xf')](_0xdddec3));if(_0xdddec3[_0x590c('0x10')]){if(_0xdddec3[_0x590c('0x10')]['code']===0x1f4){logger[_0x590c('0x10')]('Network,\x20%s,\x20%s',_0x114b70,_0xdddec3[_0x590c('0x10')][_0x590c('0x11')]);return _0x1f0365(_0xdddec3[_0x590c('0x10')][_0x590c('0x11')]);}logger[_0x590c('0x10')](_0x590c('0xb'),_0x114b70,_0xdddec3[_0x590c('0x10')]['message']);return _0x45046d(_0xdddec3[_0x590c('0x10')]['message']);}else{logger['info'](_0x590c('0xb'),_0x114b70,_0x590c('0xc'));_0x45046d(_0xdddec3[_0x590c('0x12')]['message']);}})[_0x590c('0x13')](function(_0x1afced){logger[_0x590c('0x10')]('Network,\x20%s,\x20%s',_0x114b70,_0x1afced);_0x1f0365(_0x1afced);});});}function respondWithResult(_0x7bd61a,_0x305229){_0x305229=_0x305229||0xc8;return function(_0xc4703d){if(_0xc4703d){return _0x7bd61a[_0x590c('0x14')](_0x305229)['json'](_0xc4703d);}};}function respondWithFilteredResult(_0x1507cb,_0x30bb4b){return function(_0xa3282a){if(_0xa3282a){var _0x2b7692=typeof _0x30bb4b[_0x590c('0x15')]===_0x590c('0x16')&&typeof _0x30bb4b[_0x590c('0x17')]===_0x590c('0x16');var _0x229f88=_0xa3282a[_0x590c('0x18')];var _0x18145f=_0x2b7692?0x0:_0x30bb4b[_0x590c('0x15')];var _0x27d2b6=_0x2b7692?_0xa3282a['count']:_0x30bb4b['offset']+_0x30bb4b[_0x590c('0x17')];var _0x24e12e;if(_0x27d2b6>=_0x229f88){_0x27d2b6=_0x229f88;_0x24e12e=0xc8;}else{_0x24e12e=0xce;}_0x1507cb['status'](_0x24e12e);return _0x1507cb[_0x590c('0x19')]('Content-Range',_0x18145f+'-'+_0x27d2b6+'/'+_0x229f88)[_0x590c('0x1a')](_0xa3282a);}return null;};}function saveUpdates(_0x40a4a7){return function(_0x4fb16e){if(_0x4fb16e){return _0x4fb16e[_0x590c('0x1b')](_0x40a4a7)[_0x590c('0x9')](function(_0x3773e3){return _0x3773e3;});}return null;};}function removeEntity(_0x2f835e){return function(_0x744d78){if(_0x744d78){return _0x744d78[_0x590c('0x1c')]()[_0x590c('0x9')](function(){_0x2f835e[_0x590c('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5d709b){return function(_0x310ba8){if(!_0x310ba8){_0x5d709b[_0x590c('0x1d')](0x194);}return _0x310ba8;};}function handleError(_0x8c466d,_0x1ba5c8){_0x1ba5c8=_0x1ba5c8||0x1f4;return function(_0x48a9de){logger[_0x590c('0x10')](_0x48a9de[_0x590c('0x1e')]);if(_0x48a9de[_0x590c('0x1f')]){delete _0x48a9de['name'];}_0x8c466d[_0x590c('0x14')](_0x1ba5c8)[_0x590c('0x20')](_0x48a9de);};}exports[_0x590c('0x21')]=function(_0x312122,_0x12dc35){var _0x518331={},_0x229986={},_0x2969f3={'count':0x0,'rows':[]};var _0xa0a9c1=_[_0x590c('0x22')](db[_0x590c('0x23')]['rawAttributes'],function(_0x5f57cd){return{'name':_0x5f57cd['fieldName'],'type':_0x5f57cd[_0x590c('0x24')][_0x590c('0x25')]};});_0x229986[_0x590c('0x26')]=_[_0x590c('0x22')](_0xa0a9c1,'name');_0x229986['query']=_[_0x590c('0x27')](_0x312122[_0x590c('0x28')]);_0x229986['filters']=_[_0x590c('0x29')](_0x229986[_0x590c('0x26')],_0x229986[_0x590c('0x28')]);_0x518331['attributes']=_[_0x590c('0x29')](_0x229986['model'],qs[_0x590c('0x2a')](_0x312122[_0x590c('0x28')][_0x590c('0x2a')]));_0x518331[_0x590c('0x2b')]=_0x518331[_0x590c('0x2b')][_0x590c('0x2c')]?_0x518331[_0x590c('0x2b')]:_0x229986[_0x590c('0x26')];if(!_0x312122['query'][_0x590c('0x2d')](_0x590c('0x2e'))){_0x518331[_0x590c('0x17')]=qs[_0x590c('0x17')](_0x312122[_0x590c('0x28')]['limit']);_0x518331[_0x590c('0x15')]=qs[_0x590c('0x15')](_0x312122['query'][_0x590c('0x15')]);}_0x518331[_0x590c('0x2f')]=qs[_0x590c('0x30')](_0x312122[_0x590c('0x28')][_0x590c('0x30')]);_0x518331['where']=qs[_0x590c('0x31')](_['pick'](_0x312122[_0x590c('0x28')],_0x229986['filters']),_0xa0a9c1);if(_0x312122[_0x590c('0x28')][_0x590c('0x32')]){_0x518331[_0x590c('0x33')]=_['merge'](_0x518331['where'],{'$or':_[_0x590c('0x22')](_0xa0a9c1,function(_0x468aba){if(_0x468aba['type']!=='VIRTUAL'){var _0x1a94ab={};_0x1a94ab[_0x468aba[_0x590c('0x1f')]]={'$like':'%'+_0x312122['query'][_0x590c('0x32')]+'%'};return _0x1a94ab;}})});}_0x518331=_['merge']({},_0x518331,_0x312122[_0x590c('0x34')]);var _0x35ff22={'where':_0x518331[_0x590c('0x33')]};return db[_0x590c('0x23')][_0x590c('0x18')](_0x35ff22)['then'](function(_0x385682){_0x2969f3['count']=_0x385682;if(_0x312122['query'][_0x590c('0x35')]){_0x518331[_0x590c('0x36')]=[{'all':!![]}];}return db['Network'][_0x590c('0x37')](_0x518331);})[_0x590c('0x9')](function(_0x4c7308){_0x2969f3[_0x590c('0x38')]=_0x4c7308;return _0x2969f3;})[_0x590c('0x9')](respondWithFilteredResult(_0x12dc35,_0x518331))[_0x590c('0x13')](handleError(_0x12dc35,null));};exports[_0x590c('0x39')]=function(_0x39d34d,_0x351e57){var _0x42debd={'raw':!![],'where':{'id':_0x39d34d[_0x590c('0x3a')]['id']}},_0x36de87={};_0x36de87[_0x590c('0x26')]=_[_0x590c('0x27')](db[_0x590c('0x23')][_0x590c('0x3b')]);_0x36de87[_0x590c('0x28')]=_['keys'](_0x39d34d[_0x590c('0x28')]);_0x36de87['filters']=_['intersection'](_0x36de87[_0x590c('0x26')],_0x36de87[_0x590c('0x28')]);_0x42debd['attributes']=_[_0x590c('0x29')](_0x36de87[_0x590c('0x26')],qs[_0x590c('0x2a')](_0x39d34d[_0x590c('0x28')][_0x590c('0x2a')]));_0x42debd[_0x590c('0x2b')]=_0x42debd[_0x590c('0x2b')][_0x590c('0x2c')]?_0x42debd[_0x590c('0x2b')]:_0x36de87[_0x590c('0x26')];if(_0x39d34d[_0x590c('0x28')][_0x590c('0x35')]){_0x42debd[_0x590c('0x36')]=[{'all':!![]}];}_0x42debd=_[_0x590c('0x3c')]({},_0x42debd,_0x39d34d[_0x590c('0x34')]);return db[_0x590c('0x23')][_0x590c('0x3d')](_0x42debd)[_0x590c('0x9')](handleEntityNotFound(_0x351e57,null))[_0x590c('0x9')](respondWithResult(_0x351e57,null))[_0x590c('0x13')](handleError(_0x351e57,null));};exports[_0x590c('0x3e')]=function(_0x50026a,_0x18d65e){var _0x133c21;return db[_0x590c('0x23')][_0x590c('0x3e')](_0x50026a['body'],{'raw':!![]})[_0x590c('0x9')](function(_0x3e07fd){_0x133c21=_0x3e07fd;return db['Network']['findAll']({'where':{'type':_0x50026a['body'][_0x590c('0x24')]},'raw':!![]});})[_0x590c('0x9')](function(_0x3d32ec){if(_0x133c21[_0x590c('0x24')][_0x590c('0x3f')]()==_0x590c('0x40')){var _0x211d74=fs[_0x590c('0x41')](path[_0x590c('0x42')](config['root'],'server/files/templates/stun_multiple.ejs'),_0x590c('0x43'));var _0x526c4e=ejs[_0x590c('0x44')](_0x211d74,{'networks':_0x3d32ec||[]});fs['writeFileSync'](_0x590c('0x45'),_0x526c4e);return respondWithRpcPromise(_0x590c('0x46'),'create',{'module':_0x590c('0x47')});}else if(_0x133c21[_0x590c('0x24')]['toUpperCase']()==_0x590c('0x48')){var _0x126266=fs['readFileSync'](path[_0x590c('0x42')](config[_0x590c('0x49')],_0x590c('0x4a')),_0x590c('0x43'));var _0x6f4e6c=ejs['render'](_0x126266,{'networks':_0x3d32ec||[]});fs['writeFileSync'](_0x590c('0x4b'),_0x6f4e6c);return respondWithRpcPromise(_0x590c('0x46'),'create',{'module':'res_stun_monitor.so'});}else{var _0x302b7c=fs[_0x590c('0x41')](path[_0x590c('0x42')](config[_0x590c('0x49')],_0x590c('0x4c')),_0x590c('0x43'));var _0x385583=ejs['render'](_0x302b7c,{'networks':_0x3d32ec||[]});fs['writeFileSync'](util[_0x590c('0x4d')]('/etc/asterisk/sip_xcally_%s.conf',_0x50026a['body'][_0x590c('0x24')][_0x590c('0x4e')]()),_0x385583);return respondWithRpcPromise(_0x590c('0x46'),_0x590c('0x3e'),{'module':_0x590c('0x4f')});}})[_0x590c('0x9')](function(){return _0x133c21;})[_0x590c('0x9')](respondWithResult(_0x18d65e,0xc9))[_0x590c('0x13')](handleError(_0x18d65e,null));};exports[_0x590c('0x1b')]=function(_0x375618,_0x2107e0){var _0x311a86;return db[_0x590c('0x23')][_0x590c('0x3d')]({'where':{'id':_0x375618[_0x590c('0x3a')]['id']}})[_0x590c('0x9')](handleEntityNotFound(_0x2107e0,null))['then'](saveUpdates(_0x375618[_0x590c('0x50')],null))[_0x590c('0x9')](function(_0x2dbf1c){if(_0x2dbf1c){_0x311a86=_0x2dbf1c;return db[_0x590c('0x23')]['findAll']({'where':{'type':_0x311a86[_0x590c('0x24')]},'raw':!![]});}return null;})[_0x590c('0x9')](function(_0x51baa1){if(_0x311a86[_0x590c('0x24')][_0x590c('0x3f')]()==_0x590c('0x40')){var _0xdbce3f=fs[_0x590c('0x41')](path[_0x590c('0x42')](config[_0x590c('0x49')],'server/files/templates/stun_multiple.ejs'),_0x590c('0x43'));var _0x4a5c71=ejs[_0x590c('0x44')](_0xdbce3f,{'networks':_0x51baa1||[]});fs[_0x590c('0x51')]('/etc/asterisk/stun_xcally.conf',_0x4a5c71);return respondWithRpcPromise(_0x590c('0x46'),_0x590c('0x1b'),{'module':_0x590c('0x47')});}else if(_0x311a86[_0x590c('0x24')][_0x590c('0x3f')]()==_0x590c('0x48')){var _0x2b42d8=fs[_0x590c('0x41')](path[_0x590c('0x42')](config['root'],_0x590c('0x4a')),_0x590c('0x43'));var _0x39685b=ejs[_0x590c('0x44')](_0x2b42d8,{'networks':_0x51baa1||[]});fs[_0x590c('0x51')](_0x590c('0x4b'),_0x39685b);return respondWithRpcPromise(_0x590c('0x46'),_0x590c('0x1b'),{'module':_0x590c('0x47')});}else{var _0x23165a=fs[_0x590c('0x41')](path[_0x590c('0x42')](config[_0x590c('0x49')],_0x590c('0x4c')),_0x590c('0x43'));var _0x201d0c=ejs[_0x590c('0x44')](_0x23165a,{'networks':_0x51baa1||[]});fs[_0x590c('0x51')](util[_0x590c('0x4d')](_0x590c('0x52'),_0x375618[_0x590c('0x50')]['type']['toLowerCase']()),_0x201d0c);return respondWithRpcPromise(_0x590c('0x46'),_0x590c('0x1b'),{'module':_0x590c('0x4f')});}})[_0x590c('0x9')](function(_0x14bde4){if(_0x14bde4){return _0x311a86;}return null;})[_0x590c('0x9')](respondWithResult(_0x2107e0,null))[_0x590c('0x13')](handleError(_0x2107e0,null));};exports['destroy']=function(_0x36ab5a,_0x35a0f5){var _0x2d8e9e;return db['Network']['find']({'where':{'id':_0x36ab5a[_0x590c('0x3a')]['id']}})[_0x590c('0x9')](function(_0x234e50){_0x2d8e9e=_0x234e50;return _0x234e50;})[_0x590c('0x9')](handleEntityNotFound(_0x35a0f5,null))[_0x590c('0x9')](removeEntity(_0x35a0f5,null))[_0x590c('0x9')](function(){if(_0x2d8e9e){return db[_0x590c('0x23')][_0x590c('0x37')]({'where':{'type':_0x2d8e9e[_0x590c('0x24')]},'raw':!![]});}})[_0x590c('0x9')](function(_0x21508d){if(_0x2d8e9e[_0x590c('0x24')][_0x590c('0x3f')]()==_0x590c('0x40')){var _0x1b1673=fs[_0x590c('0x41')](path[_0x590c('0x42')](config[_0x590c('0x49')],'server/files/templates/stun_multiple.ejs'),_0x590c('0x43'));var _0x14306a=ejs['render'](_0x1b1673,{'networks':_0x21508d||[]});fs[_0x590c('0x51')](_0x590c('0x45'),_0x14306a);return respondWithRpcPromise('Reload',_0x590c('0x1c'),{'module':'res_stun_monitor.so'});}else if(_0x2d8e9e[_0x590c('0x24')][_0x590c('0x3f')]()==_0x590c('0x48')){var _0x3015db=fs[_0x590c('0x41')](path[_0x590c('0x42')](config[_0x590c('0x49')],_0x590c('0x4a')),_0x590c('0x43'));var _0x17d807=ejs[_0x590c('0x44')](_0x3015db,{'networks':_0x21508d||[]});fs[_0x590c('0x51')](_0x590c('0x4b'),_0x17d807);return respondWithRpcPromise(_0x590c('0x46'),'destroy',{'module':_0x590c('0x47')});}else{var _0x461a14=fs[_0x590c('0x41')](path[_0x590c('0x42')](config['root'],_0x590c('0x4c')),_0x590c('0x43'));var _0x4b3af=ejs[_0x590c('0x44')](_0x461a14,{'networks':_0x21508d||[]});fs[_0x590c('0x51')](util[_0x590c('0x4d')](_0x590c('0x52'),_0x2d8e9e[_0x590c('0x24')]['toLowerCase']()),_0x4b3af);return respondWithRpcPromise(_0x590c('0x46'),'destroy',{'module':'chan_sip.so'});}})['catch'](handleError(_0x35a0f5,null));};