3b479185ead9e3bf756aa3e63609e916edc40e8b
[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 _0x04b6=['info','Network,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','Network,\x20%s,\x20%s','message','result','catch','offset','limit','undefined','count','status','set','Content-Range','json','then','name','index','map','Network','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','show','rawAttributes','length','find','create','body','toUpperCase','STUN','join','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','res_stun_monitor.so','TURN','readFileSync','root','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','Reload','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','params','update','chan_sip.so','destroy','util','path','ejs','lodash','../../components/parsers/qs','../../config/environment','../../mysqldb','jayson/promise','client','http'];(function(_0x12f2d3,_0x2e0c4c){var _0x131fb8=function(_0x31d48d){while(--_0x31d48d){_0x12f2d3['push'](_0x12f2d3['shift']());}};_0x131fb8(++_0x2e0c4c);}(_0x04b6,0x142));var _0x604b=function(_0x1faaa1,_0x1568dd){_0x1faaa1=_0x1faaa1-0x0;var _0x994ec=_0x04b6[_0x1faaa1];return _0x994ec;};'use strict';var util=require(_0x604b('0x0'));var path=require(_0x604b('0x1'));var ejs=require(_0x604b('0x2'));var fs=require('fs');var _=require(_0x604b('0x3'));var qs=require(_0x604b('0x4'));var logger=require('../../config/logger')('api');var config=require(_0x604b('0x5'));var db=require(_0x604b('0x6'))['db'];var jayson=require(_0x604b('0x7'));var client=jayson[_0x604b('0x8')][_0x604b('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x432e51,_0xeb746e,_0x45067a,_0x170bb9){return new Promise(function(_0x32e85,_0x44faea){var _0x8a41a5=_0x170bb9||client;return _0x8a41a5['request'](_0x432e51,_0x45067a)['then'](function(_0x56e81e){logger[_0x604b('0xa')]('Network,\x20%s,\x20%s',_0xeb746e,'request\x20sent');logger['debug'](_0x604b('0xb'),_0xeb746e,_0x604b('0xc'),JSON[_0x604b('0xd')](_0x56e81e));if(_0x56e81e[_0x604b('0xe')]){if(_0x56e81e[_0x604b('0xe')][_0x604b('0xf')]===0x1f4){logger[_0x604b('0xe')](_0x604b('0x10'),_0xeb746e,_0x56e81e[_0x604b('0xe')]['message']);return _0x44faea(_0x56e81e[_0x604b('0xe')][_0x604b('0x11')]);}logger[_0x604b('0xe')]('Network,\x20%s,\x20%s',_0xeb746e,_0x56e81e[_0x604b('0xe')][_0x604b('0x11')]);return _0x32e85(_0x56e81e[_0x604b('0xe')][_0x604b('0x11')]);}else{logger[_0x604b('0xa')](_0x604b('0x10'),_0xeb746e,'request\x20sent');_0x32e85(_0x56e81e[_0x604b('0x12')][_0x604b('0x11')]);}})[_0x604b('0x13')](function(_0x116b41){logger['error'](_0x604b('0x10'),_0xeb746e,_0x116b41);_0x44faea(_0x116b41);});});}function respondWithResult(_0x6e57e5,_0x30cd80){_0x30cd80=_0x30cd80||0xc8;return function(_0x4d3e8b){if(_0x4d3e8b){return _0x6e57e5['status'](_0x30cd80)['json'](_0x4d3e8b);}};}function respondWithFilteredResult(_0x5d9f44,_0x2d3bfd){return function(_0x5cf031){if(_0x5cf031){var _0xde5278=typeof _0x2d3bfd[_0x604b('0x14')]==='undefined'&&typeof _0x2d3bfd[_0x604b('0x15')]===_0x604b('0x16');var _0x50945e=_0x5cf031[_0x604b('0x17')];var _0x187d0a=_0xde5278?0x0:_0x2d3bfd[_0x604b('0x14')];var _0x31d028=_0xde5278?_0x5cf031[_0x604b('0x17')]:_0x2d3bfd[_0x604b('0x14')]+_0x2d3bfd[_0x604b('0x15')];var _0x1643a6;if(_0x31d028>=_0x50945e){_0x31d028=_0x50945e;_0x1643a6=0xc8;}else{_0x1643a6=0xce;}_0x5d9f44[_0x604b('0x18')](_0x1643a6);return _0x5d9f44[_0x604b('0x19')](_0x604b('0x1a'),_0x187d0a+'-'+_0x31d028+'/'+_0x50945e)[_0x604b('0x1b')](_0x5cf031);}return null;};}function saveUpdates(_0x18d7b5){return function(_0x345280){if(_0x345280){return _0x345280['update'](_0x18d7b5)['then'](function(_0x262bd9){return _0x262bd9;});}return null;};}function removeEntity(_0x589719){return function(_0x214951){if(_0x214951){return _0x214951['destroy']()[_0x604b('0x1c')](function(){_0x589719['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x67f221){return function(_0x1a6434){if(!_0x1a6434){_0x67f221['sendStatus'](0x194);}return _0x1a6434;};}function handleError(_0x3b6958,_0x6e4c39){_0x6e4c39=_0x6e4c39||0x1f4;return function(_0x3344e5){logger[_0x604b('0xe')](_0x3344e5['stack']);if(_0x3344e5[_0x604b('0x1d')]){delete _0x3344e5[_0x604b('0x1d')];}_0x3b6958['status'](_0x6e4c39)['send'](_0x3344e5);};}exports[_0x604b('0x1e')]=function(_0xafa3f6,_0x4c8e9e){var _0x455576={},_0xed62b0={},_0x1cfde7={'count':0x0,'rows':[]};var _0x161400=_[_0x604b('0x1f')](db[_0x604b('0x20')]['rawAttributes'],function(_0x3279e6){return{'name':_0x3279e6[_0x604b('0x21')],'type':_0x3279e6[_0x604b('0x22')][_0x604b('0x23')]};});_0xed62b0[_0x604b('0x24')]=_[_0x604b('0x1f')](_0x161400,_0x604b('0x1d'));_0xed62b0[_0x604b('0x25')]=_['keys'](_0xafa3f6[_0x604b('0x25')]);_0xed62b0[_0x604b('0x26')]=_[_0x604b('0x27')](_0xed62b0[_0x604b('0x24')],_0xed62b0['query']);_0x455576[_0x604b('0x28')]=_['intersection'](_0xed62b0[_0x604b('0x24')],qs[_0x604b('0x29')](_0xafa3f6[_0x604b('0x25')][_0x604b('0x29')]));_0x455576[_0x604b('0x28')]=_0x455576[_0x604b('0x28')]['length']?_0x455576['attributes']:_0xed62b0[_0x604b('0x24')];if(!_0xafa3f6[_0x604b('0x25')][_0x604b('0x2a')]('nolimit')){_0x455576[_0x604b('0x15')]=qs['limit'](_0xafa3f6[_0x604b('0x25')]['limit']);_0x455576[_0x604b('0x14')]=qs[_0x604b('0x14')](_0xafa3f6[_0x604b('0x25')][_0x604b('0x14')]);}_0x455576[_0x604b('0x2b')]=qs['sort'](_0xafa3f6[_0x604b('0x25')][_0x604b('0x2c')]);_0x455576[_0x604b('0x2d')]=qs[_0x604b('0x26')](_[_0x604b('0x2e')](_0xafa3f6[_0x604b('0x25')],_0xed62b0[_0x604b('0x26')]),_0x161400);if(_0xafa3f6['query']['filter']){_0x455576['where']=_[_0x604b('0x2f')](_0x455576[_0x604b('0x2d')],{'$or':_[_0x604b('0x1f')](_0x161400,function(_0x300abe){if(_0x300abe[_0x604b('0x22')]!==_0x604b('0x30')){var _0x507613={};_0x507613[_0x300abe[_0x604b('0x1d')]]={'$like':'%'+_0xafa3f6[_0x604b('0x25')][_0x604b('0x31')]+'%'};return _0x507613;}})});}_0x455576=_['merge']({},_0x455576,_0xafa3f6[_0x604b('0x32')]);var _0x588a3e={'where':_0x455576['where']};return db[_0x604b('0x20')][_0x604b('0x17')](_0x588a3e)[_0x604b('0x1c')](function(_0x3e2abe){_0x1cfde7[_0x604b('0x17')]=_0x3e2abe;if(_0xafa3f6['query'][_0x604b('0x33')]){_0x455576[_0x604b('0x34')]=[{'all':!![]}];}return db[_0x604b('0x20')][_0x604b('0x35')](_0x455576);})[_0x604b('0x1c')](function(_0x4b5922){_0x1cfde7['rows']=_0x4b5922;return _0x1cfde7;})[_0x604b('0x1c')](respondWithFilteredResult(_0x4c8e9e,_0x455576))['catch'](handleError(_0x4c8e9e,null));};exports[_0x604b('0x36')]=function(_0x4c0aa5,_0x5533bb){var _0x143fca={'raw':!![],'where':{'id':_0x4c0aa5['params']['id']}},_0x350195={};_0x350195[_0x604b('0x24')]=_['keys'](db[_0x604b('0x20')][_0x604b('0x37')]);_0x350195['query']=_['keys'](_0x4c0aa5[_0x604b('0x25')]);_0x350195[_0x604b('0x26')]=_[_0x604b('0x27')](_0x350195['model'],_0x350195[_0x604b('0x25')]);_0x143fca[_0x604b('0x28')]=_['intersection'](_0x350195['model'],qs[_0x604b('0x29')](_0x4c0aa5[_0x604b('0x25')][_0x604b('0x29')]));_0x143fca[_0x604b('0x28')]=_0x143fca['attributes'][_0x604b('0x38')]?_0x143fca[_0x604b('0x28')]:_0x350195[_0x604b('0x24')];if(_0x4c0aa5[_0x604b('0x25')][_0x604b('0x33')]){_0x143fca[_0x604b('0x34')]=[{'all':!![]}];}_0x143fca=_[_0x604b('0x2f')]({},_0x143fca,_0x4c0aa5[_0x604b('0x32')]);return db['Network'][_0x604b('0x39')](_0x143fca)[_0x604b('0x1c')](handleEntityNotFound(_0x5533bb,null))[_0x604b('0x1c')](respondWithResult(_0x5533bb,null))[_0x604b('0x13')](handleError(_0x5533bb,null));};exports[_0x604b('0x3a')]=function(_0x508ecb,_0xa45877){var _0x253905;return db['Network'][_0x604b('0x3a')](_0x508ecb[_0x604b('0x3b')],{'raw':!![]})[_0x604b('0x1c')](function(_0x41041c){_0x253905=_0x41041c;return db[_0x604b('0x20')][_0x604b('0x35')]({'where':{'type':_0x508ecb[_0x604b('0x3b')][_0x604b('0x22')]},'raw':!![]});})['then'](function(_0x179f1f){if(_0x253905[_0x604b('0x22')][_0x604b('0x3c')]()==_0x604b('0x3d')){var _0xae2823=fs['readFileSync'](path[_0x604b('0x3e')](config['root'],_0x604b('0x3f')),_0x604b('0x40'));var _0x53c544=ejs[_0x604b('0x41')](_0xae2823,{'networks':_0x179f1f||[]});fs[_0x604b('0x42')](_0x604b('0x43'),_0x53c544);return respondWithRpcPromise('Reload',_0x604b('0x3a'),{'module':_0x604b('0x44')});}else if(_0x253905[_0x604b('0x22')][_0x604b('0x3c')]()==_0x604b('0x45')){var _0x1a6739=fs[_0x604b('0x46')](path[_0x604b('0x3e')](config[_0x604b('0x47')],_0x604b('0x48')),_0x604b('0x40'));var _0x2275d3=ejs['render'](_0x1a6739,{'networks':_0x179f1f||[]});fs[_0x604b('0x42')](_0x604b('0x49'),_0x2275d3);return respondWithRpcPromise(_0x604b('0x4a'),_0x604b('0x3a'),{'module':_0x604b('0x44')});}else{var _0x1c6fc=fs[_0x604b('0x46')](path['join'](config[_0x604b('0x47')],_0x604b('0x4b')),_0x604b('0x40'));var _0x484618=ejs[_0x604b('0x41')](_0x1c6fc,{'networks':_0x179f1f||[]});fs[_0x604b('0x42')](util[_0x604b('0x4c')](_0x604b('0x4d'),_0x508ecb[_0x604b('0x3b')][_0x604b('0x22')][_0x604b('0x4e')]()),_0x484618);return respondWithRpcPromise(_0x604b('0x4a'),_0x604b('0x3a'),{'module':'chan_sip.so'});}})[_0x604b('0x1c')](function(){return _0x253905;})[_0x604b('0x1c')](respondWithResult(_0xa45877,0xc9))[_0x604b('0x13')](handleError(_0xa45877,null));};exports['update']=function(_0x2eaa4d,_0x5c0092){var _0x3d2964;return db[_0x604b('0x20')]['find']({'where':{'id':_0x2eaa4d[_0x604b('0x4f')]['id']}})[_0x604b('0x1c')](handleEntityNotFound(_0x5c0092,null))[_0x604b('0x1c')](saveUpdates(_0x2eaa4d[_0x604b('0x3b')],null))[_0x604b('0x1c')](function(_0x412db9){if(_0x412db9){_0x3d2964=_0x412db9;return db['Network'][_0x604b('0x35')]({'where':{'type':_0x3d2964[_0x604b('0x22')]},'raw':!![]});}return null;})[_0x604b('0x1c')](function(_0x2858e3){if(_0x3d2964['type'][_0x604b('0x3c')]()==_0x604b('0x3d')){var _0x1dda3d=fs[_0x604b('0x46')](path['join'](config[_0x604b('0x47')],_0x604b('0x3f')),'utf8');var _0xddc2c0=ejs[_0x604b('0x41')](_0x1dda3d,{'networks':_0x2858e3||[]});fs[_0x604b('0x42')](_0x604b('0x43'),_0xddc2c0);return respondWithRpcPromise('Reload',_0x604b('0x50'),{'module':_0x604b('0x44')});}else if(_0x3d2964[_0x604b('0x22')][_0x604b('0x3c')]()==_0x604b('0x45')){var _0x48bcee=fs[_0x604b('0x46')](path['join'](config['root'],_0x604b('0x48')),_0x604b('0x40'));var _0x47f370=ejs[_0x604b('0x41')](_0x48bcee,{'networks':_0x2858e3||[]});fs[_0x604b('0x42')](_0x604b('0x49'),_0x47f370);return respondWithRpcPromise('Reload',_0x604b('0x50'),{'module':'res_stun_monitor.so'});}else{var _0x1ce415=fs['readFileSync'](path[_0x604b('0x3e')](config['root'],_0x604b('0x4b')),_0x604b('0x40'));var _0x14376e=ejs[_0x604b('0x41')](_0x1ce415,{'networks':_0x2858e3||[]});fs[_0x604b('0x42')](util[_0x604b('0x4c')](_0x604b('0x4d'),_0x2eaa4d[_0x604b('0x3b')][_0x604b('0x22')]['toLowerCase']()),_0x14376e);return respondWithRpcPromise(_0x604b('0x4a'),'update',{'module':_0x604b('0x51')});}})[_0x604b('0x1c')](function(_0x27ef57){if(_0x27ef57){return _0x3d2964;}return null;})[_0x604b('0x1c')](respondWithResult(_0x5c0092,null))[_0x604b('0x13')](handleError(_0x5c0092,null));};exports[_0x604b('0x52')]=function(_0x7ce065,_0x5dbcb5){var _0x58f57d;return db[_0x604b('0x20')][_0x604b('0x39')]({'where':{'id':_0x7ce065[_0x604b('0x4f')]['id']}})[_0x604b('0x1c')](function(_0x10dde1){_0x58f57d=_0x10dde1;return _0x10dde1;})[_0x604b('0x1c')](handleEntityNotFound(_0x5dbcb5,null))['then'](removeEntity(_0x5dbcb5,null))[_0x604b('0x1c')](function(){if(_0x58f57d){return db['Network'][_0x604b('0x35')]({'where':{'type':_0x58f57d[_0x604b('0x22')]},'raw':!![]});}})[_0x604b('0x1c')](function(_0x1c5c4a){if(_0x58f57d[_0x604b('0x22')][_0x604b('0x3c')]()==_0x604b('0x3d')){var _0x545bfe=fs['readFileSync'](path['join'](config[_0x604b('0x47')],_0x604b('0x3f')),'utf8');var _0xa205c=ejs['render'](_0x545bfe,{'networks':_0x1c5c4a||[]});fs['writeFileSync'](_0x604b('0x43'),_0xa205c);return respondWithRpcPromise(_0x604b('0x4a'),'destroy',{'module':'res_stun_monitor.so'});}else if(_0x58f57d[_0x604b('0x22')][_0x604b('0x3c')]()==_0x604b('0x45')){var _0x421d1f=fs[_0x604b('0x46')](path[_0x604b('0x3e')](config[_0x604b('0x47')],_0x604b('0x48')),_0x604b('0x40'));var _0x5416e5=ejs['render'](_0x421d1f,{'networks':_0x1c5c4a||[]});fs[_0x604b('0x42')](_0x604b('0x49'),_0x5416e5);return respondWithRpcPromise('Reload',_0x604b('0x52'),{'module':_0x604b('0x44')});}else{var _0x23927a=fs['readFileSync'](path[_0x604b('0x3e')](config[_0x604b('0x47')],_0x604b('0x4b')),'utf8');var _0x4ec628=ejs['render'](_0x23927a,{'networks':_0x1c5c4a||[]});fs[_0x604b('0x42')](util[_0x604b('0x4c')](_0x604b('0x4d'),_0x58f57d[_0x604b('0x22')][_0x604b('0x4e')]()),_0x4ec628);return respondWithRpcPromise(_0x604b('0x4a'),'destroy',{'module':_0x604b('0x51')});}})['catch'](handleError(_0x5dbcb5,null));};