Built motion from commit 9d0783e6.|2.6.13
[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 _0x8fba=['server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','join','server/files/templates/network.ejs','utf8','toLowerCase','TURN','/etc/asterisk/sip_xcally_%s.conf','chan_sip.so','format','path','lodash','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','jayson/promise','http','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','status','json','offset','limit','undefined','count','set','Content-Range','update','destroy','sendStatus','stack','send','index','map','rawAttributes','fieldName','type','key','model','name','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','Network','rows','show','params','find','create','body','findAll','toUpperCase','STUN','readFileSync','root','server/files/templates/stun_multiple.ejs','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so'];(function(_0x374461,_0x3878fd){var _0x59b63c=function(_0x44b90d){while(--_0x44b90d){_0x374461['push'](_0x374461['shift']());}};_0x59b63c(++_0x3878fd);}(_0x8fba,0xb6));var _0xa8fb=function(_0x582a1d,_0x1d0b86){_0x582a1d=_0x582a1d-0x0;var _0x3b03e1=_0x8fba[_0x582a1d];return _0x3b03e1;};'use strict';var util=require('util');var path=require(_0xa8fb('0x0'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xa8fb('0x1'));var qs=require(_0xa8fb('0x2'));var logger=require(_0xa8fb('0x3'))('api');var config=require(_0xa8fb('0x4'));var db=require(_0xa8fb('0x5'))['db'];var jayson=require(_0xa8fb('0x6'));var client=jayson['client'][_0xa8fb('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x2ecbba,_0x5ea98d,_0x1b645c,_0x396474){return new Promise(function(_0x2eb6c4,_0x2b853b){var _0x244835=_0x396474||client;return _0x244835['request'](_0x2ecbba,_0x1b645c)[_0xa8fb('0x8')](function(_0x3b8c58){logger[_0xa8fb('0x9')](_0xa8fb('0xa'),_0x5ea98d,_0xa8fb('0xb'));logger[_0xa8fb('0xc')]('Network,\x20%s,\x20%s,\x20%s',_0x5ea98d,_0xa8fb('0xb'),JSON[_0xa8fb('0xd')](_0x3b8c58));if(_0x3b8c58[_0xa8fb('0xe')]){if(_0x3b8c58[_0xa8fb('0xe')][_0xa8fb('0xf')]===0x1f4){logger[_0xa8fb('0xe')](_0xa8fb('0xa'),_0x5ea98d,_0x3b8c58[_0xa8fb('0xe')][_0xa8fb('0x10')]);return _0x2b853b(_0x3b8c58[_0xa8fb('0xe')][_0xa8fb('0x10')]);}logger[_0xa8fb('0xe')]('Network,\x20%s,\x20%s',_0x5ea98d,_0x3b8c58[_0xa8fb('0xe')][_0xa8fb('0x10')]);return _0x2eb6c4(_0x3b8c58[_0xa8fb('0xe')]['message']);}else{logger[_0xa8fb('0x9')](_0xa8fb('0xa'),_0x5ea98d,'request\x20sent');_0x2eb6c4(_0x3b8c58[_0xa8fb('0x11')][_0xa8fb('0x10')]);}})[_0xa8fb('0x12')](function(_0x249760){logger[_0xa8fb('0xe')](_0xa8fb('0xa'),_0x5ea98d,_0x249760);_0x2b853b(_0x249760);});});}function respondWithResult(_0x5802e9,_0x23068f){_0x23068f=_0x23068f||0xc8;return function(_0x137975){if(_0x137975){return _0x5802e9[_0xa8fb('0x13')](_0x23068f)[_0xa8fb('0x14')](_0x137975);}};}function respondWithFilteredResult(_0x36a175,_0x51cbc0){return function(_0x7e4a46){if(_0x7e4a46){var _0x1be848=typeof _0x51cbc0[_0xa8fb('0x15')]==='undefined'&&typeof _0x51cbc0[_0xa8fb('0x16')]===_0xa8fb('0x17');var _0x4e33a3=_0x7e4a46[_0xa8fb('0x18')];var _0x2e446a=_0x1be848?0x0:_0x51cbc0[_0xa8fb('0x15')];var _0x402149=_0x1be848?_0x7e4a46[_0xa8fb('0x18')]:_0x51cbc0['offset']+_0x51cbc0[_0xa8fb('0x16')];var _0xb3bb6e;if(_0x402149>=_0x4e33a3){_0x402149=_0x4e33a3;_0xb3bb6e=0xc8;}else{_0xb3bb6e=0xce;}_0x36a175[_0xa8fb('0x13')](_0xb3bb6e);return _0x36a175[_0xa8fb('0x19')](_0xa8fb('0x1a'),_0x2e446a+'-'+_0x402149+'/'+_0x4e33a3)[_0xa8fb('0x14')](_0x7e4a46);}return null;};}function saveUpdates(_0x43e936){return function(_0x2d9a83){if(_0x2d9a83){return _0x2d9a83[_0xa8fb('0x1b')](_0x43e936)[_0xa8fb('0x8')](function(_0x5cacbe){return _0x5cacbe;});}return null;};}function removeEntity(_0x1d6b91){return function(_0x245ade){if(_0x245ade){return _0x245ade[_0xa8fb('0x1c')]()[_0xa8fb('0x8')](function(){_0x1d6b91[_0xa8fb('0x13')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1ff798){return function(_0x5cb961){if(!_0x5cb961){_0x1ff798[_0xa8fb('0x1d')](0x194);}return _0x5cb961;};}function handleError(_0x44bdc4,_0x23a4a9){_0x23a4a9=_0x23a4a9||0x1f4;return function(_0x339b08){logger[_0xa8fb('0xe')](_0x339b08[_0xa8fb('0x1e')]);if(_0x339b08['name']){delete _0x339b08['name'];}_0x44bdc4[_0xa8fb('0x13')](_0x23a4a9)[_0xa8fb('0x1f')](_0x339b08);};}exports[_0xa8fb('0x20')]=function(_0x3b4a84,_0x36f014){var _0x396a51={},_0x41fbcb={},_0xb19b44={'count':0x0,'rows':[]};var _0x52d032=_[_0xa8fb('0x21')](db['Network'][_0xa8fb('0x22')],function(_0x5605c1){return{'name':_0x5605c1[_0xa8fb('0x23')],'type':_0x5605c1[_0xa8fb('0x24')][_0xa8fb('0x25')]};});_0x41fbcb[_0xa8fb('0x26')]=_[_0xa8fb('0x21')](_0x52d032,_0xa8fb('0x27'));_0x41fbcb[_0xa8fb('0x28')]=_[_0xa8fb('0x29')](_0x3b4a84['query']);_0x41fbcb[_0xa8fb('0x2a')]=_[_0xa8fb('0x2b')](_0x41fbcb[_0xa8fb('0x26')],_0x41fbcb[_0xa8fb('0x28')]);_0x396a51[_0xa8fb('0x2c')]=_['intersection'](_0x41fbcb['model'],qs[_0xa8fb('0x2d')](_0x3b4a84['query'][_0xa8fb('0x2d')]));_0x396a51[_0xa8fb('0x2c')]=_0x396a51[_0xa8fb('0x2c')][_0xa8fb('0x2e')]?_0x396a51['attributes']:_0x41fbcb['model'];if(!_0x3b4a84[_0xa8fb('0x28')][_0xa8fb('0x2f')](_0xa8fb('0x30'))){_0x396a51[_0xa8fb('0x16')]=qs['limit'](_0x3b4a84[_0xa8fb('0x28')][_0xa8fb('0x16')]);_0x396a51[_0xa8fb('0x15')]=qs['offset'](_0x3b4a84['query'][_0xa8fb('0x15')]);}_0x396a51[_0xa8fb('0x31')]=qs['sort'](_0x3b4a84[_0xa8fb('0x28')][_0xa8fb('0x32')]);_0x396a51[_0xa8fb('0x33')]=qs[_0xa8fb('0x2a')](_[_0xa8fb('0x34')](_0x3b4a84[_0xa8fb('0x28')],_0x41fbcb['filters']),_0x52d032);if(_0x3b4a84[_0xa8fb('0x28')]['filter']){_0x396a51['where']=_['merge'](_0x396a51[_0xa8fb('0x33')],{'$or':_[_0xa8fb('0x21')](_0x52d032,function(_0x53a5e9){if(_0x53a5e9[_0xa8fb('0x24')]!=='VIRTUAL'){var _0x100ae5={};_0x100ae5[_0x53a5e9[_0xa8fb('0x27')]]={'$like':'%'+_0x3b4a84[_0xa8fb('0x28')][_0xa8fb('0x35')]+'%'};return _0x100ae5;}})});}_0x396a51=_[_0xa8fb('0x36')]({},_0x396a51,_0x3b4a84[_0xa8fb('0x37')]);var _0x21d6b1={'where':_0x396a51[_0xa8fb('0x33')]};return db['Network']['count'](_0x21d6b1)[_0xa8fb('0x8')](function(_0x14292c){_0xb19b44['count']=_0x14292c;if(_0x3b4a84[_0xa8fb('0x28')][_0xa8fb('0x38')]){_0x396a51[_0xa8fb('0x39')]=[{'all':!![]}];}return db[_0xa8fb('0x3a')]['findAll'](_0x396a51);})[_0xa8fb('0x8')](function(_0x1a22fc){_0xb19b44[_0xa8fb('0x3b')]=_0x1a22fc;return _0xb19b44;})['then'](respondWithFilteredResult(_0x36f014,_0x396a51))[_0xa8fb('0x12')](handleError(_0x36f014,null));};exports[_0xa8fb('0x3c')]=function(_0x4ca893,_0x372126){var _0xa4c7b9={'raw':!![],'where':{'id':_0x4ca893[_0xa8fb('0x3d')]['id']}},_0x301c3a={};_0x301c3a['model']=_[_0xa8fb('0x29')](db[_0xa8fb('0x3a')][_0xa8fb('0x22')]);_0x301c3a[_0xa8fb('0x28')]=_['keys'](_0x4ca893[_0xa8fb('0x28')]);_0x301c3a[_0xa8fb('0x2a')]=_[_0xa8fb('0x2b')](_0x301c3a['model'],_0x301c3a['query']);_0xa4c7b9[_0xa8fb('0x2c')]=_['intersection'](_0x301c3a[_0xa8fb('0x26')],qs[_0xa8fb('0x2d')](_0x4ca893[_0xa8fb('0x28')][_0xa8fb('0x2d')]));_0xa4c7b9[_0xa8fb('0x2c')]=_0xa4c7b9[_0xa8fb('0x2c')][_0xa8fb('0x2e')]?_0xa4c7b9[_0xa8fb('0x2c')]:_0x301c3a['model'];if(_0x4ca893[_0xa8fb('0x28')][_0xa8fb('0x38')]){_0xa4c7b9[_0xa8fb('0x39')]=[{'all':!![]}];}_0xa4c7b9=_['merge']({},_0xa4c7b9,_0x4ca893['options']);return db[_0xa8fb('0x3a')][_0xa8fb('0x3e')](_0xa4c7b9)[_0xa8fb('0x8')](handleEntityNotFound(_0x372126,null))[_0xa8fb('0x8')](respondWithResult(_0x372126,null))[_0xa8fb('0x12')](handleError(_0x372126,null));};exports[_0xa8fb('0x3f')]=function(_0x20a21b,_0x59ad97){var _0x45b9b7;return db['Network'][_0xa8fb('0x3f')](_0x20a21b[_0xa8fb('0x40')],{'raw':!![]})[_0xa8fb('0x8')](function(_0x334b9e){_0x45b9b7=_0x334b9e;return db['Network'][_0xa8fb('0x41')]({'where':{'type':_0x20a21b[_0xa8fb('0x40')]['type']},'raw':!![]});})['then'](function(_0x19da13){if(_0x45b9b7['type'][_0xa8fb('0x42')]()==_0xa8fb('0x43')){var _0x533900=fs[_0xa8fb('0x44')](path['join'](config[_0xa8fb('0x45')],_0xa8fb('0x46')),'utf8');var _0x55f733=ejs[_0xa8fb('0x47')](_0x533900,{'networks':_0x19da13||[]});fs[_0xa8fb('0x48')](_0xa8fb('0x49'),_0x55f733);return respondWithRpcPromise(_0xa8fb('0x4a'),_0xa8fb('0x3f'),{'module':_0xa8fb('0x4b')});}else if(_0x45b9b7[_0xa8fb('0x24')]['toUpperCase']()=='TURN'){var _0x38aef1=fs[_0xa8fb('0x44')](path['join'](config[_0xa8fb('0x45')],_0xa8fb('0x4c')),'utf8');var _0x5f545e=ejs['render'](_0x38aef1,{'networks':_0x19da13||[]});fs[_0xa8fb('0x48')](_0xa8fb('0x4d'),_0x5f545e);return respondWithRpcPromise(_0xa8fb('0x4a'),_0xa8fb('0x3f'),{'module':_0xa8fb('0x4b')});}else{var _0xb2098b=fs[_0xa8fb('0x44')](path[_0xa8fb('0x4e')](config['root'],_0xa8fb('0x4f')),_0xa8fb('0x50'));var _0x26f048=ejs[_0xa8fb('0x47')](_0xb2098b,{'networks':_0x19da13||[]});fs[_0xa8fb('0x48')](util['format']('/etc/asterisk/sip_xcally_%s.conf',_0x20a21b[_0xa8fb('0x40')][_0xa8fb('0x24')][_0xa8fb('0x51')]()),_0x26f048);return respondWithRpcPromise(_0xa8fb('0x4a'),_0xa8fb('0x3f'),{'module':'chan_sip.so'});}})['then'](function(){return _0x45b9b7;})[_0xa8fb('0x8')](respondWithResult(_0x59ad97,0xc9))[_0xa8fb('0x12')](handleError(_0x59ad97,null));};exports['update']=function(_0x2a676b,_0x6cbb11){var _0x5e7f65;return db['Network'][_0xa8fb('0x3e')]({'where':{'id':_0x2a676b[_0xa8fb('0x3d')]['id']}})['then'](handleEntityNotFound(_0x6cbb11,null))['then'](saveUpdates(_0x2a676b[_0xa8fb('0x40')],null))[_0xa8fb('0x8')](function(_0x1bc6a6){if(_0x1bc6a6){_0x5e7f65=_0x1bc6a6;return db[_0xa8fb('0x3a')][_0xa8fb('0x41')]({'where':{'type':_0x5e7f65[_0xa8fb('0x24')]},'raw':!![]});}return null;})['then'](function(_0x277838){if(_0x5e7f65[_0xa8fb('0x24')][_0xa8fb('0x42')]()=='STUN'){var _0x289033=fs[_0xa8fb('0x44')](path['join'](config[_0xa8fb('0x45')],'server/files/templates/stun_multiple.ejs'),_0xa8fb('0x50'));var _0x2ecbd9=ejs[_0xa8fb('0x47')](_0x289033,{'networks':_0x277838||[]});fs[_0xa8fb('0x48')](_0xa8fb('0x49'),_0x2ecbd9);return respondWithRpcPromise(_0xa8fb('0x4a'),_0xa8fb('0x1b'),{'module':_0xa8fb('0x4b')});}else if(_0x5e7f65['type'][_0xa8fb('0x42')]()==_0xa8fb('0x52')){var _0x5c917b=fs[_0xa8fb('0x44')](path['join'](config[_0xa8fb('0x45')],_0xa8fb('0x4c')),_0xa8fb('0x50'));var _0x15fbef=ejs[_0xa8fb('0x47')](_0x5c917b,{'networks':_0x277838||[]});fs['writeFileSync'](_0xa8fb('0x4d'),_0x15fbef);return respondWithRpcPromise(_0xa8fb('0x4a'),_0xa8fb('0x1b'),{'module':_0xa8fb('0x4b')});}else{var _0x5caa30=fs[_0xa8fb('0x44')](path[_0xa8fb('0x4e')](config[_0xa8fb('0x45')],_0xa8fb('0x4f')),_0xa8fb('0x50'));var _0x3864af=ejs[_0xa8fb('0x47')](_0x5caa30,{'networks':_0x277838||[]});fs['writeFileSync'](util['format'](_0xa8fb('0x53'),_0x2a676b[_0xa8fb('0x40')]['type'][_0xa8fb('0x51')]()),_0x3864af);return respondWithRpcPromise('Reload','update',{'module':_0xa8fb('0x54')});}})[_0xa8fb('0x8')](function(_0x306f7e){if(_0x306f7e){return _0x5e7f65;}return null;})[_0xa8fb('0x8')](respondWithResult(_0x6cbb11,null))[_0xa8fb('0x12')](handleError(_0x6cbb11,null));};exports[_0xa8fb('0x1c')]=function(_0x42081e,_0x36733b){var _0x4a1731;return db[_0xa8fb('0x3a')][_0xa8fb('0x3e')]({'where':{'id':_0x42081e[_0xa8fb('0x3d')]['id']}})[_0xa8fb('0x8')](function(_0xf4ec9b){_0x4a1731=_0xf4ec9b;return _0xf4ec9b;})[_0xa8fb('0x8')](handleEntityNotFound(_0x36733b,null))[_0xa8fb('0x8')](removeEntity(_0x36733b,null))[_0xa8fb('0x8')](function(){if(_0x4a1731){return db[_0xa8fb('0x3a')][_0xa8fb('0x41')]({'where':{'type':_0x4a1731['type']},'raw':!![]});}})[_0xa8fb('0x8')](function(_0x18d55f){if(_0x4a1731[_0xa8fb('0x24')][_0xa8fb('0x42')]()==_0xa8fb('0x43')){var _0x14a01f=fs[_0xa8fb('0x44')](path[_0xa8fb('0x4e')](config[_0xa8fb('0x45')],'server/files/templates/stun_multiple.ejs'),_0xa8fb('0x50'));var _0x4d8fcb=ejs['render'](_0x14a01f,{'networks':_0x18d55f||[]});fs['writeFileSync'](_0xa8fb('0x49'),_0x4d8fcb);return respondWithRpcPromise(_0xa8fb('0x4a'),_0xa8fb('0x1c'),{'module':'res_stun_monitor.so'});}else if(_0x4a1731[_0xa8fb('0x24')][_0xa8fb('0x42')]()==_0xa8fb('0x52')){var _0x43eb2d=fs[_0xa8fb('0x44')](path[_0xa8fb('0x4e')](config[_0xa8fb('0x45')],_0xa8fb('0x4c')),'utf8');var _0x38a92f=ejs[_0xa8fb('0x47')](_0x43eb2d,{'networks':_0x18d55f||[]});fs[_0xa8fb('0x48')](_0xa8fb('0x4d'),_0x38a92f);return respondWithRpcPromise(_0xa8fb('0x4a'),_0xa8fb('0x1c'),{'module':_0xa8fb('0x4b')});}else{var _0x5ba7df=fs[_0xa8fb('0x44')](path[_0xa8fb('0x4e')](config['root'],'server/files/templates/network.ejs'),'utf8');var _0x459d17=ejs[_0xa8fb('0x47')](_0x5ba7df,{'networks':_0x18d55f||[]});fs['writeFileSync'](util[_0xa8fb('0x55')](_0xa8fb('0x53'),_0x4a1731[_0xa8fb('0x24')][_0xa8fb('0x51')]()),_0x459d17);return respondWithRpcPromise(_0xa8fb('0x4a'),_0xa8fb('0x1c'),{'module':'chan_sip.so'});}})['catch'](handleError(_0x36733b,null));};