Built motion from commit e8d9bd62.|2.6.25
[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 _0x2a54=['params','includeAll','find','create','body','toUpperCase','STUN','readFileSync','join','root','server/files/templates/stun_multiple.ejs','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','TURN','server/files/templates/turn_multiple.ejs','utf8','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','res_stun_monitor.so','util','path','ejs','lodash','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','client','http','request','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','error','code','message','result','status','json','limit','undefined','offset','Content-Range','update','destroy','end','sendStatus','stack','name','send','index','map','rawAttributes','fieldName','type','model','keys','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','VIRTUAL','merge','options','Network','count','include','findAll','catch'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2a54,0x6f));var _0x42a5=function(_0x1093b8,_0x4231b2){_0x1093b8=_0x1093b8-0x0;var _0x141e35=_0x2a54[_0x1093b8];return _0x141e35;};'use strict';var util=require(_0x42a5('0x0'));var path=require(_0x42a5('0x1'));var ejs=require(_0x42a5('0x2'));var fs=require('fs');var _=require(_0x42a5('0x3'));var qs=require(_0x42a5('0x4'));var logger=require(_0x42a5('0x5'))('api');var config=require(_0x42a5('0x6'));var db=require(_0x42a5('0x7'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x42a5('0x8')][_0x42a5('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x182942,_0x109b16,_0x25d588,_0xc96bec){return new Promise(function(_0x3f2cbc,_0x591b56){var _0x5b48bc=_0xc96bec||client;return _0x5b48bc[_0x42a5('0xa')](_0x182942,_0x25d588)[_0x42a5('0xb')](function(_0x4a8705){logger[_0x42a5('0xc')](_0x42a5('0xd'),_0x109b16,_0x42a5('0xe'));logger[_0x42a5('0xf')](_0x42a5('0x10'),_0x109b16,'request\x20sent',JSON['stringify'](_0x4a8705));if(_0x4a8705[_0x42a5('0x11')]){if(_0x4a8705[_0x42a5('0x11')][_0x42a5('0x12')]===0x1f4){logger[_0x42a5('0x11')](_0x42a5('0xd'),_0x109b16,_0x4a8705[_0x42a5('0x11')]['message']);return _0x591b56(_0x4a8705[_0x42a5('0x11')][_0x42a5('0x13')]);}logger[_0x42a5('0x11')](_0x42a5('0xd'),_0x109b16,_0x4a8705[_0x42a5('0x11')][_0x42a5('0x13')]);return _0x3f2cbc(_0x4a8705[_0x42a5('0x11')][_0x42a5('0x13')]);}else{logger['info']('Network,\x20%s,\x20%s',_0x109b16,_0x42a5('0xe'));_0x3f2cbc(_0x4a8705[_0x42a5('0x14')][_0x42a5('0x13')]);}})['catch'](function(_0x357862){logger[_0x42a5('0x11')](_0x42a5('0xd'),_0x109b16,_0x357862);_0x591b56(_0x357862);});});}function respondWithResult(_0x57ee9d,_0xcb90c0){_0xcb90c0=_0xcb90c0||0xc8;return function(_0x8adc88){if(_0x8adc88){return _0x57ee9d[_0x42a5('0x15')](_0xcb90c0)[_0x42a5('0x16')](_0x8adc88);}};}function respondWithFilteredResult(_0xf280f3,_0x3a5aec){return function(_0x1ee3c5){if(_0x1ee3c5){var _0xd55728=typeof _0x3a5aec['offset']==='undefined'&&typeof _0x3a5aec[_0x42a5('0x17')]===_0x42a5('0x18');var _0x303255=_0x1ee3c5['count'];var _0x174f0d=_0xd55728?0x0:_0x3a5aec[_0x42a5('0x19')];var _0xd9f031=_0xd55728?_0x1ee3c5['count']:_0x3a5aec[_0x42a5('0x19')]+_0x3a5aec[_0x42a5('0x17')];var _0x52d88a;if(_0xd9f031>=_0x303255){_0xd9f031=_0x303255;_0x52d88a=0xc8;}else{_0x52d88a=0xce;}_0xf280f3['status'](_0x52d88a);return _0xf280f3['set'](_0x42a5('0x1a'),_0x174f0d+'-'+_0xd9f031+'/'+_0x303255)[_0x42a5('0x16')](_0x1ee3c5);}return null;};}function saveUpdates(_0x1d7702){return function(_0x4ee724){if(_0x4ee724){return _0x4ee724[_0x42a5('0x1b')](_0x1d7702)[_0x42a5('0xb')](function(_0x4fc9e5){return _0x4fc9e5;});}return null;};}function removeEntity(_0x1de343){return function(_0x1cc2b2){if(_0x1cc2b2){return _0x1cc2b2[_0x42a5('0x1c')]()[_0x42a5('0xb')](function(){_0x1de343[_0x42a5('0x15')](0xcc)[_0x42a5('0x1d')]();});}};}function handleEntityNotFound(_0x51471a){return function(_0x1ca202){if(!_0x1ca202){_0x51471a[_0x42a5('0x1e')](0x194);}return _0x1ca202;};}function handleError(_0x5524ac,_0x31c8e0){_0x31c8e0=_0x31c8e0||0x1f4;return function(_0x5b0168){logger['error'](_0x5b0168[_0x42a5('0x1f')]);if(_0x5b0168[_0x42a5('0x20')]){delete _0x5b0168[_0x42a5('0x20')];}_0x5524ac['status'](_0x31c8e0)[_0x42a5('0x21')](_0x5b0168);};}exports[_0x42a5('0x22')]=function(_0x5b66cd,_0x1343fb){var _0x9fa214={},_0x11c177={},_0x2af5f6={'count':0x0,'rows':[]};var _0x302512=_[_0x42a5('0x23')](db['Network'][_0x42a5('0x24')],function(_0x155015){return{'name':_0x155015[_0x42a5('0x25')],'type':_0x155015[_0x42a5('0x26')]['key']};});_0x11c177[_0x42a5('0x27')]=_[_0x42a5('0x23')](_0x302512,_0x42a5('0x20'));_0x11c177['query']=_[_0x42a5('0x28')](_0x5b66cd[_0x42a5('0x29')]);_0x11c177['filters']=_['intersection'](_0x11c177[_0x42a5('0x27')],_0x11c177['query']);_0x9fa214['attributes']=_[_0x42a5('0x2a')](_0x11c177['model'],qs[_0x42a5('0x2b')](_0x5b66cd[_0x42a5('0x29')][_0x42a5('0x2b')]));_0x9fa214[_0x42a5('0x2c')]=_0x9fa214['attributes'][_0x42a5('0x2d')]?_0x9fa214[_0x42a5('0x2c')]:_0x11c177[_0x42a5('0x27')];if(!_0x5b66cd['query'][_0x42a5('0x2e')](_0x42a5('0x2f'))){_0x9fa214[_0x42a5('0x17')]=qs[_0x42a5('0x17')](_0x5b66cd[_0x42a5('0x29')][_0x42a5('0x17')]);_0x9fa214[_0x42a5('0x19')]=qs['offset'](_0x5b66cd[_0x42a5('0x29')]['offset']);}_0x9fa214[_0x42a5('0x30')]=qs[_0x42a5('0x31')](_0x5b66cd[_0x42a5('0x29')][_0x42a5('0x31')]);_0x9fa214[_0x42a5('0x32')]=qs[_0x42a5('0x33')](_['pick'](_0x5b66cd[_0x42a5('0x29')],_0x11c177[_0x42a5('0x33')]),_0x302512);if(_0x5b66cd['query'][_0x42a5('0x34')]){_0x9fa214[_0x42a5('0x32')]=_['merge'](_0x9fa214[_0x42a5('0x32')],{'$or':_['map'](_0x302512,function(_0x174bda){if(_0x174bda['type']!==_0x42a5('0x35')){var _0x29312a={};_0x29312a[_0x174bda[_0x42a5('0x20')]]={'$like':'%'+_0x5b66cd[_0x42a5('0x29')]['filter']+'%'};return _0x29312a;}})});}_0x9fa214=_[_0x42a5('0x36')]({},_0x9fa214,_0x5b66cd[_0x42a5('0x37')]);var _0x223054={'where':_0x9fa214['where']};return db[_0x42a5('0x38')][_0x42a5('0x39')](_0x223054)[_0x42a5('0xb')](function(_0x559e13){_0x2af5f6[_0x42a5('0x39')]=_0x559e13;if(_0x5b66cd['query']['includeAll']){_0x9fa214[_0x42a5('0x3a')]=[{'all':!![]}];}return db[_0x42a5('0x38')][_0x42a5('0x3b')](_0x9fa214);})[_0x42a5('0xb')](function(_0x40d10e){_0x2af5f6['rows']=_0x40d10e;return _0x2af5f6;})[_0x42a5('0xb')](respondWithFilteredResult(_0x1343fb,_0x9fa214))[_0x42a5('0x3c')](handleError(_0x1343fb,null));};exports['show']=function(_0x65affb,_0x3d6a35){var _0x39227b={'raw':!![],'where':{'id':_0x65affb[_0x42a5('0x3d')]['id']}},_0x2b352d={};_0x2b352d[_0x42a5('0x27')]=_[_0x42a5('0x28')](db[_0x42a5('0x38')][_0x42a5('0x24')]);_0x2b352d[_0x42a5('0x29')]=_[_0x42a5('0x28')](_0x65affb[_0x42a5('0x29')]);_0x2b352d['filters']=_[_0x42a5('0x2a')](_0x2b352d[_0x42a5('0x27')],_0x2b352d[_0x42a5('0x29')]);_0x39227b[_0x42a5('0x2c')]=_[_0x42a5('0x2a')](_0x2b352d['model'],qs[_0x42a5('0x2b')](_0x65affb[_0x42a5('0x29')][_0x42a5('0x2b')]));_0x39227b['attributes']=_0x39227b[_0x42a5('0x2c')][_0x42a5('0x2d')]?_0x39227b['attributes']:_0x2b352d[_0x42a5('0x27')];if(_0x65affb[_0x42a5('0x29')][_0x42a5('0x3e')]){_0x39227b[_0x42a5('0x3a')]=[{'all':!![]}];}_0x39227b=_['merge']({},_0x39227b,_0x65affb[_0x42a5('0x37')]);return db[_0x42a5('0x38')][_0x42a5('0x3f')](_0x39227b)['then'](handleEntityNotFound(_0x3d6a35,null))[_0x42a5('0xb')](respondWithResult(_0x3d6a35,null))[_0x42a5('0x3c')](handleError(_0x3d6a35,null));};exports[_0x42a5('0x40')]=function(_0x9547e7,_0x290a2f){var _0x1f5ae5;return db[_0x42a5('0x38')]['create'](_0x9547e7['body'],{'raw':!![]})['then'](function(_0x30aaf7){_0x1f5ae5=_0x30aaf7;return db[_0x42a5('0x38')][_0x42a5('0x3b')]({'where':{'type':_0x9547e7[_0x42a5('0x41')][_0x42a5('0x26')]},'raw':!![]});})[_0x42a5('0xb')](function(_0x11f1e7){if(_0x1f5ae5[_0x42a5('0x26')][_0x42a5('0x42')]()==_0x42a5('0x43')){var _0x3e1e27=fs[_0x42a5('0x44')](path[_0x42a5('0x45')](config[_0x42a5('0x46')],_0x42a5('0x47')),'utf8');var _0x2e7d4b=ejs[_0x42a5('0x48')](_0x3e1e27,{'networks':_0x11f1e7||[]});fs[_0x42a5('0x49')](_0x42a5('0x4a'),_0x2e7d4b);return respondWithRpcPromise(_0x42a5('0x4b'),_0x42a5('0x40'),{'module':'res_stun_monitor.so'});}else if(_0x1f5ae5[_0x42a5('0x26')][_0x42a5('0x42')]()==_0x42a5('0x4c')){var _0x51be8e=fs['readFileSync'](path[_0x42a5('0x45')](config[_0x42a5('0x46')],_0x42a5('0x4d')),_0x42a5('0x4e'));var _0x2771e7=ejs[_0x42a5('0x48')](_0x51be8e,{'networks':_0x11f1e7||[]});fs['writeFileSync'](_0x42a5('0x4f'),_0x2771e7);return respondWithRpcPromise(_0x42a5('0x4b'),_0x42a5('0x40'),{'module':'res_stun_monitor.so'});}else{var _0x3634ad=fs[_0x42a5('0x44')](path[_0x42a5('0x45')](config['root'],_0x42a5('0x50')),_0x42a5('0x4e'));var _0xdb0452=ejs[_0x42a5('0x48')](_0x3634ad,{'networks':_0x11f1e7||[]});fs['writeFileSync'](util[_0x42a5('0x51')](_0x42a5('0x52'),_0x9547e7[_0x42a5('0x41')][_0x42a5('0x26')][_0x42a5('0x53')]()),_0xdb0452);return respondWithRpcPromise(_0x42a5('0x4b'),_0x42a5('0x40'),{'module':_0x42a5('0x54')});}})[_0x42a5('0xb')](function(){return _0x1f5ae5;})[_0x42a5('0xb')](respondWithResult(_0x290a2f,0xc9))[_0x42a5('0x3c')](handleError(_0x290a2f,null));};exports[_0x42a5('0x1b')]=function(_0x104a88,_0xaef17){var _0x21f4c0;return db[_0x42a5('0x38')][_0x42a5('0x3f')]({'where':{'id':_0x104a88[_0x42a5('0x3d')]['id']}})[_0x42a5('0xb')](handleEntityNotFound(_0xaef17,null))[_0x42a5('0xb')](saveUpdates(_0x104a88[_0x42a5('0x41')],null))['then'](function(_0x249029){if(_0x249029){_0x21f4c0=_0x249029;return db[_0x42a5('0x38')][_0x42a5('0x3b')]({'where':{'type':_0x21f4c0[_0x42a5('0x26')]},'raw':!![]});}return null;})[_0x42a5('0xb')](function(_0x1a3e16){if(_0x21f4c0[_0x42a5('0x26')][_0x42a5('0x42')]()==_0x42a5('0x43')){var _0x1c295b=fs[_0x42a5('0x44')](path[_0x42a5('0x45')](config[_0x42a5('0x46')],_0x42a5('0x47')),_0x42a5('0x4e'));var _0x1b02de=ejs['render'](_0x1c295b,{'networks':_0x1a3e16||[]});fs['writeFileSync'](_0x42a5('0x4a'),_0x1b02de);return respondWithRpcPromise(_0x42a5('0x4b'),'update',{'module':_0x42a5('0x55')});}else if(_0x21f4c0[_0x42a5('0x26')][_0x42a5('0x42')]()==_0x42a5('0x4c')){var _0x26801d=fs[_0x42a5('0x44')](path[_0x42a5('0x45')](config['root'],_0x42a5('0x4d')),'utf8');var _0x4211f3=ejs[_0x42a5('0x48')](_0x26801d,{'networks':_0x1a3e16||[]});fs[_0x42a5('0x49')](_0x42a5('0x4f'),_0x4211f3);return respondWithRpcPromise('Reload',_0x42a5('0x1b'),{'module':_0x42a5('0x55')});}else{var _0x31a0c4=fs[_0x42a5('0x44')](path[_0x42a5('0x45')](config[_0x42a5('0x46')],_0x42a5('0x50')),_0x42a5('0x4e'));var _0xbb4a0d=ejs['render'](_0x31a0c4,{'networks':_0x1a3e16||[]});fs[_0x42a5('0x49')](util[_0x42a5('0x51')](_0x42a5('0x52'),_0x104a88[_0x42a5('0x41')]['type'][_0x42a5('0x53')]()),_0xbb4a0d);return respondWithRpcPromise(_0x42a5('0x4b'),_0x42a5('0x1b'),{'module':'chan_sip.so'});}})[_0x42a5('0xb')](function(_0x2ee15f){if(_0x2ee15f){return _0x21f4c0;}return null;})[_0x42a5('0xb')](respondWithResult(_0xaef17,null))['catch'](handleError(_0xaef17,null));};exports['destroy']=function(_0x53110b,_0x597415){var _0x424c99;return db[_0x42a5('0x38')]['find']({'where':{'id':_0x53110b[_0x42a5('0x3d')]['id']}})[_0x42a5('0xb')](function(_0x5c8e4b){_0x424c99=_0x5c8e4b;return _0x5c8e4b;})[_0x42a5('0xb')](handleEntityNotFound(_0x597415,null))[_0x42a5('0xb')](removeEntity(_0x597415,null))[_0x42a5('0xb')](function(){if(_0x424c99){return db[_0x42a5('0x38')][_0x42a5('0x3b')]({'where':{'type':_0x424c99['type']},'raw':!![]});}})[_0x42a5('0xb')](function(_0xd55140){if(_0x424c99[_0x42a5('0x26')][_0x42a5('0x42')]()==_0x42a5('0x43')){var _0x46567a=fs[_0x42a5('0x44')](path[_0x42a5('0x45')](config[_0x42a5('0x46')],'server/files/templates/stun_multiple.ejs'),'utf8');var _0x35cb04=ejs[_0x42a5('0x48')](_0x46567a,{'networks':_0xd55140||[]});fs[_0x42a5('0x49')](_0x42a5('0x4a'),_0x35cb04);return respondWithRpcPromise(_0x42a5('0x4b'),_0x42a5('0x1c'),{'module':_0x42a5('0x55')});}else if(_0x424c99[_0x42a5('0x26')]['toUpperCase']()==_0x42a5('0x4c')){var _0x425371=fs[_0x42a5('0x44')](path[_0x42a5('0x45')](config[_0x42a5('0x46')],_0x42a5('0x4d')),'utf8');var _0x3f62dc=ejs[_0x42a5('0x48')](_0x425371,{'networks':_0xd55140||[]});fs[_0x42a5('0x49')]('/etc/asterisk/turn_xcally.conf',_0x3f62dc);return respondWithRpcPromise('Reload',_0x42a5('0x1c'),{'module':_0x42a5('0x55')});}else{var _0x30e2ae=fs['readFileSync'](path[_0x42a5('0x45')](config['root'],_0x42a5('0x50')),_0x42a5('0x4e'));var _0x25374e=ejs[_0x42a5('0x48')](_0x30e2ae,{'networks':_0xd55140||[]});fs[_0x42a5('0x49')](util[_0x42a5('0x51')]('/etc/asterisk/sip_xcally_%s.conf',_0x424c99[_0x42a5('0x26')]['toLowerCase']()),_0x25374e);return respondWithRpcPromise(_0x42a5('0x4b'),_0x42a5('0x1c'),{'module':_0x42a5('0x54')});}})['catch'](handleError(_0x597415,null));};