374dbde83ca7dd70bee946bf08f68f49d81ce24d
[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 _0x70a7=['json','offset','limit','set','Content-Range','apply','save','stack','name','send','index','map','Network','fieldName','key','model','keys','query','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','filter','merge','type','VIRTUAL','count','include','findAll','rows','show','rawAttributes','length','includeAll','find','create','sequelize','transaction','body','toUpperCase','STUN','readFileSync','join','root','utf8','render','/etc/asterisk/stun_xcally.conf','res_stun_monitor.so','TURN','server/files/templates/turn_multiple.ejs','writeFileSync','/etc/asterisk/turn_xcally.conf','Reload','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','update','params','server/files/templates/stun_multiple.ejs','destroy','html-pdf','eml-format','rimraf','zip-dir','moment','bluebird','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise','client','request','then','info','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','error','code','message','Network,\x20%s,\x20%s','result','catch','status','end'];(function(_0x1c4dde,_0x3a2057){var _0xa90920=function(_0x517f04){while(--_0x517f04){_0x1c4dde['push'](_0x1c4dde['shift']());}};_0xa90920(++_0x3a2057);}(_0x70a7,0xae));var _0x770a=function(_0x16e57d,_0x2cb7ba){_0x16e57d=_0x16e57d-0x0;var _0x40239c=_0x70a7[_0x16e57d];return _0x40239c;};'use strict';var pdf=require(_0x770a('0x0'));var emlformat=require(_0x770a('0x1'));var rimraf=require(_0x770a('0x2'));var zipdir=require(_0x770a('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x770a('0x4'));var BPromise=require(_0x770a('0x5'));var Mustache=require('mustache');var util=require(_0x770a('0x6'));var path=require('path');var sox=require(_0x770a('0x7'));var csv=require(_0x770a('0x8'));var ejs=require(_0x770a('0x9'));var fs=require('fs');var _=require(_0x770a('0xa'));var squel=require('squel');var crypto=require(_0x770a('0xb'));var jsforce=require(_0x770a('0xc'));var deskjs=require(_0x770a('0xd'));var toCsv=require(_0x770a('0x8'));var querystring=require(_0x770a('0xe'));var Papa=require(_0x770a('0xf'));var Redis=require(_0x770a('0x10'));var authService=require(_0x770a('0x11'));var qs=require(_0x770a('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x770a('0x13'));var logger=require('../../config/logger')(_0x770a('0x14'));var utils=require(_0x770a('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x770a('0x16'));var db=require(_0x770a('0x17'))['db'];var jayson=require(_0x770a('0x18'));var client=jayson[_0x770a('0x19')]['http']({'port':0x232a});function respondWithRpcPromise(_0x7cb148,_0x313933,_0x3b8050,_0x372399){return new BPromise(function(_0x3b651d,_0x2cf901){var _0x24d2f5=_0x372399||client;return _0x24d2f5[_0x770a('0x1a')](_0x7cb148,_0x3b8050)[_0x770a('0x1b')](function(_0x174fcc){logger[_0x770a('0x1c')]('Network,\x20%s,\x20%s',_0x313933,_0x770a('0x1d'));logger[_0x770a('0x1e')](_0x770a('0x1f'),_0x313933,_0x770a('0x1d'),JSON['stringify'](_0x174fcc));if(_0x174fcc[_0x770a('0x20')]){if(_0x174fcc['error'][_0x770a('0x21')]===0x1f4){logger[_0x770a('0x20')]('Network,\x20%s,\x20%s',_0x313933,_0x174fcc[_0x770a('0x20')]['message']);return _0x2cf901(_0x174fcc[_0x770a('0x20')][_0x770a('0x22')]);}logger[_0x770a('0x20')](_0x770a('0x23'),_0x313933,_0x174fcc['error']['message']);return _0x3b651d(_0x174fcc['error']['message']);}else{logger['info'](_0x770a('0x23'),_0x313933,_0x770a('0x1d'));_0x3b651d(_0x174fcc[_0x770a('0x24')][_0x770a('0x22')]);}})[_0x770a('0x25')](function(_0x4a4363){logger[_0x770a('0x20')](_0x770a('0x23'),_0x313933,_0x4a4363);_0x2cf901(_0x4a4363);});});}function respondWithStatusCode(_0x4cd250,_0x59ad2f){_0x59ad2f=_0x59ad2f||0xcc;return function(_0x141a43){if(_0x141a43){return _0x4cd250['sendStatus'](_0x59ad2f);}return _0x4cd250[_0x770a('0x26')](_0x59ad2f)[_0x770a('0x27')]();};}function respondWithResult(_0x99b890,_0x206cb2){_0x206cb2=_0x206cb2||0xc8;return function(_0xfbed77){if(_0xfbed77){return _0x99b890['status'](_0x206cb2)[_0x770a('0x28')](_0xfbed77);}};}function respondWithFilteredResult(_0x29c998,_0x2e0038){return function(_0x7e4846){if(_0x7e4846){var _0x3eaf67=_0x7e4846['count'],_0x3bbe35=_0x2e0038[_0x770a('0x29')],_0x5e25bb=_0x2e0038[_0x770a('0x29')]+_0x2e0038[_0x770a('0x2a')],_0x51c3b2;if(_0x5e25bb>=_0x3eaf67){_0x5e25bb=_0x3eaf67;_0x51c3b2=0xc8;}else{_0x51c3b2=0xce;}_0x29c998[_0x770a('0x26')](_0x51c3b2);return _0x29c998[_0x770a('0x2b')](_0x770a('0x2c'),_0x3bbe35+'-'+_0x5e25bb+'/'+_0x3eaf67)[_0x770a('0x28')](_0x7e4846);}return null;};}function patchUpdates(_0x66f006){return function(_0x3ae307){try{jsonpatch[_0x770a('0x2d')](_0x3ae307,_0x66f006,!![]);}catch(_0x27b0df){return BPromise['reject'](_0x27b0df);}return _0x3ae307[_0x770a('0x2e')]();};}function saveUpdates(_0x46ac2c,_0x2fcd8b){return function(_0x547d99){if(_0x547d99){return _0x547d99['update'](_0x46ac2c)[_0x770a('0x1b')](function(_0x194ce5){return _0x194ce5;});}return null;};}function removeEntity(_0x101775,_0x21abae){return function(_0x1c314c){if(_0x1c314c){return _0x1c314c['destroy']()[_0x770a('0x1b')](function(){_0x101775['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5af415,_0x205faf){return function(_0x3141b7){if(!_0x3141b7){_0x5af415['sendStatus'](0x194);}return _0x3141b7;};}function handleError(_0x24ad6b,_0x47a460){_0x47a460=_0x47a460||0x1f4;return function(_0x28b962){logger['error'](_0x28b962[_0x770a('0x2f')]);if(_0x28b962['name']){delete _0x28b962[_0x770a('0x30')];}_0x24ad6b[_0x770a('0x26')](_0x47a460)[_0x770a('0x31')](_0x28b962);};}exports[_0x770a('0x32')]=function(_0x176cd8,_0x36a8e1){var _0x1fecb5={},_0x343202={},_0x35c6cb={'count':0x0,'rows':[]};var _0x417fd5=_[_0x770a('0x33')](db[_0x770a('0x34')]['rawAttributes'],function(_0x41d9df){return{'name':_0x41d9df[_0x770a('0x35')],'type':_0x41d9df['type'][_0x770a('0x36')]};});_0x343202[_0x770a('0x37')]=_['map'](_0x417fd5,_0x770a('0x30'));_0x343202['query']=_[_0x770a('0x38')](_0x176cd8[_0x770a('0x39')]);_0x343202[_0x770a('0x3a')]=_['intersection'](_0x343202['model'],_0x343202['query']);_0x1fecb5['attributes']=_[_0x770a('0x3b')](_0x343202[_0x770a('0x37')],qs[_0x770a('0x3c')](_0x176cd8[_0x770a('0x39')][_0x770a('0x3c')]));_0x1fecb5[_0x770a('0x3d')]=_0x1fecb5[_0x770a('0x3d')]['length']?_0x1fecb5[_0x770a('0x3d')]:_0x343202[_0x770a('0x37')];if(!_0x176cd8['query'][_0x770a('0x3e')]('nolimit')){_0x1fecb5['limit']=qs[_0x770a('0x2a')](_0x176cd8[_0x770a('0x39')]['limit']);_0x1fecb5[_0x770a('0x29')]=qs[_0x770a('0x29')](_0x176cd8['query']['offset']);}_0x1fecb5[_0x770a('0x3f')]=qs['sort'](_0x176cd8['query'][_0x770a('0x40')]);_0x1fecb5[_0x770a('0x41')]=qs[_0x770a('0x3a')](_[_0x770a('0x42')](_0x176cd8[_0x770a('0x39')],_0x343202[_0x770a('0x3a')]),_0x417fd5);if(_0x176cd8[_0x770a('0x39')][_0x770a('0x43')]){_0x1fecb5['where']=_[_0x770a('0x44')](_0x1fecb5[_0x770a('0x41')],{'$or':_[_0x770a('0x33')](_0x417fd5,function(_0x3594e0){if(_0x3594e0[_0x770a('0x45')]!==_0x770a('0x46')){var _0x56af85={};_0x56af85[_0x3594e0[_0x770a('0x30')]]={'$like':'%'+_0x176cd8[_0x770a('0x39')][_0x770a('0x43')]+'%'};return _0x56af85;}})});}_0x1fecb5=_[_0x770a('0x44')]({},_0x1fecb5,_0x176cd8['options']);var _0x3f3bda={'where':_0x1fecb5[_0x770a('0x41')]};return db[_0x770a('0x34')][_0x770a('0x47')](_0x3f3bda)[_0x770a('0x1b')](function(_0x5d9aee){_0x35c6cb[_0x770a('0x47')]=_0x5d9aee;if(_0x176cd8[_0x770a('0x39')]['includeAll']){_0x1fecb5[_0x770a('0x48')]=[{'all':!![]}];}return db['Network'][_0x770a('0x49')](_0x1fecb5);})[_0x770a('0x1b')](function(_0x45b6df){_0x35c6cb[_0x770a('0x4a')]=_0x45b6df;return _0x35c6cb;})['then'](respondWithFilteredResult(_0x36a8e1,_0x1fecb5))[_0x770a('0x25')](handleError(_0x36a8e1,null));};exports[_0x770a('0x4b')]=function(_0x23fa1b,_0x3adb5b){var _0x12138a={'raw':!![],'where':{'id':_0x23fa1b['params']['id']}},_0x256422={};_0x256422[_0x770a('0x37')]=_[_0x770a('0x38')](db['Network'][_0x770a('0x4c')]);_0x256422[_0x770a('0x39')]=_[_0x770a('0x38')](_0x23fa1b[_0x770a('0x39')]);_0x256422[_0x770a('0x3a')]=_[_0x770a('0x3b')](_0x256422[_0x770a('0x37')],_0x256422[_0x770a('0x39')]);_0x12138a[_0x770a('0x3d')]=_['intersection'](_0x256422[_0x770a('0x37')],qs[_0x770a('0x3c')](_0x23fa1b['query']['fields']));_0x12138a['attributes']=_0x12138a[_0x770a('0x3d')][_0x770a('0x4d')]?_0x12138a[_0x770a('0x3d')]:_0x256422[_0x770a('0x37')];if(_0x23fa1b[_0x770a('0x39')][_0x770a('0x4e')]){_0x12138a[_0x770a('0x48')]=[{'all':!![]}];}_0x12138a=_['merge']({},_0x12138a,_0x23fa1b['options']);return db['Network'][_0x770a('0x4f')](_0x12138a)['then'](handleEntityNotFound(_0x3adb5b,null))[_0x770a('0x1b')](respondWithResult(_0x3adb5b,null))[_0x770a('0x25')](handleError(_0x3adb5b,null));};exports[_0x770a('0x50')]=function(_0xd2210,_0x5d898c,_0x55487b){var _0x50b807;return db[_0x770a('0x51')][_0x770a('0x52')](function(_0x33e8cb){return db[_0x770a('0x34')][_0x770a('0x50')](_0xd2210[_0x770a('0x53')],{'raw':!![]})[_0x770a('0x1b')](function(_0x21a155){_0x50b807=_0x21a155;return db[_0x770a('0x34')][_0x770a('0x49')]({'where':{'type':_0xd2210[_0x770a('0x53')][_0x770a('0x45')]},'raw':!![]});})['then'](function(_0x1beef9){if(_0x50b807[_0x770a('0x45')][_0x770a('0x54')]()==_0x770a('0x55')){var _0x369917=fs[_0x770a('0x56')](path[_0x770a('0x57')](config[_0x770a('0x58')],'server/files/templates/stun_multiple.ejs'),_0x770a('0x59'));var _0x1b8fb2=ejs[_0x770a('0x5a')](_0x369917,{'networks':_0x1beef9||[]});fs['writeFileSync'](_0x770a('0x5b'),_0x1b8fb2);return respondWithRpcPromise('Reload','create',{'module':_0x770a('0x5c')});}else if(_0x50b807[_0x770a('0x45')][_0x770a('0x54')]()==_0x770a('0x5d')){var _0x2fff1c=fs['readFileSync'](path[_0x770a('0x57')](config[_0x770a('0x58')],_0x770a('0x5e')),_0x770a('0x59'));var _0x4ad231=ejs[_0x770a('0x5a')](_0x2fff1c,{'networks':_0x1beef9||[]});fs[_0x770a('0x5f')](_0x770a('0x60'),_0x4ad231);return respondWithRpcPromise(_0x770a('0x61'),_0x770a('0x50'),{'module':_0x770a('0x5c')});}else{var _0x1cc0f8=fs[_0x770a('0x56')](path['join'](config[_0x770a('0x58')],_0x770a('0x62')),'utf8');var _0x3fad18=ejs[_0x770a('0x5a')](_0x1cc0f8,{'networks':_0x1beef9||[]});fs[_0x770a('0x5f')](util[_0x770a('0x63')](_0x770a('0x64'),_0xd2210[_0x770a('0x53')][_0x770a('0x45')][_0x770a('0x65')]()),_0x3fad18);return respondWithRpcPromise(_0x770a('0x61'),_0x770a('0x50'),{'module':_0x770a('0x66')});}return null;})[_0x770a('0x1b')](function(){return _0x50b807;});})[_0x770a('0x1b')](respondWithResult(_0x5d898c,0xc9))['catch'](handleError(_0x5d898c,null));};exports[_0x770a('0x67')]=function(_0x4d8bd6,_0x23f756,_0x1f47d6){var _0x57c844;return db[_0x770a('0x51')][_0x770a('0x52')](function(_0x4703e6){return db['Network'][_0x770a('0x4f')]({'where':{'id':_0x4d8bd6[_0x770a('0x68')]['id']}})[_0x770a('0x1b')](handleEntityNotFound(_0x23f756,null))[_0x770a('0x1b')](saveUpdates(_0x4d8bd6[_0x770a('0x53')],null))['then'](function(_0x4c1ce1){if(_0x4c1ce1){_0x57c844=_0x4c1ce1;return db['Network']['findAll']({'where':{'type':_0x57c844[_0x770a('0x45')]},'raw':!![]});}return null;})[_0x770a('0x1b')](function(_0x47b7ed){if(_0x57c844[_0x770a('0x45')][_0x770a('0x54')]()=='STUN'){var _0x5ebaf5=fs[_0x770a('0x56')](path[_0x770a('0x57')](config[_0x770a('0x58')],_0x770a('0x69')),_0x770a('0x59'));var _0x476c6c=ejs[_0x770a('0x5a')](_0x5ebaf5,{'networks':_0x47b7ed||[]});fs[_0x770a('0x5f')](_0x770a('0x5b'),_0x476c6c);return respondWithRpcPromise(_0x770a('0x61'),_0x770a('0x67'),{'module':_0x770a('0x5c')});}else if(_0x57c844['type'][_0x770a('0x54')]()=='TURN'){var _0x51cc10=fs['readFileSync'](path[_0x770a('0x57')](config[_0x770a('0x58')],'server/files/templates/turn_multiple.ejs'),_0x770a('0x59'));var _0xd29976=ejs[_0x770a('0x5a')](_0x51cc10,{'networks':_0x47b7ed||[]});fs[_0x770a('0x5f')](_0x770a('0x60'),_0xd29976);return respondWithRpcPromise('Reload',_0x770a('0x67'),{'module':'res_stun_monitor.so'});}else{var _0x5e8b90=fs['readFileSync'](path[_0x770a('0x57')](config['root'],_0x770a('0x62')),_0x770a('0x59'));var _0x6069b3=ejs[_0x770a('0x5a')](_0x5e8b90,{'networks':_0x47b7ed||[]});fs['writeFileSync'](util[_0x770a('0x63')](_0x770a('0x64'),_0x4d8bd6[_0x770a('0x53')][_0x770a('0x45')][_0x770a('0x65')]()),_0x6069b3);return respondWithRpcPromise(_0x770a('0x61'),_0x770a('0x67'),{'module':_0x770a('0x66')});}return null;})[_0x770a('0x1b')](function(_0x7dd05){if(_0x7dd05){return _0x57c844;}return null;});})[_0x770a('0x1b')](respondWithResult(_0x23f756,null))[_0x770a('0x25')](handleError(_0x23f756,null));};exports[_0x770a('0x6a')]=function(_0x194018,_0x2b5800,_0x392381){var _0x2edde6;return db[_0x770a('0x34')][_0x770a('0x4f')]({'where':{'id':_0x194018['params']['id']}})[_0x770a('0x1b')](function(_0xfe5fa4){_0x2edde6=_0xfe5fa4;return _0xfe5fa4;})[_0x770a('0x1b')](handleEntityNotFound(_0x2b5800,null))['then'](removeEntity(_0x2b5800,null))[_0x770a('0x1b')](function(){if(_0x2edde6){return db[_0x770a('0x34')]['findAll']({'where':{'type':_0x2edde6[_0x770a('0x45')]},'raw':!![]});}})[_0x770a('0x1b')](function(_0x3ed594){if(_0x2edde6[_0x770a('0x45')]['toUpperCase']()==_0x770a('0x55')){var _0x398164=fs[_0x770a('0x56')](path[_0x770a('0x57')](config[_0x770a('0x58')],_0x770a('0x69')),_0x770a('0x59'));var _0x53e7c9=ejs[_0x770a('0x5a')](_0x398164,{'networks':_0x3ed594||[]});fs[_0x770a('0x5f')](_0x770a('0x5b'),_0x53e7c9);return respondWithRpcPromise('Reload',_0x770a('0x6a'),{'module':_0x770a('0x5c')});}else if(_0x2edde6[_0x770a('0x45')][_0x770a('0x54')]()=='TURN'){var _0x1fe7f5=fs[_0x770a('0x56')](path['join'](config[_0x770a('0x58')],_0x770a('0x5e')),_0x770a('0x59'));var _0x1b70be=ejs['render'](_0x1fe7f5,{'networks':_0x3ed594||[]});fs['writeFileSync'](_0x770a('0x60'),_0x1b70be);return respondWithRpcPromise(_0x770a('0x61'),_0x770a('0x6a'),{'module':'res_stun_monitor.so'});}else{var _0x19f801=fs[_0x770a('0x56')](path[_0x770a('0x57')](config['root'],'server/files/templates/network.ejs'),_0x770a('0x59'));var _0x4d65f9=ejs[_0x770a('0x5a')](_0x19f801,{'networks':_0x3ed594||[]});fs[_0x770a('0x5f')](util[_0x770a('0x63')](_0x770a('0x64'),_0x194018[_0x770a('0x53')][_0x770a('0x45')][_0x770a('0x65')]()),_0x4d65f9);return respondWithRpcPromise('Reload',_0x770a('0x6a'),{'module':_0x770a('0x66')});}return null;})[_0x770a('0x25')](handleError(_0x2b5800,null));};