Built motion from commit da617fac.|2.6.6
[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 _0xec41=['order','sort','where','filter','VIRTUAL','merge','options','includeAll','findAll','catch','show','params','find','create','body','toUpperCase','STUN','readFileSync','server/files/templates/stun_multiple.ejs','utf8','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','join','root','server/files/templates/turn_multiple.ejs','render','writeFileSync','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','update','/etc/asterisk/turn_xcally.conf','chan_sip.so','util','ejs','lodash','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','jayson/promise','client','http','request','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','message','status','undefined','limit','count','offset','set','Content-Range','json','destroy','end','stack','name','send','index','map','Network','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0xec41,0xd0));var _0x1ec4=function(_0x28698e,_0x48b11d){_0x28698e=_0x28698e-0x0;var _0x1e77cc=_0xec41[_0x28698e];return _0x1e77cc;};'use strict';var util=require(_0x1ec4('0x0'));var path=require('path');var ejs=require(_0x1ec4('0x1'));var fs=require('fs');var _=require(_0x1ec4('0x2'));var qs=require(_0x1ec4('0x3'));var logger=require(_0x1ec4('0x4'))(_0x1ec4('0x5'));var config=require(_0x1ec4('0x6'));var db=require(_0x1ec4('0x7'))['db'];var jayson=require(_0x1ec4('0x8'));var client=jayson[_0x1ec4('0x9')][_0x1ec4('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x440fb2,_0x91b093,_0x1050d2,_0x419b83){return new Promise(function(_0x599b28,_0x4afb4c){var _0x37f7ff=_0x419b83||client;return _0x37f7ff[_0x1ec4('0xb')](_0x440fb2,_0x1050d2)[_0x1ec4('0xc')](function(_0x30398d){logger[_0x1ec4('0xd')](_0x1ec4('0xe'),_0x91b093,_0x1ec4('0xf'));logger[_0x1ec4('0x10')](_0x1ec4('0x11'),_0x91b093,_0x1ec4('0xf'),JSON[_0x1ec4('0x12')](_0x30398d));if(_0x30398d[_0x1ec4('0x13')]){if(_0x30398d['error']['code']===0x1f4){logger['error']('Network,\x20%s,\x20%s',_0x91b093,_0x30398d[_0x1ec4('0x13')]['message']);return _0x4afb4c(_0x30398d['error']['message']);}logger[_0x1ec4('0x13')]('Network,\x20%s,\x20%s',_0x91b093,_0x30398d['error'][_0x1ec4('0x14')]);return _0x599b28(_0x30398d[_0x1ec4('0x13')]['message']);}else{logger['info']('Network,\x20%s,\x20%s',_0x91b093,_0x1ec4('0xf'));_0x599b28(_0x30398d['result']['message']);}})['catch'](function(_0x38a9e0){logger['error'](_0x1ec4('0xe'),_0x91b093,_0x38a9e0);_0x4afb4c(_0x38a9e0);});});}function respondWithResult(_0xd40a6e,_0xdcab74){_0xdcab74=_0xdcab74||0xc8;return function(_0x4ca9c5){if(_0x4ca9c5){return _0xd40a6e[_0x1ec4('0x15')](_0xdcab74)['json'](_0x4ca9c5);}};}function respondWithFilteredResult(_0x478603,_0x235c4d){return function(_0x1ad229){if(_0x1ad229){var _0x2d2bcb=typeof _0x235c4d['offset']===_0x1ec4('0x16')&&typeof _0x235c4d[_0x1ec4('0x17')]==='undefined';var _0x2dd1b9=_0x1ad229[_0x1ec4('0x18')];var _0x57c0d5=_0x2d2bcb?0x0:_0x235c4d[_0x1ec4('0x19')];var _0xaf8125=_0x2d2bcb?_0x1ad229[_0x1ec4('0x18')]:_0x235c4d[_0x1ec4('0x19')]+_0x235c4d['limit'];var _0x5e022b;if(_0xaf8125>=_0x2dd1b9){_0xaf8125=_0x2dd1b9;_0x5e022b=0xc8;}else{_0x5e022b=0xce;}_0x478603['status'](_0x5e022b);return _0x478603[_0x1ec4('0x1a')](_0x1ec4('0x1b'),_0x57c0d5+'-'+_0xaf8125+'/'+_0x2dd1b9)[_0x1ec4('0x1c')](_0x1ad229);}return null;};}function saveUpdates(_0x2c4440){return function(_0x457f39){if(_0x457f39){return _0x457f39['update'](_0x2c4440)[_0x1ec4('0xc')](function(_0x1cdf55){return _0x1cdf55;});}return null;};}function removeEntity(_0x253a6e){return function(_0x2416fc){if(_0x2416fc){return _0x2416fc[_0x1ec4('0x1d')]()[_0x1ec4('0xc')](function(){_0x253a6e[_0x1ec4('0x15')](0xcc)[_0x1ec4('0x1e')]();});}};}function handleEntityNotFound(_0x2d2614){return function(_0x59e531){if(!_0x59e531){_0x2d2614['sendStatus'](0x194);}return _0x59e531;};}function handleError(_0x29fcd3,_0x1d53b6){_0x1d53b6=_0x1d53b6||0x1f4;return function(_0x2d2187){logger['error'](_0x2d2187[_0x1ec4('0x1f')]);if(_0x2d2187[_0x1ec4('0x20')]){delete _0x2d2187[_0x1ec4('0x20')];}_0x29fcd3[_0x1ec4('0x15')](_0x1d53b6)[_0x1ec4('0x21')](_0x2d2187);};}exports[_0x1ec4('0x22')]=function(_0x2323f3,_0x1e2bde){var _0x21a4a1={},_0x5085a7={},_0x57a960={'count':0x0,'rows':[]};var _0x31343c=_[_0x1ec4('0x23')](db[_0x1ec4('0x24')][_0x1ec4('0x25')],function(_0x341d24){return{'name':_0x341d24['fieldName'],'type':_0x341d24[_0x1ec4('0x26')][_0x1ec4('0x27')]};});_0x5085a7[_0x1ec4('0x28')]=_['map'](_0x31343c,'name');_0x5085a7[_0x1ec4('0x29')]=_[_0x1ec4('0x2a')](_0x2323f3[_0x1ec4('0x29')]);_0x5085a7[_0x1ec4('0x2b')]=_[_0x1ec4('0x2c')](_0x5085a7[_0x1ec4('0x28')],_0x5085a7[_0x1ec4('0x29')]);_0x21a4a1[_0x1ec4('0x2d')]=_['intersection'](_0x5085a7[_0x1ec4('0x28')],qs[_0x1ec4('0x2e')](_0x2323f3[_0x1ec4('0x29')][_0x1ec4('0x2e')]));_0x21a4a1['attributes']=_0x21a4a1[_0x1ec4('0x2d')][_0x1ec4('0x2f')]?_0x21a4a1[_0x1ec4('0x2d')]:_0x5085a7[_0x1ec4('0x28')];if(!_0x2323f3[_0x1ec4('0x29')][_0x1ec4('0x30')](_0x1ec4('0x31'))){_0x21a4a1[_0x1ec4('0x17')]=qs[_0x1ec4('0x17')](_0x2323f3[_0x1ec4('0x29')][_0x1ec4('0x17')]);_0x21a4a1[_0x1ec4('0x19')]=qs['offset'](_0x2323f3[_0x1ec4('0x29')]['offset']);}_0x21a4a1[_0x1ec4('0x32')]=qs[_0x1ec4('0x33')](_0x2323f3[_0x1ec4('0x29')][_0x1ec4('0x33')]);_0x21a4a1[_0x1ec4('0x34')]=qs[_0x1ec4('0x2b')](_['pick'](_0x2323f3[_0x1ec4('0x29')],_0x5085a7['filters']),_0x31343c);if(_0x2323f3[_0x1ec4('0x29')][_0x1ec4('0x35')]){_0x21a4a1[_0x1ec4('0x34')]=_['merge'](_0x21a4a1[_0x1ec4('0x34')],{'$or':_[_0x1ec4('0x23')](_0x31343c,function(_0x45d8a6){if(_0x45d8a6[_0x1ec4('0x26')]!==_0x1ec4('0x36')){var _0x4986f9={};_0x4986f9[_0x45d8a6[_0x1ec4('0x20')]]={'$like':'%'+_0x2323f3['query'][_0x1ec4('0x35')]+'%'};return _0x4986f9;}})});}_0x21a4a1=_[_0x1ec4('0x37')]({},_0x21a4a1,_0x2323f3[_0x1ec4('0x38')]);var _0x14cfc7={'where':_0x21a4a1['where']};return db[_0x1ec4('0x24')][_0x1ec4('0x18')](_0x14cfc7)[_0x1ec4('0xc')](function(_0x20ac5b){_0x57a960[_0x1ec4('0x18')]=_0x20ac5b;if(_0x2323f3[_0x1ec4('0x29')][_0x1ec4('0x39')]){_0x21a4a1['include']=[{'all':!![]}];}return db[_0x1ec4('0x24')][_0x1ec4('0x3a')](_0x21a4a1);})[_0x1ec4('0xc')](function(_0x5f404f){_0x57a960['rows']=_0x5f404f;return _0x57a960;})[_0x1ec4('0xc')](respondWithFilteredResult(_0x1e2bde,_0x21a4a1))[_0x1ec4('0x3b')](handleError(_0x1e2bde,null));};exports[_0x1ec4('0x3c')]=function(_0x58f140,_0x169d83){var _0x485db2={'raw':!![],'where':{'id':_0x58f140[_0x1ec4('0x3d')]['id']}},_0x5eeebc={};_0x5eeebc[_0x1ec4('0x28')]=_['keys'](db[_0x1ec4('0x24')][_0x1ec4('0x25')]);_0x5eeebc['query']=_[_0x1ec4('0x2a')](_0x58f140[_0x1ec4('0x29')]);_0x5eeebc['filters']=_[_0x1ec4('0x2c')](_0x5eeebc[_0x1ec4('0x28')],_0x5eeebc[_0x1ec4('0x29')]);_0x485db2[_0x1ec4('0x2d')]=_[_0x1ec4('0x2c')](_0x5eeebc['model'],qs[_0x1ec4('0x2e')](_0x58f140[_0x1ec4('0x29')][_0x1ec4('0x2e')]));_0x485db2[_0x1ec4('0x2d')]=_0x485db2[_0x1ec4('0x2d')]['length']?_0x485db2['attributes']:_0x5eeebc[_0x1ec4('0x28')];if(_0x58f140[_0x1ec4('0x29')]['includeAll']){_0x485db2['include']=[{'all':!![]}];}_0x485db2=_['merge']({},_0x485db2,_0x58f140[_0x1ec4('0x38')]);return db[_0x1ec4('0x24')][_0x1ec4('0x3e')](_0x485db2)[_0x1ec4('0xc')](handleEntityNotFound(_0x169d83,null))[_0x1ec4('0xc')](respondWithResult(_0x169d83,null))[_0x1ec4('0x3b')](handleError(_0x169d83,null));};exports[_0x1ec4('0x3f')]=function(_0x33aa3e,_0x4eebda){var _0x3c7a50;return db[_0x1ec4('0x24')]['create'](_0x33aa3e['body'],{'raw':!![]})['then'](function(_0x165f87){_0x3c7a50=_0x165f87;return db[_0x1ec4('0x24')][_0x1ec4('0x3a')]({'where':{'type':_0x33aa3e[_0x1ec4('0x40')][_0x1ec4('0x26')]},'raw':!![]});})[_0x1ec4('0xc')](function(_0x2b11f2){if(_0x3c7a50[_0x1ec4('0x26')][_0x1ec4('0x41')]()==_0x1ec4('0x42')){var _0x5c0157=fs[_0x1ec4('0x43')](path['join'](config['root'],_0x1ec4('0x44')),_0x1ec4('0x45'));var _0x41dbfe=ejs['render'](_0x5c0157,{'networks':_0x2b11f2||[]});fs['writeFileSync'](_0x1ec4('0x46'),_0x41dbfe);return respondWithRpcPromise(_0x1ec4('0x47'),'create',{'module':_0x1ec4('0x48')});}else if(_0x3c7a50[_0x1ec4('0x26')][_0x1ec4('0x41')]()==_0x1ec4('0x49')){var _0x280e60=fs[_0x1ec4('0x43')](path[_0x1ec4('0x4a')](config[_0x1ec4('0x4b')],_0x1ec4('0x4c')),_0x1ec4('0x45'));var _0x31974d=ejs[_0x1ec4('0x4d')](_0x280e60,{'networks':_0x2b11f2||[]});fs[_0x1ec4('0x4e')]('/etc/asterisk/turn_xcally.conf',_0x31974d);return respondWithRpcPromise(_0x1ec4('0x47'),_0x1ec4('0x3f'),{'module':_0x1ec4('0x48')});}else{var _0x23caf4=fs[_0x1ec4('0x43')](path[_0x1ec4('0x4a')](config[_0x1ec4('0x4b')],_0x1ec4('0x4f')),'utf8');var _0x39b09a=ejs[_0x1ec4('0x4d')](_0x23caf4,{'networks':_0x2b11f2||[]});fs[_0x1ec4('0x4e')](util[_0x1ec4('0x50')](_0x1ec4('0x51'),_0x33aa3e['body'][_0x1ec4('0x26')][_0x1ec4('0x52')]()),_0x39b09a);return respondWithRpcPromise(_0x1ec4('0x47'),'create',{'module':'chan_sip.so'});}})[_0x1ec4('0xc')](function(){return _0x3c7a50;})['then'](respondWithResult(_0x4eebda,0xc9))[_0x1ec4('0x3b')](handleError(_0x4eebda,null));};exports['update']=function(_0x40c178,_0x25a72c){var _0x9d855b;return db[_0x1ec4('0x24')][_0x1ec4('0x3e')]({'where':{'id':_0x40c178[_0x1ec4('0x3d')]['id']}})[_0x1ec4('0xc')](handleEntityNotFound(_0x25a72c,null))[_0x1ec4('0xc')](saveUpdates(_0x40c178['body'],null))[_0x1ec4('0xc')](function(_0x52ce79){if(_0x52ce79){_0x9d855b=_0x52ce79;return db[_0x1ec4('0x24')][_0x1ec4('0x3a')]({'where':{'type':_0x9d855b[_0x1ec4('0x26')]},'raw':!![]});}return null;})[_0x1ec4('0xc')](function(_0x389324){if(_0x9d855b[_0x1ec4('0x26')]['toUpperCase']()==_0x1ec4('0x42')){var _0x1024ac=fs[_0x1ec4('0x43')](path['join'](config[_0x1ec4('0x4b')],_0x1ec4('0x44')),_0x1ec4('0x45'));var _0xfec99b=ejs[_0x1ec4('0x4d')](_0x1024ac,{'networks':_0x389324||[]});fs['writeFileSync'](_0x1ec4('0x46'),_0xfec99b);return respondWithRpcPromise('Reload',_0x1ec4('0x53'),{'module':_0x1ec4('0x48')});}else if(_0x9d855b[_0x1ec4('0x26')][_0x1ec4('0x41')]()==_0x1ec4('0x49')){var _0x30556c=fs[_0x1ec4('0x43')](path[_0x1ec4('0x4a')](config[_0x1ec4('0x4b')],_0x1ec4('0x4c')),'utf8');var _0x388f7b=ejs[_0x1ec4('0x4d')](_0x30556c,{'networks':_0x389324||[]});fs[_0x1ec4('0x4e')](_0x1ec4('0x54'),_0x388f7b);return respondWithRpcPromise('Reload','update',{'module':_0x1ec4('0x48')});}else{var _0x575609=fs[_0x1ec4('0x43')](path[_0x1ec4('0x4a')](config[_0x1ec4('0x4b')],'server/files/templates/network.ejs'),_0x1ec4('0x45'));var _0x164d25=ejs[_0x1ec4('0x4d')](_0x575609,{'networks':_0x389324||[]});fs[_0x1ec4('0x4e')](util[_0x1ec4('0x50')](_0x1ec4('0x51'),_0x40c178[_0x1ec4('0x40')][_0x1ec4('0x26')][_0x1ec4('0x52')]()),_0x164d25);return respondWithRpcPromise(_0x1ec4('0x47'),'update',{'module':_0x1ec4('0x55')});}})['then'](function(_0x37bafa){if(_0x37bafa){return _0x9d855b;}return null;})[_0x1ec4('0xc')](respondWithResult(_0x25a72c,null))[_0x1ec4('0x3b')](handleError(_0x25a72c,null));};exports[_0x1ec4('0x1d')]=function(_0x29ae34,_0x3b0df3){var _0x2012ad;return db[_0x1ec4('0x24')][_0x1ec4('0x3e')]({'where':{'id':_0x29ae34['params']['id']}})['then'](function(_0xf5081a){_0x2012ad=_0xf5081a;return _0xf5081a;})[_0x1ec4('0xc')](handleEntityNotFound(_0x3b0df3,null))[_0x1ec4('0xc')](removeEntity(_0x3b0df3,null))[_0x1ec4('0xc')](function(){if(_0x2012ad){return db[_0x1ec4('0x24')][_0x1ec4('0x3a')]({'where':{'type':_0x2012ad[_0x1ec4('0x26')]},'raw':!![]});}})[_0x1ec4('0xc')](function(_0x249c45){if(_0x2012ad['type'][_0x1ec4('0x41')]()=='STUN'){var _0x2ddf26=fs[_0x1ec4('0x43')](path[_0x1ec4('0x4a')](config[_0x1ec4('0x4b')],_0x1ec4('0x44')),_0x1ec4('0x45'));var _0x48abcd=ejs[_0x1ec4('0x4d')](_0x2ddf26,{'networks':_0x249c45||[]});fs[_0x1ec4('0x4e')](_0x1ec4('0x46'),_0x48abcd);return respondWithRpcPromise(_0x1ec4('0x47'),_0x1ec4('0x1d'),{'module':'res_stun_monitor.so'});}else if(_0x2012ad['type'][_0x1ec4('0x41')]()==_0x1ec4('0x49')){var _0x4c1419=fs['readFileSync'](path['join'](config[_0x1ec4('0x4b')],_0x1ec4('0x4c')),_0x1ec4('0x45'));var _0x222201=ejs[_0x1ec4('0x4d')](_0x4c1419,{'networks':_0x249c45||[]});fs['writeFileSync']('/etc/asterisk/turn_xcally.conf',_0x222201);return respondWithRpcPromise(_0x1ec4('0x47'),_0x1ec4('0x1d'),{'module':_0x1ec4('0x48')});}else{var _0x133673=fs[_0x1ec4('0x43')](path[_0x1ec4('0x4a')](config[_0x1ec4('0x4b')],_0x1ec4('0x4f')),_0x1ec4('0x45'));var _0x10081a=ejs['render'](_0x133673,{'networks':_0x249c45||[]});fs[_0x1ec4('0x4e')](util['format'](_0x1ec4('0x51'),_0x2012ad[_0x1ec4('0x26')]['toLowerCase']()),_0x10081a);return respondWithRpcPromise(_0x1ec4('0x47'),_0x1ec4('0x1d'),{'module':'chan_sip.so'});}})[_0x1ec4('0x3b')](handleError(_0x3b0df3,null));};