Built motion from commit d5e4af8c.|2.6.23
[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 _0x80bd=['utf8','render','writeFileSync','Reload','TURN','server/files/templates/turn_multiple.ejs','res_stun_monitor.so','server/files/templates/network.ejs','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','find','params','/etc/asterisk/stun_xcally.conf','/etc/asterisk/turn_xcally.conf','format','chan_sip.so','server/files/templates/stun_multiple.ejs','util','ejs','lodash','../../components/parsers/qs','api','../../config/environment','../../mysqldb','jayson/promise','client','http','request','then','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','status','json','offset','undefined','limit','count','set','Content-Range','update','destroy','index','Network','rawAttributes','fieldName','type','model','name','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','map','VIRTUAL','includeAll','include','rows','catch','show','options','create','findAll','body','toUpperCase','STUN','readFileSync','join','root'];(function(_0x208311,_0x4cdf34){var _0x28320f=function(_0x47379b){while(--_0x47379b){_0x208311['push'](_0x208311['shift']());}};_0x28320f(++_0x4cdf34);}(_0x80bd,0xbd));var _0xd80b=function(_0x428493,_0x557e2f){_0x428493=_0x428493-0x0;var _0x1f7a7c=_0x80bd[_0x428493];return _0x1f7a7c;};'use strict';var util=require(_0xd80b('0x0'));var path=require('path');var ejs=require(_0xd80b('0x1'));var fs=require('fs');var _=require(_0xd80b('0x2'));var qs=require(_0xd80b('0x3'));var logger=require('../../config/logger')(_0xd80b('0x4'));var config=require(_0xd80b('0x5'));var db=require(_0xd80b('0x6'))['db'];var jayson=require(_0xd80b('0x7'));var client=jayson[_0xd80b('0x8')][_0xd80b('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x55aae0,_0x5000b8,_0x496f79,_0x1c2ca6){return new Promise(function(_0x5ba746,_0x2be44c){var _0x1352e2=_0x1c2ca6||client;return _0x1352e2[_0xd80b('0xa')](_0x55aae0,_0x496f79)[_0xd80b('0xb')](function(_0x197bf0){logger['info'](_0xd80b('0xc'),_0x5000b8,_0xd80b('0xd'));logger[_0xd80b('0xe')](_0xd80b('0xf'),_0x5000b8,'request\x20sent',JSON[_0xd80b('0x10')](_0x197bf0));if(_0x197bf0[_0xd80b('0x11')]){if(_0x197bf0[_0xd80b('0x11')][_0xd80b('0x12')]===0x1f4){logger[_0xd80b('0x11')](_0xd80b('0xc'),_0x5000b8,_0x197bf0[_0xd80b('0x11')][_0xd80b('0x13')]);return _0x2be44c(_0x197bf0[_0xd80b('0x11')][_0xd80b('0x13')]);}logger[_0xd80b('0x11')](_0xd80b('0xc'),_0x5000b8,_0x197bf0[_0xd80b('0x11')][_0xd80b('0x13')]);return _0x5ba746(_0x197bf0['error']['message']);}else{logger[_0xd80b('0x14')]('Network,\x20%s,\x20%s',_0x5000b8,_0xd80b('0xd'));_0x5ba746(_0x197bf0[_0xd80b('0x15')][_0xd80b('0x13')]);}})['catch'](function(_0x3c0ae7){logger[_0xd80b('0x11')]('Network,\x20%s,\x20%s',_0x5000b8,_0x3c0ae7);_0x2be44c(_0x3c0ae7);});});}function respondWithResult(_0x1ddd93,_0x333111){_0x333111=_0x333111||0xc8;return function(_0x3f8587){if(_0x3f8587){return _0x1ddd93[_0xd80b('0x16')](_0x333111)[_0xd80b('0x17')](_0x3f8587);}};}function respondWithFilteredResult(_0x27def0,_0x1c38df){return function(_0x566bf6){if(_0x566bf6){var _0x4b79b1=typeof _0x1c38df[_0xd80b('0x18')]===_0xd80b('0x19')&&typeof _0x1c38df[_0xd80b('0x1a')]==='undefined';var _0x4213ea=_0x566bf6[_0xd80b('0x1b')];var _0x9c6452=_0x4b79b1?0x0:_0x1c38df['offset'];var _0x2065c1=_0x4b79b1?_0x566bf6[_0xd80b('0x1b')]:_0x1c38df[_0xd80b('0x18')]+_0x1c38df[_0xd80b('0x1a')];var _0x21b47f;if(_0x2065c1>=_0x4213ea){_0x2065c1=_0x4213ea;_0x21b47f=0xc8;}else{_0x21b47f=0xce;}_0x27def0[_0xd80b('0x16')](_0x21b47f);return _0x27def0[_0xd80b('0x1c')](_0xd80b('0x1d'),_0x9c6452+'-'+_0x2065c1+'/'+_0x4213ea)[_0xd80b('0x17')](_0x566bf6);}return null;};}function saveUpdates(_0xaac98d){return function(_0x53f8e4){if(_0x53f8e4){return _0x53f8e4[_0xd80b('0x1e')](_0xaac98d)[_0xd80b('0xb')](function(_0x315e7d){return _0x315e7d;});}return null;};}function removeEntity(_0x3abe70){return function(_0x36b3e0){if(_0x36b3e0){return _0x36b3e0[_0xd80b('0x1f')]()[_0xd80b('0xb')](function(){_0x3abe70['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x50176c){return function(_0x532a5d){if(!_0x532a5d){_0x50176c['sendStatus'](0x194);}return _0x532a5d;};}function handleError(_0x250b12,_0x4606f1){_0x4606f1=_0x4606f1||0x1f4;return function(_0x4494ff){logger['error'](_0x4494ff['stack']);if(_0x4494ff['name']){delete _0x4494ff['name'];}_0x250b12[_0xd80b('0x16')](_0x4606f1)['send'](_0x4494ff);};}exports[_0xd80b('0x20')]=function(_0x21a60b,_0x54b73b){var _0x266622={},_0x37530f={},_0x5316c8={'count':0x0,'rows':[]};var _0x3c431f=_['map'](db[_0xd80b('0x21')][_0xd80b('0x22')],function(_0x4da5d7){return{'name':_0x4da5d7[_0xd80b('0x23')],'type':_0x4da5d7[_0xd80b('0x24')]['key']};});_0x37530f[_0xd80b('0x25')]=_['map'](_0x3c431f,_0xd80b('0x26'));_0x37530f[_0xd80b('0x27')]=_[_0xd80b('0x28')](_0x21a60b['query']);_0x37530f[_0xd80b('0x29')]=_['intersection'](_0x37530f[_0xd80b('0x25')],_0x37530f[_0xd80b('0x27')]);_0x266622['attributes']=_[_0xd80b('0x2a')](_0x37530f[_0xd80b('0x25')],qs[_0xd80b('0x2b')](_0x21a60b[_0xd80b('0x27')]['fields']));_0x266622[_0xd80b('0x2c')]=_0x266622[_0xd80b('0x2c')][_0xd80b('0x2d')]?_0x266622[_0xd80b('0x2c')]:_0x37530f[_0xd80b('0x25')];if(!_0x21a60b[_0xd80b('0x27')]['hasOwnProperty'](_0xd80b('0x2e'))){_0x266622[_0xd80b('0x1a')]=qs[_0xd80b('0x1a')](_0x21a60b[_0xd80b('0x27')][_0xd80b('0x1a')]);_0x266622[_0xd80b('0x18')]=qs[_0xd80b('0x18')](_0x21a60b[_0xd80b('0x27')][_0xd80b('0x18')]);}_0x266622[_0xd80b('0x2f')]=qs[_0xd80b('0x30')](_0x21a60b['query'][_0xd80b('0x30')]);_0x266622[_0xd80b('0x31')]=qs[_0xd80b('0x29')](_[_0xd80b('0x32')](_0x21a60b[_0xd80b('0x27')],_0x37530f[_0xd80b('0x29')]),_0x3c431f);if(_0x21a60b[_0xd80b('0x27')][_0xd80b('0x33')]){_0x266622['where']=_[_0xd80b('0x34')](_0x266622[_0xd80b('0x31')],{'$or':_[_0xd80b('0x35')](_0x3c431f,function(_0x46571a){if(_0x46571a['type']!==_0xd80b('0x36')){var _0x8806f7={};_0x8806f7[_0x46571a[_0xd80b('0x26')]]={'$like':'%'+_0x21a60b[_0xd80b('0x27')][_0xd80b('0x33')]+'%'};return _0x8806f7;}})});}_0x266622=_['merge']({},_0x266622,_0x21a60b['options']);var _0x298b36={'where':_0x266622[_0xd80b('0x31')]};return db['Network'][_0xd80b('0x1b')](_0x298b36)[_0xd80b('0xb')](function(_0x3e0536){_0x5316c8[_0xd80b('0x1b')]=_0x3e0536;if(_0x21a60b[_0xd80b('0x27')][_0xd80b('0x37')]){_0x266622[_0xd80b('0x38')]=[{'all':!![]}];}return db[_0xd80b('0x21')]['findAll'](_0x266622);})[_0xd80b('0xb')](function(_0x6c35aa){_0x5316c8[_0xd80b('0x39')]=_0x6c35aa;return _0x5316c8;})[_0xd80b('0xb')](respondWithFilteredResult(_0x54b73b,_0x266622))[_0xd80b('0x3a')](handleError(_0x54b73b,null));};exports[_0xd80b('0x3b')]=function(_0x3dd28a,_0x428821){var _0x5f5df0={'raw':!![],'where':{'id':_0x3dd28a['params']['id']}},_0x1efa03={};_0x1efa03[_0xd80b('0x25')]=_[_0xd80b('0x28')](db[_0xd80b('0x21')][_0xd80b('0x22')]);_0x1efa03[_0xd80b('0x27')]=_[_0xd80b('0x28')](_0x3dd28a['query']);_0x1efa03[_0xd80b('0x29')]=_[_0xd80b('0x2a')](_0x1efa03[_0xd80b('0x25')],_0x1efa03['query']);_0x5f5df0[_0xd80b('0x2c')]=_[_0xd80b('0x2a')](_0x1efa03[_0xd80b('0x25')],qs['fields'](_0x3dd28a['query']['fields']));_0x5f5df0[_0xd80b('0x2c')]=_0x5f5df0['attributes'][_0xd80b('0x2d')]?_0x5f5df0[_0xd80b('0x2c')]:_0x1efa03['model'];if(_0x3dd28a[_0xd80b('0x27')][_0xd80b('0x37')]){_0x5f5df0[_0xd80b('0x38')]=[{'all':!![]}];}_0x5f5df0=_[_0xd80b('0x34')]({},_0x5f5df0,_0x3dd28a[_0xd80b('0x3c')]);return db[_0xd80b('0x21')]['find'](_0x5f5df0)[_0xd80b('0xb')](handleEntityNotFound(_0x428821,null))[_0xd80b('0xb')](respondWithResult(_0x428821,null))['catch'](handleError(_0x428821,null));};exports[_0xd80b('0x3d')]=function(_0x27962a,_0x537ecb){var _0x596e49;return db[_0xd80b('0x21')][_0xd80b('0x3d')](_0x27962a['body'],{'raw':!![]})['then'](function(_0x2b8a5c){_0x596e49=_0x2b8a5c;return db['Network'][_0xd80b('0x3e')]({'where':{'type':_0x27962a[_0xd80b('0x3f')][_0xd80b('0x24')]},'raw':!![]});})[_0xd80b('0xb')](function(_0x517b3b){if(_0x596e49[_0xd80b('0x24')][_0xd80b('0x40')]()==_0xd80b('0x41')){var _0x4b2224=fs[_0xd80b('0x42')](path[_0xd80b('0x43')](config[_0xd80b('0x44')],'server/files/templates/stun_multiple.ejs'),_0xd80b('0x45'));var _0x25061c=ejs[_0xd80b('0x46')](_0x4b2224,{'networks':_0x517b3b||[]});fs[_0xd80b('0x47')]('/etc/asterisk/stun_xcally.conf',_0x25061c);return respondWithRpcPromise(_0xd80b('0x48'),_0xd80b('0x3d'),{'module':'res_stun_monitor.so'});}else if(_0x596e49[_0xd80b('0x24')][_0xd80b('0x40')]()==_0xd80b('0x49')){var _0x2c4310=fs[_0xd80b('0x42')](path[_0xd80b('0x43')](config[_0xd80b('0x44')],_0xd80b('0x4a')),'utf8');var _0x477415=ejs['render'](_0x2c4310,{'networks':_0x517b3b||[]});fs[_0xd80b('0x47')]('/etc/asterisk/turn_xcally.conf',_0x477415);return respondWithRpcPromise(_0xd80b('0x48'),_0xd80b('0x3d'),{'module':_0xd80b('0x4b')});}else{var _0x784a71=fs['readFileSync'](path['join'](config['root'],_0xd80b('0x4c')),_0xd80b('0x45'));var _0x42af27=ejs[_0xd80b('0x46')](_0x784a71,{'networks':_0x517b3b||[]});fs[_0xd80b('0x47')](util['format'](_0xd80b('0x4d'),_0x27962a[_0xd80b('0x3f')][_0xd80b('0x24')][_0xd80b('0x4e')]()),_0x42af27);return respondWithRpcPromise('Reload',_0xd80b('0x3d'),{'module':'chan_sip.so'});}})[_0xd80b('0xb')](function(){return _0x596e49;})[_0xd80b('0xb')](respondWithResult(_0x537ecb,0xc9))[_0xd80b('0x3a')](handleError(_0x537ecb,null));};exports[_0xd80b('0x1e')]=function(_0x386942,_0x27e63a){var _0x37c31d;return db['Network'][_0xd80b('0x4f')]({'where':{'id':_0x386942[_0xd80b('0x50')]['id']}})[_0xd80b('0xb')](handleEntityNotFound(_0x27e63a,null))[_0xd80b('0xb')](saveUpdates(_0x386942[_0xd80b('0x3f')],null))['then'](function(_0x47bd9a){if(_0x47bd9a){_0x37c31d=_0x47bd9a;return db['Network'][_0xd80b('0x3e')]({'where':{'type':_0x37c31d[_0xd80b('0x24')]},'raw':!![]});}return null;})[_0xd80b('0xb')](function(_0x36a866){if(_0x37c31d['type'][_0xd80b('0x40')]()==_0xd80b('0x41')){var _0x41db20=fs['readFileSync'](path[_0xd80b('0x43')](config['root'],'server/files/templates/stun_multiple.ejs'),'utf8');var _0xa636f1=ejs[_0xd80b('0x46')](_0x41db20,{'networks':_0x36a866||[]});fs[_0xd80b('0x47')](_0xd80b('0x51'),_0xa636f1);return respondWithRpcPromise(_0xd80b('0x48'),_0xd80b('0x1e'),{'module':_0xd80b('0x4b')});}else if(_0x37c31d['type']['toUpperCase']()==_0xd80b('0x49')){var _0x2c60fa=fs['readFileSync'](path[_0xd80b('0x43')](config[_0xd80b('0x44')],_0xd80b('0x4a')),'utf8');var _0xa54862=ejs[_0xd80b('0x46')](_0x2c60fa,{'networks':_0x36a866||[]});fs[_0xd80b('0x47')](_0xd80b('0x52'),_0xa54862);return respondWithRpcPromise('Reload',_0xd80b('0x1e'),{'module':_0xd80b('0x4b')});}else{var _0x3a5cea=fs[_0xd80b('0x42')](path[_0xd80b('0x43')](config[_0xd80b('0x44')],_0xd80b('0x4c')),_0xd80b('0x45'));var _0x466526=ejs[_0xd80b('0x46')](_0x3a5cea,{'networks':_0x36a866||[]});fs['writeFileSync'](util[_0xd80b('0x53')]('/etc/asterisk/sip_xcally_%s.conf',_0x386942[_0xd80b('0x3f')][_0xd80b('0x24')][_0xd80b('0x4e')]()),_0x466526);return respondWithRpcPromise('Reload','update',{'module':_0xd80b('0x54')});}})['then'](function(_0x7f498f){if(_0x7f498f){return _0x37c31d;}return null;})[_0xd80b('0xb')](respondWithResult(_0x27e63a,null))[_0xd80b('0x3a')](handleError(_0x27e63a,null));};exports['destroy']=function(_0x402a10,_0x446e89){var _0x1ff644;return db[_0xd80b('0x21')][_0xd80b('0x4f')]({'where':{'id':_0x402a10[_0xd80b('0x50')]['id']}})[_0xd80b('0xb')](function(_0x49d7ec){_0x1ff644=_0x49d7ec;return _0x49d7ec;})[_0xd80b('0xb')](handleEntityNotFound(_0x446e89,null))['then'](removeEntity(_0x446e89,null))['then'](function(){if(_0x1ff644){return db[_0xd80b('0x21')][_0xd80b('0x3e')]({'where':{'type':_0x1ff644[_0xd80b('0x24')]},'raw':!![]});}})[_0xd80b('0xb')](function(_0x26b3f2){if(_0x1ff644[_0xd80b('0x24')]['toUpperCase']()==_0xd80b('0x41')){var _0xbbf3aa=fs[_0xd80b('0x42')](path[_0xd80b('0x43')](config[_0xd80b('0x44')],_0xd80b('0x55')),_0xd80b('0x45'));var _0x2c9f44=ejs[_0xd80b('0x46')](_0xbbf3aa,{'networks':_0x26b3f2||[]});fs['writeFileSync']('/etc/asterisk/stun_xcally.conf',_0x2c9f44);return respondWithRpcPromise(_0xd80b('0x48'),'destroy',{'module':_0xd80b('0x4b')});}else if(_0x1ff644['type'][_0xd80b('0x40')]()==_0xd80b('0x49')){var _0x2f2130=fs[_0xd80b('0x42')](path['join'](config[_0xd80b('0x44')],_0xd80b('0x4a')),_0xd80b('0x45'));var _0x5565bd=ejs[_0xd80b('0x46')](_0x2f2130,{'networks':_0x26b3f2||[]});fs['writeFileSync'](_0xd80b('0x52'),_0x5565bd);return respondWithRpcPromise(_0xd80b('0x48'),_0xd80b('0x1f'),{'module':'res_stun_monitor.so'});}else{var _0x29e91b=fs['readFileSync'](path[_0xd80b('0x43')](config[_0xd80b('0x44')],_0xd80b('0x4c')),_0xd80b('0x45'));var _0x4a5974=ejs['render'](_0x29e91b,{'networks':_0x26b3f2||[]});fs[_0xd80b('0x47')](util[_0xd80b('0x53')]('/etc/asterisk/sip_xcally_%s.conf',_0x1ff644[_0xd80b('0x24')][_0xd80b('0x4e')]()),_0x4a5974);return respondWithRpcPromise(_0xd80b('0x48'),'destroy',{'module':_0xd80b('0x54')});}})[_0xd80b('0x3a')](handleError(_0x446e89,null));};