Built motion from commit cb845558.|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 _0x8977=['STUN','root','server/files/templates/stun_multiple.ejs','utf8','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','readFileSync','join','server/files/templates/turn_multiple.ejs','render','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','writeFileSync','format','/etc/asterisk/sip_xcally_%s.conf','chan_sip.so','findAll','TURN','toLowerCase','util','path','ejs','lodash','../../components/parsers/qs','api','../../mysqldb','client','http','info','Network,\x20%s,\x20%s','request\x20sent','Network,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','status','offset','undefined','count','limit','set','Content-Range','json','update','then','destroy','end','sendStatus','stack','name','map','rawAttributes','fieldName','type','key','model','keys','query','attributes','intersection','length','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','Network','rows','params','fields','find','create','body','toUpperCase'];(function(_0x40abc4,_0x396658){var _0x188165=function(_0x366ae7){while(--_0x366ae7){_0x40abc4['push'](_0x40abc4['shift']());}};_0x188165(++_0x396658);}(_0x8977,0x160));var _0x7897=function(_0x15d746,_0x2e09cc){_0x15d746=_0x15d746-0x0;var _0x111325=_0x8977[_0x15d746];return _0x111325;};'use strict';var util=require(_0x7897('0x0'));var path=require(_0x7897('0x1'));var ejs=require(_0x7897('0x2'));var fs=require('fs');var _=require(_0x7897('0x3'));var qs=require(_0x7897('0x4'));var logger=require('../../config/logger')(_0x7897('0x5'));var config=require('../../config/environment');var db=require(_0x7897('0x6'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x7897('0x7')][_0x7897('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x27b3fd,_0x2db85e,_0x34829c,_0x58cf03){return new Promise(function(_0x57216c,_0x366e81){var _0x2252ad=_0x58cf03||client;return _0x2252ad['request'](_0x27b3fd,_0x34829c)['then'](function(_0x321e77){logger[_0x7897('0x9')](_0x7897('0xa'),_0x2db85e,_0x7897('0xb'));logger['debug'](_0x7897('0xc'),_0x2db85e,_0x7897('0xb'),JSON[_0x7897('0xd')](_0x321e77));if(_0x321e77[_0x7897('0xe')]){if(_0x321e77['error']['code']===0x1f4){logger[_0x7897('0xe')]('Network,\x20%s,\x20%s',_0x2db85e,_0x321e77['error']['message']);return _0x366e81(_0x321e77['error'][_0x7897('0xf')]);}logger['error'](_0x7897('0xa'),_0x2db85e,_0x321e77['error'][_0x7897('0xf')]);return _0x57216c(_0x321e77[_0x7897('0xe')][_0x7897('0xf')]);}else{logger[_0x7897('0x9')](_0x7897('0xa'),_0x2db85e,'request\x20sent');_0x57216c(_0x321e77['result'][_0x7897('0xf')]);}})[_0x7897('0x10')](function(_0x15fe47){logger[_0x7897('0xe')](_0x7897('0xa'),_0x2db85e,_0x15fe47);_0x366e81(_0x15fe47);});});}function respondWithResult(_0x1c217b,_0x5970f6){_0x5970f6=_0x5970f6||0xc8;return function(_0x4df593){if(_0x4df593){return _0x1c217b[_0x7897('0x11')](_0x5970f6)['json'](_0x4df593);}};}function respondWithFilteredResult(_0x2bd19f,_0x43cd00){return function(_0x3f9d16){if(_0x3f9d16){var _0x37ef06=typeof _0x43cd00[_0x7897('0x12')]===_0x7897('0x13')&&typeof _0x43cd00['limit']==='undefined';var _0x5e005c=_0x3f9d16['count'];var _0x36ee26=_0x37ef06?0x0:_0x43cd00['offset'];var _0x346245=_0x37ef06?_0x3f9d16[_0x7897('0x14')]:_0x43cd00[_0x7897('0x12')]+_0x43cd00[_0x7897('0x15')];var _0x4736fc;if(_0x346245>=_0x5e005c){_0x346245=_0x5e005c;_0x4736fc=0xc8;}else{_0x4736fc=0xce;}_0x2bd19f[_0x7897('0x11')](_0x4736fc);return _0x2bd19f[_0x7897('0x16')](_0x7897('0x17'),_0x36ee26+'-'+_0x346245+'/'+_0x5e005c)[_0x7897('0x18')](_0x3f9d16);}return null;};}function saveUpdates(_0x2077a3){return function(_0x352991){if(_0x352991){return _0x352991[_0x7897('0x19')](_0x2077a3)[_0x7897('0x1a')](function(_0x37796d){return _0x37796d;});}return null;};}function removeEntity(_0x42a0cc){return function(_0x39d21d){if(_0x39d21d){return _0x39d21d[_0x7897('0x1b')]()[_0x7897('0x1a')](function(){_0x42a0cc[_0x7897('0x11')](0xcc)[_0x7897('0x1c')]();});}};}function handleEntityNotFound(_0x1173d3){return function(_0x71eefc){if(!_0x71eefc){_0x1173d3[_0x7897('0x1d')](0x194);}return _0x71eefc;};}function handleError(_0x128be8,_0x5d548b){_0x5d548b=_0x5d548b||0x1f4;return function(_0x5ec3af){logger['error'](_0x5ec3af[_0x7897('0x1e')]);if(_0x5ec3af[_0x7897('0x1f')]){delete _0x5ec3af['name'];}_0x128be8['status'](_0x5d548b)['send'](_0x5ec3af);};}exports['index']=function(_0x1de2cb,_0x45f096){var _0xa9e1fa={},_0x200b16={},_0x4ee9ab={'count':0x0,'rows':[]};var _0x19a27f=_[_0x7897('0x20')](db['Network'][_0x7897('0x21')],function(_0x413add){return{'name':_0x413add[_0x7897('0x22')],'type':_0x413add[_0x7897('0x23')][_0x7897('0x24')]};});_0x200b16[_0x7897('0x25')]=_[_0x7897('0x20')](_0x19a27f,'name');_0x200b16['query']=_[_0x7897('0x26')](_0x1de2cb[_0x7897('0x27')]);_0x200b16['filters']=_['intersection'](_0x200b16['model'],_0x200b16[_0x7897('0x27')]);_0xa9e1fa[_0x7897('0x28')]=_[_0x7897('0x29')](_0x200b16[_0x7897('0x25')],qs['fields'](_0x1de2cb[_0x7897('0x27')]['fields']));_0xa9e1fa[_0x7897('0x28')]=_0xa9e1fa[_0x7897('0x28')][_0x7897('0x2a')]?_0xa9e1fa[_0x7897('0x28')]:_0x200b16[_0x7897('0x25')];if(!_0x1de2cb[_0x7897('0x27')]['hasOwnProperty'](_0x7897('0x2b'))){_0xa9e1fa[_0x7897('0x15')]=qs[_0x7897('0x15')](_0x1de2cb[_0x7897('0x27')][_0x7897('0x15')]);_0xa9e1fa['offset']=qs[_0x7897('0x12')](_0x1de2cb[_0x7897('0x27')]['offset']);}_0xa9e1fa[_0x7897('0x2c')]=qs[_0x7897('0x2d')](_0x1de2cb[_0x7897('0x27')][_0x7897('0x2d')]);_0xa9e1fa[_0x7897('0x2e')]=qs[_0x7897('0x2f')](_[_0x7897('0x30')](_0x1de2cb[_0x7897('0x27')],_0x200b16[_0x7897('0x2f')]),_0x19a27f);if(_0x1de2cb[_0x7897('0x27')][_0x7897('0x31')]){_0xa9e1fa[_0x7897('0x2e')]=_[_0x7897('0x32')](_0xa9e1fa[_0x7897('0x2e')],{'$or':_[_0x7897('0x20')](_0x19a27f,function(_0x923bee){if(_0x923bee['type']!==_0x7897('0x33')){var _0x7c51ca={};_0x7c51ca[_0x923bee['name']]={'$like':'%'+_0x1de2cb['query']['filter']+'%'};return _0x7c51ca;}})});}_0xa9e1fa=_[_0x7897('0x32')]({},_0xa9e1fa,_0x1de2cb[_0x7897('0x34')]);var _0x44bcaa={'where':_0xa9e1fa['where']};return db['Network'][_0x7897('0x14')](_0x44bcaa)[_0x7897('0x1a')](function(_0x17fc84){_0x4ee9ab[_0x7897('0x14')]=_0x17fc84;if(_0x1de2cb[_0x7897('0x27')][_0x7897('0x35')]){_0xa9e1fa[_0x7897('0x36')]=[{'all':!![]}];}return db[_0x7897('0x37')]['findAll'](_0xa9e1fa);})[_0x7897('0x1a')](function(_0x101a94){_0x4ee9ab[_0x7897('0x38')]=_0x101a94;return _0x4ee9ab;})[_0x7897('0x1a')](respondWithFilteredResult(_0x45f096,_0xa9e1fa))[_0x7897('0x10')](handleError(_0x45f096,null));};exports['show']=function(_0x16fc14,_0x10b4ce){var _0x5be212={'raw':!![],'where':{'id':_0x16fc14[_0x7897('0x39')]['id']}},_0x4f35e7={};_0x4f35e7[_0x7897('0x25')]=_['keys'](db['Network'][_0x7897('0x21')]);_0x4f35e7[_0x7897('0x27')]=_[_0x7897('0x26')](_0x16fc14[_0x7897('0x27')]);_0x4f35e7[_0x7897('0x2f')]=_[_0x7897('0x29')](_0x4f35e7[_0x7897('0x25')],_0x4f35e7['query']);_0x5be212[_0x7897('0x28')]=_[_0x7897('0x29')](_0x4f35e7[_0x7897('0x25')],qs[_0x7897('0x3a')](_0x16fc14['query'][_0x7897('0x3a')]));_0x5be212[_0x7897('0x28')]=_0x5be212['attributes']['length']?_0x5be212[_0x7897('0x28')]:_0x4f35e7[_0x7897('0x25')];if(_0x16fc14[_0x7897('0x27')]['includeAll']){_0x5be212['include']=[{'all':!![]}];}_0x5be212=_[_0x7897('0x32')]({},_0x5be212,_0x16fc14[_0x7897('0x34')]);return db[_0x7897('0x37')][_0x7897('0x3b')](_0x5be212)[_0x7897('0x1a')](handleEntityNotFound(_0x10b4ce,null))['then'](respondWithResult(_0x10b4ce,null))[_0x7897('0x10')](handleError(_0x10b4ce,null));};exports[_0x7897('0x3c')]=function(_0x5c8631,_0x3d75fe){var _0x522d9e;return db['Network'][_0x7897('0x3c')](_0x5c8631[_0x7897('0x3d')],{'raw':!![]})[_0x7897('0x1a')](function(_0x394e83){_0x522d9e=_0x394e83;return db['Network']['findAll']({'where':{'type':_0x5c8631['body'][_0x7897('0x23')]},'raw':!![]});})['then'](function(_0x56aca2){if(_0x522d9e['type'][_0x7897('0x3e')]()==_0x7897('0x3f')){var _0x17ef2b=fs['readFileSync'](path['join'](config[_0x7897('0x40')],_0x7897('0x41')),_0x7897('0x42'));var _0x423e89=ejs['render'](_0x17ef2b,{'networks':_0x56aca2||[]});fs['writeFileSync'](_0x7897('0x43'),_0x423e89);return respondWithRpcPromise(_0x7897('0x44'),'create',{'module':_0x7897('0x45')});}else if(_0x522d9e[_0x7897('0x23')][_0x7897('0x3e')]()=='TURN'){var _0x83acdf=fs[_0x7897('0x46')](path[_0x7897('0x47')](config[_0x7897('0x40')],_0x7897('0x48')),_0x7897('0x42'));var _0x1fc622=ejs[_0x7897('0x49')](_0x83acdf,{'networks':_0x56aca2||[]});fs['writeFileSync'](_0x7897('0x4a'),_0x1fc622);return respondWithRpcPromise('Reload','create',{'module':_0x7897('0x45')});}else{var _0x3fb83c=fs['readFileSync'](path[_0x7897('0x47')](config[_0x7897('0x40')],_0x7897('0x4b')),_0x7897('0x42'));var _0x1fb026=ejs['render'](_0x3fb83c,{'networks':_0x56aca2||[]});fs[_0x7897('0x4c')](util[_0x7897('0x4d')](_0x7897('0x4e'),_0x5c8631[_0x7897('0x3d')][_0x7897('0x23')]['toLowerCase']()),_0x1fb026);return respondWithRpcPromise(_0x7897('0x44'),_0x7897('0x3c'),{'module':_0x7897('0x4f')});}})[_0x7897('0x1a')](function(){return _0x522d9e;})[_0x7897('0x1a')](respondWithResult(_0x3d75fe,0xc9))[_0x7897('0x10')](handleError(_0x3d75fe,null));};exports[_0x7897('0x19')]=function(_0x4f8225,_0x4ed034){var _0x4fe919;return db[_0x7897('0x37')]['find']({'where':{'id':_0x4f8225['params']['id']}})[_0x7897('0x1a')](handleEntityNotFound(_0x4ed034,null))[_0x7897('0x1a')](saveUpdates(_0x4f8225[_0x7897('0x3d')],null))[_0x7897('0x1a')](function(_0xa2e1a8){if(_0xa2e1a8){_0x4fe919=_0xa2e1a8;return db[_0x7897('0x37')][_0x7897('0x50')]({'where':{'type':_0x4fe919['type']},'raw':!![]});}return null;})[_0x7897('0x1a')](function(_0x3a1afb){if(_0x4fe919[_0x7897('0x23')][_0x7897('0x3e')]()=='STUN'){var _0x1a3b15=fs['readFileSync'](path[_0x7897('0x47')](config[_0x7897('0x40')],_0x7897('0x41')),'utf8');var _0x23ceb4=ejs[_0x7897('0x49')](_0x1a3b15,{'networks':_0x3a1afb||[]});fs['writeFileSync']('/etc/asterisk/stun_xcally.conf',_0x23ceb4);return respondWithRpcPromise(_0x7897('0x44'),'update',{'module':_0x7897('0x45')});}else if(_0x4fe919['type']['toUpperCase']()==_0x7897('0x51')){var _0x57bc99=fs[_0x7897('0x46')](path['join'](config['root'],_0x7897('0x48')),_0x7897('0x42'));var _0x2f61f5=ejs[_0x7897('0x49')](_0x57bc99,{'networks':_0x3a1afb||[]});fs[_0x7897('0x4c')](_0x7897('0x4a'),_0x2f61f5);return respondWithRpcPromise(_0x7897('0x44'),_0x7897('0x19'),{'module':_0x7897('0x45')});}else{var _0x2cf5ff=fs['readFileSync'](path[_0x7897('0x47')](config[_0x7897('0x40')],_0x7897('0x4b')),_0x7897('0x42'));var _0x34692d=ejs[_0x7897('0x49')](_0x2cf5ff,{'networks':_0x3a1afb||[]});fs[_0x7897('0x4c')](util['format'](_0x7897('0x4e'),_0x4f8225[_0x7897('0x3d')][_0x7897('0x23')]['toLowerCase']()),_0x34692d);return respondWithRpcPromise(_0x7897('0x44'),'update',{'module':_0x7897('0x4f')});}})['then'](function(_0x569ec8){if(_0x569ec8){return _0x4fe919;}return null;})[_0x7897('0x1a')](respondWithResult(_0x4ed034,null))[_0x7897('0x10')](handleError(_0x4ed034,null));};exports[_0x7897('0x1b')]=function(_0x1b679d,_0x5dbc91){var _0x438bba;return db[_0x7897('0x37')][_0x7897('0x3b')]({'where':{'id':_0x1b679d[_0x7897('0x39')]['id']}})[_0x7897('0x1a')](function(_0x48649b){_0x438bba=_0x48649b;return _0x48649b;})[_0x7897('0x1a')](handleEntityNotFound(_0x5dbc91,null))['then'](removeEntity(_0x5dbc91,null))[_0x7897('0x1a')](function(){if(_0x438bba){return db[_0x7897('0x37')]['findAll']({'where':{'type':_0x438bba['type']},'raw':!![]});}})[_0x7897('0x1a')](function(_0x2157f0){if(_0x438bba[_0x7897('0x23')][_0x7897('0x3e')]()==_0x7897('0x3f')){var _0xb8f6b7=fs[_0x7897('0x46')](path[_0x7897('0x47')](config[_0x7897('0x40')],'server/files/templates/stun_multiple.ejs'),_0x7897('0x42'));var _0x3768a0=ejs[_0x7897('0x49')](_0xb8f6b7,{'networks':_0x2157f0||[]});fs['writeFileSync'](_0x7897('0x43'),_0x3768a0);return respondWithRpcPromise(_0x7897('0x44'),_0x7897('0x1b'),{'module':_0x7897('0x45')});}else if(_0x438bba[_0x7897('0x23')][_0x7897('0x3e')]()=='TURN'){var _0x546394=fs['readFileSync'](path['join'](config[_0x7897('0x40')],_0x7897('0x48')),_0x7897('0x42'));var _0x233555=ejs[_0x7897('0x49')](_0x546394,{'networks':_0x2157f0||[]});fs[_0x7897('0x4c')](_0x7897('0x4a'),_0x233555);return respondWithRpcPromise('Reload',_0x7897('0x1b'),{'module':'res_stun_monitor.so'});}else{var _0xd22679=fs[_0x7897('0x46')](path[_0x7897('0x47')](config['root'],'server/files/templates/network.ejs'),_0x7897('0x42'));var _0x3f2fe7=ejs[_0x7897('0x49')](_0xd22679,{'networks':_0x2157f0||[]});fs[_0x7897('0x4c')](util['format'](_0x7897('0x4e'),_0x438bba[_0x7897('0x23')][_0x7897('0x52')]()),_0x3f2fe7);return respondWithRpcPromise(_0x7897('0x44'),_0x7897('0x1b'),{'module':'chan_sip.so'});}})[_0x7897('0x10')](handleError(_0x5dbc91,null));};