682de8c9c6de4eb7a0e9a258028c39f4bc5e4d26
[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 _0x5787=['set','Content-Range','update','destroy','end','sendStatus','name','send','map','Network','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','create','STUN','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','toUpperCase','TURN','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','Reload','res_stun_monitor.so','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','body','toLowerCase','chan_sip.so','find','util','path','ejs','lodash','../../components/parsers/qs','../../config/logger','api','../../config/environment','jayson/promise','client','http','request','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','status','json','offset','undefined','limit','count'];(function(_0x1f15e8,_0x456666){var _0x70662b=function(_0x3c7bf1){while(--_0x3c7bf1){_0x1f15e8['push'](_0x1f15e8['shift']());}};_0x70662b(++_0x456666);}(_0x5787,0x95));var _0x7578=function(_0x21d18b,_0x246319){_0x21d18b=_0x21d18b-0x0;var _0x5cace7=_0x5787[_0x21d18b];return _0x5cace7;};'use strict';var util=require(_0x7578('0x0'));var path=require(_0x7578('0x1'));var ejs=require(_0x7578('0x2'));var fs=require('fs');var _=require(_0x7578('0x3'));var qs=require(_0x7578('0x4'));var logger=require(_0x7578('0x5'))(_0x7578('0x6'));var config=require(_0x7578('0x7'));var db=require('../../mysqldb')['db'];var jayson=require(_0x7578('0x8'));var client=jayson[_0x7578('0x9')][_0x7578('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x39f21c,_0x245f7d,_0x4b22f0,_0x548060){return new Promise(function(_0x57b3c4,_0x1d5872){var _0x4a134a=_0x548060||client;return _0x4a134a[_0x7578('0xb')](_0x39f21c,_0x4b22f0)[_0x7578('0xc')](function(_0x3da64f){logger[_0x7578('0xd')](_0x7578('0xe'),_0x245f7d,_0x7578('0xf'));logger[_0x7578('0x10')]('Network,\x20%s,\x20%s,\x20%s',_0x245f7d,_0x7578('0xf'),JSON[_0x7578('0x11')](_0x3da64f));if(_0x3da64f[_0x7578('0x12')]){if(_0x3da64f[_0x7578('0x12')][_0x7578('0x13')]===0x1f4){logger[_0x7578('0x12')]('Network,\x20%s,\x20%s',_0x245f7d,_0x3da64f[_0x7578('0x12')]['message']);return _0x1d5872(_0x3da64f[_0x7578('0x12')][_0x7578('0x14')]);}logger['error'](_0x7578('0xe'),_0x245f7d,_0x3da64f[_0x7578('0x12')][_0x7578('0x14')]);return _0x57b3c4(_0x3da64f['error'][_0x7578('0x14')]);}else{logger[_0x7578('0xd')](_0x7578('0xe'),_0x245f7d,_0x7578('0xf'));_0x57b3c4(_0x3da64f['result'][_0x7578('0x14')]);}})['catch'](function(_0x4ff7d3){logger['error'](_0x7578('0xe'),_0x245f7d,_0x4ff7d3);_0x1d5872(_0x4ff7d3);});});}function respondWithResult(_0x3f3237,_0x5a66b7){_0x5a66b7=_0x5a66b7||0xc8;return function(_0x17b695){if(_0x17b695){return _0x3f3237[_0x7578('0x15')](_0x5a66b7)[_0x7578('0x16')](_0x17b695);}};}function respondWithFilteredResult(_0x5b163c,_0x63d262){return function(_0x1ead7d){if(_0x1ead7d){var _0x424651=typeof _0x63d262[_0x7578('0x17')]===_0x7578('0x18')&&typeof _0x63d262[_0x7578('0x19')]===_0x7578('0x18');var _0x58f2b7=_0x1ead7d[_0x7578('0x1a')];var _0x38671d=_0x424651?0x0:_0x63d262[_0x7578('0x17')];var _0x1b52a7=_0x424651?_0x1ead7d[_0x7578('0x1a')]:_0x63d262[_0x7578('0x17')]+_0x63d262[_0x7578('0x19')];var _0x509661;if(_0x1b52a7>=_0x58f2b7){_0x1b52a7=_0x58f2b7;_0x509661=0xc8;}else{_0x509661=0xce;}_0x5b163c[_0x7578('0x15')](_0x509661);return _0x5b163c[_0x7578('0x1b')](_0x7578('0x1c'),_0x38671d+'-'+_0x1b52a7+'/'+_0x58f2b7)[_0x7578('0x16')](_0x1ead7d);}return null;};}function saveUpdates(_0x3b9ae2){return function(_0x52d926){if(_0x52d926){return _0x52d926[_0x7578('0x1d')](_0x3b9ae2)[_0x7578('0xc')](function(_0xe8a839){return _0xe8a839;});}return null;};}function removeEntity(_0x13337a){return function(_0x19ebce){if(_0x19ebce){return _0x19ebce[_0x7578('0x1e')]()[_0x7578('0xc')](function(){_0x13337a[_0x7578('0x15')](0xcc)[_0x7578('0x1f')]();});}};}function handleEntityNotFound(_0x25fc8f){return function(_0x4b6a4e){if(!_0x4b6a4e){_0x25fc8f[_0x7578('0x20')](0x194);}return _0x4b6a4e;};}function handleError(_0x21e7a0,_0x55db54){_0x55db54=_0x55db54||0x1f4;return function(_0x41b6d9){logger[_0x7578('0x12')](_0x41b6d9['stack']);if(_0x41b6d9[_0x7578('0x21')]){delete _0x41b6d9[_0x7578('0x21')];}_0x21e7a0[_0x7578('0x15')](_0x55db54)[_0x7578('0x22')](_0x41b6d9);};}exports['index']=function(_0x354f72,_0xa89fb1){var _0x160a89={},_0x6eb501={},_0x2a92bb={'count':0x0,'rows':[]};var _0x3efa13=_[_0x7578('0x23')](db[_0x7578('0x24')][_0x7578('0x25')],function(_0x28503a){return{'name':_0x28503a[_0x7578('0x26')],'type':_0x28503a[_0x7578('0x27')][_0x7578('0x28')]};});_0x6eb501[_0x7578('0x29')]=_[_0x7578('0x23')](_0x3efa13,_0x7578('0x21'));_0x6eb501[_0x7578('0x2a')]=_[_0x7578('0x2b')](_0x354f72[_0x7578('0x2a')]);_0x6eb501[_0x7578('0x2c')]=_['intersection'](_0x6eb501['model'],_0x6eb501[_0x7578('0x2a')]);_0x160a89['attributes']=_[_0x7578('0x2d')](_0x6eb501['model'],qs[_0x7578('0x2e')](_0x354f72[_0x7578('0x2a')][_0x7578('0x2e')]));_0x160a89['attributes']=_0x160a89[_0x7578('0x2f')][_0x7578('0x30')]?_0x160a89[_0x7578('0x2f')]:_0x6eb501[_0x7578('0x29')];if(!_0x354f72[_0x7578('0x2a')]['hasOwnProperty'](_0x7578('0x31'))){_0x160a89[_0x7578('0x19')]=qs['limit'](_0x354f72[_0x7578('0x2a')][_0x7578('0x19')]);_0x160a89[_0x7578('0x17')]=qs[_0x7578('0x17')](_0x354f72[_0x7578('0x2a')]['offset']);}_0x160a89[_0x7578('0x32')]=qs['sort'](_0x354f72['query'][_0x7578('0x33')]);_0x160a89[_0x7578('0x34')]=qs[_0x7578('0x2c')](_[_0x7578('0x35')](_0x354f72[_0x7578('0x2a')],_0x6eb501[_0x7578('0x2c')]),_0x3efa13);if(_0x354f72[_0x7578('0x2a')][_0x7578('0x36')]){_0x160a89[_0x7578('0x34')]=_[_0x7578('0x37')](_0x160a89[_0x7578('0x34')],{'$or':_['map'](_0x3efa13,function(_0x466569){if(_0x466569['type']!==_0x7578('0x38')){var _0x462799={};_0x462799[_0x466569[_0x7578('0x21')]]={'$like':'%'+_0x354f72[_0x7578('0x2a')][_0x7578('0x36')]+'%'};return _0x462799;}})});}_0x160a89=_['merge']({},_0x160a89,_0x354f72[_0x7578('0x39')]);var _0x4cd992={'where':_0x160a89[_0x7578('0x34')]};return db[_0x7578('0x24')][_0x7578('0x1a')](_0x4cd992)[_0x7578('0xc')](function(_0x56ff23){_0x2a92bb[_0x7578('0x1a')]=_0x56ff23;if(_0x354f72[_0x7578('0x2a')][_0x7578('0x3a')]){_0x160a89[_0x7578('0x3b')]=[{'all':!![]}];}return db[_0x7578('0x24')][_0x7578('0x3c')](_0x160a89);})['then'](function(_0x4634c8){_0x2a92bb[_0x7578('0x3d')]=_0x4634c8;return _0x2a92bb;})[_0x7578('0xc')](respondWithFilteredResult(_0xa89fb1,_0x160a89))[_0x7578('0x3e')](handleError(_0xa89fb1,null));};exports[_0x7578('0x3f')]=function(_0x51c942,_0x257ca9){var _0x4b73b6={'raw':!![],'where':{'id':_0x51c942[_0x7578('0x40')]['id']}},_0x3faf2c={};_0x3faf2c[_0x7578('0x29')]=_[_0x7578('0x2b')](db[_0x7578('0x24')][_0x7578('0x25')]);_0x3faf2c[_0x7578('0x2a')]=_[_0x7578('0x2b')](_0x51c942[_0x7578('0x2a')]);_0x3faf2c[_0x7578('0x2c')]=_[_0x7578('0x2d')](_0x3faf2c[_0x7578('0x29')],_0x3faf2c[_0x7578('0x2a')]);_0x4b73b6[_0x7578('0x2f')]=_[_0x7578('0x2d')](_0x3faf2c[_0x7578('0x29')],qs[_0x7578('0x2e')](_0x51c942[_0x7578('0x2a')][_0x7578('0x2e')]));_0x4b73b6['attributes']=_0x4b73b6[_0x7578('0x2f')]['length']?_0x4b73b6[_0x7578('0x2f')]:_0x3faf2c['model'];if(_0x51c942[_0x7578('0x2a')]['includeAll']){_0x4b73b6['include']=[{'all':!![]}];}_0x4b73b6=_[_0x7578('0x37')]({},_0x4b73b6,_0x51c942['options']);return db[_0x7578('0x24')]['find'](_0x4b73b6)[_0x7578('0xc')](handleEntityNotFound(_0x257ca9,null))['then'](respondWithResult(_0x257ca9,null))[_0x7578('0x3e')](handleError(_0x257ca9,null));};exports[_0x7578('0x41')]=function(_0x50e076,_0x16d257){var _0x372e0c;return db[_0x7578('0x24')][_0x7578('0x41')](_0x50e076['body'],{'raw':!![]})['then'](function(_0x106d4f){_0x372e0c=_0x106d4f;return db[_0x7578('0x24')][_0x7578('0x3c')]({'where':{'type':_0x50e076['body'][_0x7578('0x27')]},'raw':!![]});})[_0x7578('0xc')](function(_0x35ea15){if(_0x372e0c[_0x7578('0x27')]['toUpperCase']()==_0x7578('0x42')){var _0x2aabfc=fs[_0x7578('0x43')](path[_0x7578('0x44')](config[_0x7578('0x45')],_0x7578('0x46')),_0x7578('0x47'));var _0x5db25b=ejs[_0x7578('0x48')](_0x2aabfc,{'networks':_0x35ea15||[]});fs[_0x7578('0x49')](_0x7578('0x4a'),_0x5db25b);return respondWithRpcPromise('Reload',_0x7578('0x41'),{'module':'res_stun_monitor.so'});}else if(_0x372e0c['type'][_0x7578('0x4b')]()==_0x7578('0x4c')){var _0x599e71=fs[_0x7578('0x43')](path['join'](config[_0x7578('0x45')],_0x7578('0x4d')),'utf8');var _0x130d04=ejs[_0x7578('0x48')](_0x599e71,{'networks':_0x35ea15||[]});fs[_0x7578('0x49')](_0x7578('0x4e'),_0x130d04);return respondWithRpcPromise(_0x7578('0x4f'),_0x7578('0x41'),{'module':_0x7578('0x50')});}else{var _0x89ed32=fs[_0x7578('0x43')](path[_0x7578('0x44')](config[_0x7578('0x45')],_0x7578('0x51')),_0x7578('0x47'));var _0x102584=ejs[_0x7578('0x48')](_0x89ed32,{'networks':_0x35ea15||[]});fs[_0x7578('0x49')](util[_0x7578('0x52')](_0x7578('0x53'),_0x50e076[_0x7578('0x54')][_0x7578('0x27')][_0x7578('0x55')]()),_0x102584);return respondWithRpcPromise(_0x7578('0x4f'),_0x7578('0x41'),{'module':_0x7578('0x56')});}})[_0x7578('0xc')](function(){return _0x372e0c;})[_0x7578('0xc')](respondWithResult(_0x16d257,0xc9))[_0x7578('0x3e')](handleError(_0x16d257,null));};exports[_0x7578('0x1d')]=function(_0x53a67f,_0x363a8a){var _0x4070cc;return db['Network']['find']({'where':{'id':_0x53a67f[_0x7578('0x40')]['id']}})[_0x7578('0xc')](handleEntityNotFound(_0x363a8a,null))[_0x7578('0xc')](saveUpdates(_0x53a67f[_0x7578('0x54')],null))['then'](function(_0x46261d){if(_0x46261d){_0x4070cc=_0x46261d;return db[_0x7578('0x24')]['findAll']({'where':{'type':_0x4070cc[_0x7578('0x27')]},'raw':!![]});}return null;})[_0x7578('0xc')](function(_0x2d2514){if(_0x4070cc[_0x7578('0x27')][_0x7578('0x4b')]()==_0x7578('0x42')){var _0x3de54e=fs[_0x7578('0x43')](path[_0x7578('0x44')](config[_0x7578('0x45')],_0x7578('0x46')),_0x7578('0x47'));var _0x4f5325=ejs[_0x7578('0x48')](_0x3de54e,{'networks':_0x2d2514||[]});fs[_0x7578('0x49')](_0x7578('0x4a'),_0x4f5325);return respondWithRpcPromise('Reload',_0x7578('0x1d'),{'module':'res_stun_monitor.so'});}else if(_0x4070cc[_0x7578('0x27')][_0x7578('0x4b')]()==_0x7578('0x4c')){var _0x1709fc=fs['readFileSync'](path[_0x7578('0x44')](config[_0x7578('0x45')],'server/files/templates/turn_multiple.ejs'),_0x7578('0x47'));var _0x52b681=ejs[_0x7578('0x48')](_0x1709fc,{'networks':_0x2d2514||[]});fs[_0x7578('0x49')](_0x7578('0x4e'),_0x52b681);return respondWithRpcPromise(_0x7578('0x4f'),_0x7578('0x1d'),{'module':_0x7578('0x50')});}else{var _0x22090a=fs[_0x7578('0x43')](path[_0x7578('0x44')](config[_0x7578('0x45')],_0x7578('0x51')),_0x7578('0x47'));var _0x2174eb=ejs[_0x7578('0x48')](_0x22090a,{'networks':_0x2d2514||[]});fs['writeFileSync'](util[_0x7578('0x52')](_0x7578('0x53'),_0x53a67f[_0x7578('0x54')]['type'][_0x7578('0x55')]()),_0x2174eb);return respondWithRpcPromise(_0x7578('0x4f'),_0x7578('0x1d'),{'module':_0x7578('0x56')});}})[_0x7578('0xc')](function(_0x513587){if(_0x513587){return _0x4070cc;}return null;})[_0x7578('0xc')](respondWithResult(_0x363a8a,null))[_0x7578('0x3e')](handleError(_0x363a8a,null));};exports[_0x7578('0x1e')]=function(_0x5e6a94,_0x4d71cb){var _0x1b7717;return db[_0x7578('0x24')][_0x7578('0x57')]({'where':{'id':_0x5e6a94[_0x7578('0x40')]['id']}})[_0x7578('0xc')](function(_0x27e788){_0x1b7717=_0x27e788;return _0x27e788;})[_0x7578('0xc')](handleEntityNotFound(_0x4d71cb,null))[_0x7578('0xc')](removeEntity(_0x4d71cb,null))[_0x7578('0xc')](function(){if(_0x1b7717){return db['Network'][_0x7578('0x3c')]({'where':{'type':_0x1b7717['type']},'raw':!![]});}})[_0x7578('0xc')](function(_0x4171b6){if(_0x1b7717[_0x7578('0x27')][_0x7578('0x4b')]()==_0x7578('0x42')){var _0x4bf3f1=fs[_0x7578('0x43')](path[_0x7578('0x44')](config[_0x7578('0x45')],_0x7578('0x46')),_0x7578('0x47'));var _0x593dc6=ejs['render'](_0x4bf3f1,{'networks':_0x4171b6||[]});fs[_0x7578('0x49')](_0x7578('0x4a'),_0x593dc6);return respondWithRpcPromise(_0x7578('0x4f'),_0x7578('0x1e'),{'module':_0x7578('0x50')});}else if(_0x1b7717[_0x7578('0x27')][_0x7578('0x4b')]()==_0x7578('0x4c')){var _0x4d2281=fs['readFileSync'](path['join'](config[_0x7578('0x45')],_0x7578('0x4d')),_0x7578('0x47'));var _0x4ae190=ejs[_0x7578('0x48')](_0x4d2281,{'networks':_0x4171b6||[]});fs['writeFileSync'](_0x7578('0x4e'),_0x4ae190);return respondWithRpcPromise(_0x7578('0x4f'),'destroy',{'module':_0x7578('0x50')});}else{var _0x5f01f9=fs['readFileSync'](path[_0x7578('0x44')](config[_0x7578('0x45')],_0x7578('0x51')),_0x7578('0x47'));var _0x3419fa=ejs[_0x7578('0x48')](_0x5f01f9,{'networks':_0x4171b6||[]});fs[_0x7578('0x49')](util[_0x7578('0x52')](_0x7578('0x53'),_0x1b7717[_0x7578('0x27')]['toLowerCase']()),_0x3419fa);return respondWithRpcPromise(_0x7578('0x4f'),_0x7578('0x1e'),{'module':'chan_sip.so'});}})[_0x7578('0x3e')](handleError(_0x4d71cb,null));};