b36975ce48661831273b111513b670f605d16c2b
[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 _0xae6e=['api','../../mysqldb','jayson/promise','client','request','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','code','error','message','json','offset','undefined','limit','count','status','set','Content-Range','then','destroy','end','sendStatus','stack','name','send','index','map','Network','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','VIRTUAL','filter','options','findAll','rows','includeAll','include','merge','find','catch','create','body','type','toUpperCase','STUN','join','root','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','TURN','readFileSync','/etc/asterisk/turn_xcally.conf','res_stun_monitor.so','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','params','server/files/templates/stun_multiple.ejs','server/files/templates/turn_multiple.ejs','update','util','path','ejs','lodash','../../config/logger'];(function(_0x4f0add,_0x583904){var _0x6a96c1=function(_0x49b09e){while(--_0x49b09e){_0x4f0add['push'](_0x4f0add['shift']());}};_0x6a96c1(++_0x583904);}(_0xae6e,0x103));var _0xeae6=function(_0x37e3eb,_0x264cd3){_0x37e3eb=_0x37e3eb-0x0;var _0x477028=_0xae6e[_0x37e3eb];return _0x477028;};'use strict';var util=require(_0xeae6('0x0'));var path=require(_0xeae6('0x1'));var ejs=require(_0xeae6('0x2'));var fs=require('fs');var _=require(_0xeae6('0x3'));var qs=require('../../components/parsers/qs');var logger=require(_0xeae6('0x4'))(_0xeae6('0x5'));var config=require('../../config/environment');var db=require(_0xeae6('0x6'))['db'];var jayson=require(_0xeae6('0x7'));var client=jayson[_0xeae6('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x7b9629,_0x2deeb5,_0x1ec8d5,_0x6bb8a9){return new Promise(function(_0x2fe3a9,_0x337e84){var _0x251813=_0x6bb8a9||client;return _0x251813[_0xeae6('0x9')](_0x7b9629,_0x1ec8d5)['then'](function(_0x1badee){logger[_0xeae6('0xa')](_0xeae6('0xb'),_0x2deeb5,_0xeae6('0xc'));logger[_0xeae6('0xd')](_0xeae6('0xe'),_0x2deeb5,_0xeae6('0xc'),JSON[_0xeae6('0xf')](_0x1badee));if(_0x1badee['error']){if(_0x1badee['error'][_0xeae6('0x10')]===0x1f4){logger[_0xeae6('0x11')]('Network,\x20%s,\x20%s',_0x2deeb5,_0x1badee[_0xeae6('0x11')][_0xeae6('0x12')]);return _0x337e84(_0x1badee['error'][_0xeae6('0x12')]);}logger[_0xeae6('0x11')](_0xeae6('0xb'),_0x2deeb5,_0x1badee['error'][_0xeae6('0x12')]);return _0x2fe3a9(_0x1badee[_0xeae6('0x11')]['message']);}else{logger['info'](_0xeae6('0xb'),_0x2deeb5,_0xeae6('0xc'));_0x2fe3a9(_0x1badee['result'][_0xeae6('0x12')]);}})['catch'](function(_0x38e7ea){logger[_0xeae6('0x11')]('Network,\x20%s,\x20%s',_0x2deeb5,_0x38e7ea);_0x337e84(_0x38e7ea);});});}function respondWithResult(_0x160483,_0x536a5c){_0x536a5c=_0x536a5c||0xc8;return function(_0xb75eae){if(_0xb75eae){return _0x160483['status'](_0x536a5c)[_0xeae6('0x13')](_0xb75eae);}};}function respondWithFilteredResult(_0x72a874,_0x4c7a75){return function(_0x4f1285){if(_0x4f1285){var _0x4805b1=typeof _0x4c7a75[_0xeae6('0x14')]===_0xeae6('0x15')&&typeof _0x4c7a75[_0xeae6('0x16')]==='undefined';var _0x19e41c=_0x4f1285['count'];var _0x35c516=_0x4805b1?0x0:_0x4c7a75[_0xeae6('0x14')];var _0x5558cc=_0x4805b1?_0x4f1285[_0xeae6('0x17')]:_0x4c7a75[_0xeae6('0x14')]+_0x4c7a75[_0xeae6('0x16')];var _0x56b85f;if(_0x5558cc>=_0x19e41c){_0x5558cc=_0x19e41c;_0x56b85f=0xc8;}else{_0x56b85f=0xce;}_0x72a874[_0xeae6('0x18')](_0x56b85f);return _0x72a874[_0xeae6('0x19')](_0xeae6('0x1a'),_0x35c516+'-'+_0x5558cc+'/'+_0x19e41c)[_0xeae6('0x13')](_0x4f1285);}return null;};}function saveUpdates(_0x379f14){return function(_0x1a1f21){if(_0x1a1f21){return _0x1a1f21['update'](_0x379f14)[_0xeae6('0x1b')](function(_0x19fe7c){return _0x19fe7c;});}return null;};}function removeEntity(_0x409296){return function(_0x138d91){if(_0x138d91){return _0x138d91[_0xeae6('0x1c')]()[_0xeae6('0x1b')](function(){_0x409296[_0xeae6('0x18')](0xcc)[_0xeae6('0x1d')]();});}};}function handleEntityNotFound(_0x32b4c2){return function(_0x16863c){if(!_0x16863c){_0x32b4c2[_0xeae6('0x1e')](0x194);}return _0x16863c;};}function handleError(_0x3581d6,_0x14cbcb){_0x14cbcb=_0x14cbcb||0x1f4;return function(_0x46fb79){logger[_0xeae6('0x11')](_0x46fb79[_0xeae6('0x1f')]);if(_0x46fb79['name']){delete _0x46fb79[_0xeae6('0x20')];}_0x3581d6[_0xeae6('0x18')](_0x14cbcb)[_0xeae6('0x21')](_0x46fb79);};}exports[_0xeae6('0x22')]=function(_0x48a507,_0x57ae4e){var _0x4215c6={},_0x75ccd7={},_0x10c812={'count':0x0,'rows':[]};var _0x2652d4=_[_0xeae6('0x23')](db[_0xeae6('0x24')][_0xeae6('0x25')],function(_0x4c6807){return{'name':_0x4c6807[_0xeae6('0x26')],'type':_0x4c6807['type'][_0xeae6('0x27')]};});_0x75ccd7[_0xeae6('0x28')]=_[_0xeae6('0x23')](_0x2652d4,'name');_0x75ccd7['query']=_[_0xeae6('0x29')](_0x48a507[_0xeae6('0x2a')]);_0x75ccd7[_0xeae6('0x2b')]=_[_0xeae6('0x2c')](_0x75ccd7[_0xeae6('0x28')],_0x75ccd7[_0xeae6('0x2a')]);_0x4215c6[_0xeae6('0x2d')]=_[_0xeae6('0x2c')](_0x75ccd7['model'],qs[_0xeae6('0x2e')](_0x48a507['query'][_0xeae6('0x2e')]));_0x4215c6[_0xeae6('0x2d')]=_0x4215c6[_0xeae6('0x2d')][_0xeae6('0x2f')]?_0x4215c6['attributes']:_0x75ccd7['model'];if(!_0x48a507[_0xeae6('0x2a')][_0xeae6('0x30')](_0xeae6('0x31'))){_0x4215c6['limit']=qs[_0xeae6('0x16')](_0x48a507['query'][_0xeae6('0x16')]);_0x4215c6[_0xeae6('0x14')]=qs[_0xeae6('0x14')](_0x48a507[_0xeae6('0x2a')]['offset']);}_0x4215c6['order']=qs[_0xeae6('0x32')](_0x48a507[_0xeae6('0x2a')][_0xeae6('0x32')]);_0x4215c6[_0xeae6('0x33')]=qs[_0xeae6('0x2b')](_[_0xeae6('0x34')](_0x48a507[_0xeae6('0x2a')],_0x75ccd7[_0xeae6('0x2b')]),_0x2652d4);if(_0x48a507[_0xeae6('0x2a')]['filter']){_0x4215c6[_0xeae6('0x33')]=_['merge'](_0x4215c6[_0xeae6('0x33')],{'$or':_[_0xeae6('0x23')](_0x2652d4,function(_0x181989){if(_0x181989['type']!==_0xeae6('0x35')){var _0x3891e4={};_0x3891e4[_0x181989[_0xeae6('0x20')]]={'$like':'%'+_0x48a507[_0xeae6('0x2a')][_0xeae6('0x36')]+'%'};return _0x3891e4;}})});}_0x4215c6=_['merge']({},_0x4215c6,_0x48a507[_0xeae6('0x37')]);var _0x302b3d={'where':_0x4215c6['where']};return db[_0xeae6('0x24')][_0xeae6('0x17')](_0x302b3d)[_0xeae6('0x1b')](function(_0x42cdf0){_0x10c812[_0xeae6('0x17')]=_0x42cdf0;if(_0x48a507['query']['includeAll']){_0x4215c6['include']=[{'all':!![]}];}return db[_0xeae6('0x24')][_0xeae6('0x38')](_0x4215c6);})[_0xeae6('0x1b')](function(_0x40c56f){_0x10c812[_0xeae6('0x39')]=_0x40c56f;return _0x10c812;})[_0xeae6('0x1b')](respondWithFilteredResult(_0x57ae4e,_0x4215c6))['catch'](handleError(_0x57ae4e,null));};exports['show']=function(_0x3f5081,_0x1b8985){var _0x4568d5={'raw':!![],'where':{'id':_0x3f5081['params']['id']}},_0x9c7421={};_0x9c7421[_0xeae6('0x28')]=_[_0xeae6('0x29')](db[_0xeae6('0x24')]['rawAttributes']);_0x9c7421['query']=_[_0xeae6('0x29')](_0x3f5081[_0xeae6('0x2a')]);_0x9c7421[_0xeae6('0x2b')]=_['intersection'](_0x9c7421[_0xeae6('0x28')],_0x9c7421[_0xeae6('0x2a')]);_0x4568d5[_0xeae6('0x2d')]=_['intersection'](_0x9c7421[_0xeae6('0x28')],qs[_0xeae6('0x2e')](_0x3f5081[_0xeae6('0x2a')][_0xeae6('0x2e')]));_0x4568d5['attributes']=_0x4568d5['attributes'][_0xeae6('0x2f')]?_0x4568d5[_0xeae6('0x2d')]:_0x9c7421[_0xeae6('0x28')];if(_0x3f5081[_0xeae6('0x2a')][_0xeae6('0x3a')]){_0x4568d5[_0xeae6('0x3b')]=[{'all':!![]}];}_0x4568d5=_[_0xeae6('0x3c')]({},_0x4568d5,_0x3f5081[_0xeae6('0x37')]);return db[_0xeae6('0x24')][_0xeae6('0x3d')](_0x4568d5)[_0xeae6('0x1b')](handleEntityNotFound(_0x1b8985,null))[_0xeae6('0x1b')](respondWithResult(_0x1b8985,null))[_0xeae6('0x3e')](handleError(_0x1b8985,null));};exports[_0xeae6('0x3f')]=function(_0x32ac97,_0x9f405a){var _0x5a72e8;return db['Network']['create'](_0x32ac97[_0xeae6('0x40')],{'raw':!![]})['then'](function(_0x4a9aa9){_0x5a72e8=_0x4a9aa9;return db[_0xeae6('0x24')][_0xeae6('0x38')]({'where':{'type':_0x32ac97[_0xeae6('0x40')][_0xeae6('0x41')]},'raw':!![]});})['then'](function(_0x6b2986){if(_0x5a72e8[_0xeae6('0x41')][_0xeae6('0x42')]()==_0xeae6('0x43')){var _0x4208f7=fs['readFileSync'](path[_0xeae6('0x44')](config[_0xeae6('0x45')],'server/files/templates/stun_multiple.ejs'),_0xeae6('0x46'));var _0x49fb93=ejs[_0xeae6('0x47')](_0x4208f7,{'networks':_0x6b2986||[]});fs[_0xeae6('0x48')](_0xeae6('0x49'),_0x49fb93);return respondWithRpcPromise(_0xeae6('0x4a'),'create',{'module':'res_stun_monitor.so'});}else if(_0x5a72e8[_0xeae6('0x41')][_0xeae6('0x42')]()==_0xeae6('0x4b')){var _0x12025b=fs[_0xeae6('0x4c')](path[_0xeae6('0x44')](config[_0xeae6('0x45')],'server/files/templates/turn_multiple.ejs'),_0xeae6('0x46'));var _0x8201d9=ejs['render'](_0x12025b,{'networks':_0x6b2986||[]});fs[_0xeae6('0x48')](_0xeae6('0x4d'),_0x8201d9);return respondWithRpcPromise('Reload',_0xeae6('0x3f'),{'module':_0xeae6('0x4e')});}else{var _0x5ef7b5=fs['readFileSync'](path[_0xeae6('0x44')](config['root'],_0xeae6('0x4f')),_0xeae6('0x46'));var _0x1020e4=ejs[_0xeae6('0x47')](_0x5ef7b5,{'networks':_0x6b2986||[]});fs[_0xeae6('0x48')](util[_0xeae6('0x50')](_0xeae6('0x51'),_0x32ac97[_0xeae6('0x40')][_0xeae6('0x41')][_0xeae6('0x52')]()),_0x1020e4);return respondWithRpcPromise(_0xeae6('0x4a'),_0xeae6('0x3f'),{'module':_0xeae6('0x53')});}})[_0xeae6('0x1b')](function(){return _0x5a72e8;})[_0xeae6('0x1b')](respondWithResult(_0x9f405a,0xc9))[_0xeae6('0x3e')](handleError(_0x9f405a,null));};exports['update']=function(_0x37abc2,_0x58e431){var _0x22d4fc;return db['Network'][_0xeae6('0x3d')]({'where':{'id':_0x37abc2[_0xeae6('0x54')]['id']}})[_0xeae6('0x1b')](handleEntityNotFound(_0x58e431,null))[_0xeae6('0x1b')](saveUpdates(_0x37abc2['body'],null))[_0xeae6('0x1b')](function(_0x14b18f){if(_0x14b18f){_0x22d4fc=_0x14b18f;return db[_0xeae6('0x24')][_0xeae6('0x38')]({'where':{'type':_0x22d4fc[_0xeae6('0x41')]},'raw':!![]});}return null;})[_0xeae6('0x1b')](function(_0x26ce31){if(_0x22d4fc['type'][_0xeae6('0x42')]()==_0xeae6('0x43')){var _0x3211a6=fs['readFileSync'](path[_0xeae6('0x44')](config[_0xeae6('0x45')],_0xeae6('0x55')),'utf8');var _0x488a61=ejs[_0xeae6('0x47')](_0x3211a6,{'networks':_0x26ce31||[]});fs[_0xeae6('0x48')](_0xeae6('0x49'),_0x488a61);return respondWithRpcPromise('Reload','update',{'module':_0xeae6('0x4e')});}else if(_0x22d4fc[_0xeae6('0x41')][_0xeae6('0x42')]()==_0xeae6('0x4b')){var _0x2c0c85=fs[_0xeae6('0x4c')](path[_0xeae6('0x44')](config[_0xeae6('0x45')],_0xeae6('0x56')),_0xeae6('0x46'));var _0x4c9ab5=ejs[_0xeae6('0x47')](_0x2c0c85,{'networks':_0x26ce31||[]});fs[_0xeae6('0x48')](_0xeae6('0x4d'),_0x4c9ab5);return respondWithRpcPromise('Reload','update',{'module':_0xeae6('0x4e')});}else{var _0x2913cd=fs[_0xeae6('0x4c')](path[_0xeae6('0x44')](config[_0xeae6('0x45')],_0xeae6('0x4f')),_0xeae6('0x46'));var _0x4232c5=ejs[_0xeae6('0x47')](_0x2913cd,{'networks':_0x26ce31||[]});fs['writeFileSync'](util[_0xeae6('0x50')](_0xeae6('0x51'),_0x37abc2[_0xeae6('0x40')][_0xeae6('0x41')][_0xeae6('0x52')]()),_0x4232c5);return respondWithRpcPromise(_0xeae6('0x4a'),_0xeae6('0x57'),{'module':_0xeae6('0x53')});}})[_0xeae6('0x1b')](function(_0x3056d4){if(_0x3056d4){return _0x22d4fc;}return null;})[_0xeae6('0x1b')](respondWithResult(_0x58e431,null))['catch'](handleError(_0x58e431,null));};exports[_0xeae6('0x1c')]=function(_0x3eb868,_0x19a415){var _0x1ef8fc;return db[_0xeae6('0x24')][_0xeae6('0x3d')]({'where':{'id':_0x3eb868['params']['id']}})[_0xeae6('0x1b')](function(_0x137d4d){_0x1ef8fc=_0x137d4d;return _0x137d4d;})[_0xeae6('0x1b')](handleEntityNotFound(_0x19a415,null))[_0xeae6('0x1b')](removeEntity(_0x19a415,null))[_0xeae6('0x1b')](function(){if(_0x1ef8fc){return db['Network'][_0xeae6('0x38')]({'where':{'type':_0x1ef8fc['type']},'raw':!![]});}})[_0xeae6('0x1b')](function(_0x3ba206){if(_0x1ef8fc[_0xeae6('0x41')][_0xeae6('0x42')]()==_0xeae6('0x43')){var _0x2873dd=fs[_0xeae6('0x4c')](path['join'](config['root'],_0xeae6('0x55')),_0xeae6('0x46'));var _0x5670b3=ejs['render'](_0x2873dd,{'networks':_0x3ba206||[]});fs[_0xeae6('0x48')](_0xeae6('0x49'),_0x5670b3);return respondWithRpcPromise(_0xeae6('0x4a'),_0xeae6('0x1c'),{'module':_0xeae6('0x4e')});}else if(_0x1ef8fc['type'][_0xeae6('0x42')]()==_0xeae6('0x4b')){var _0x2438b3=fs[_0xeae6('0x4c')](path[_0xeae6('0x44')](config['root'],_0xeae6('0x56')),_0xeae6('0x46'));var _0x57bfd6=ejs[_0xeae6('0x47')](_0x2438b3,{'networks':_0x3ba206||[]});fs[_0xeae6('0x48')]('/etc/asterisk/turn_xcally.conf',_0x57bfd6);return respondWithRpcPromise(_0xeae6('0x4a'),_0xeae6('0x1c'),{'module':_0xeae6('0x4e')});}else{var _0x4f2cd5=fs['readFileSync'](path[_0xeae6('0x44')](config['root'],_0xeae6('0x4f')),_0xeae6('0x46'));var _0x4cd920=ejs[_0xeae6('0x47')](_0x4f2cd5,{'networks':_0x3ba206||[]});fs[_0xeae6('0x48')](util['format'](_0xeae6('0x51'),_0x1ef8fc['type']['toLowerCase']()),_0x4cd920);return respondWithRpcPromise(_0xeae6('0x4a'),_0xeae6('0x1c'),{'module':'chan_sip.so'});}})[_0xeae6('0x3e')](handleError(_0x19a415,null));};