faec91b792ebac1223e789ec7976d821337aafd9
[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 _0xf1d2=['count','offset','Content-Range','json','apply','save','update','destroy','stack','name','send','index','map','Network','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','merge','VIRTUAL','options','include','findAll','rows','show','includeAll','find','create','sequelize','transaction','body','STUN','readFileSync','join','server/files/templates/stun_multiple.ejs','utf8','writeFileSync','/etc/asterisk/stun_xcally.conf','res_stun_monitor.so','toUpperCase','TURN','root','render','Reload','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','params','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','then','info','Network,\x20%s,\x20%s','Network,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','sendStatus','status','end'];(function(_0x43b618,_0x347edd){var _0x591872=function(_0x401be9){while(--_0x401be9){_0x43b618['push'](_0x43b618['shift']());}};_0x591872(++_0x347edd);}(_0xf1d2,0x11f));var _0x2f1d=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0xf1d2[_0x59ee6f];return _0x4c0979;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x2f1d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x2f1d('0x1'));var jsonpatch=require(_0x2f1d('0x2'));var rp=require(_0x2f1d('0x3'));var moment=require(_0x2f1d('0x4'));var BPromise=require(_0x2f1d('0x5'));var Mustache=require(_0x2f1d('0x6'));var util=require(_0x2f1d('0x7'));var path=require(_0x2f1d('0x8'));var sox=require(_0x2f1d('0x9'));var csv=require(_0x2f1d('0xa'));var ejs=require(_0x2f1d('0xb'));var fs=require('fs');var _=require(_0x2f1d('0xc'));var squel=require(_0x2f1d('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x2f1d('0xe'));var toCsv=require(_0x2f1d('0xa'));var querystring=require(_0x2f1d('0xf'));var Papa=require(_0x2f1d('0x10'));var Redis=require(_0x2f1d('0x11'));var authService=require(_0x2f1d('0x12'));var qs=require(_0x2f1d('0x13'));var as=require(_0x2f1d('0x14'));var hardwareService=require(_0x2f1d('0x15'));var logger=require('../../config/logger')(_0x2f1d('0x16'));var utils=require(_0x2f1d('0x17'));var config=require(_0x2f1d('0x18'));var licenseUtil=require(_0x2f1d('0x19'));var db=require(_0x2f1d('0x1a'))['db'];var jayson=require(_0x2f1d('0x1b'));var client=jayson[_0x2f1d('0x1c')][_0x2f1d('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0xd5d5bd,_0x2c5c9b,_0x466aad,_0x5b2700){return new BPromise(function(_0xfdcee9,_0x5385bf){var _0x5ee6c9=_0x5b2700||client;return _0x5ee6c9['request'](_0xd5d5bd,_0x466aad)[_0x2f1d('0x1e')](function(_0x2dd7de){logger[_0x2f1d('0x1f')](_0x2f1d('0x20'),_0x2c5c9b,'request\x20sent');logger['debug'](_0x2f1d('0x21'),_0x2c5c9b,_0x2f1d('0x22'),JSON['stringify'](_0x2dd7de));if(_0x2dd7de[_0x2f1d('0x23')]){if(_0x2dd7de[_0x2f1d('0x23')][_0x2f1d('0x24')]===0x1f4){logger[_0x2f1d('0x23')](_0x2f1d('0x20'),_0x2c5c9b,_0x2dd7de['error']['message']);return _0x5385bf(_0x2dd7de[_0x2f1d('0x23')][_0x2f1d('0x25')]);}logger[_0x2f1d('0x23')](_0x2f1d('0x20'),_0x2c5c9b,_0x2dd7de['error'][_0x2f1d('0x25')]);return _0xfdcee9(_0x2dd7de[_0x2f1d('0x23')][_0x2f1d('0x25')]);}else{logger[_0x2f1d('0x1f')](_0x2f1d('0x20'),_0x2c5c9b,_0x2f1d('0x22'));_0xfdcee9(_0x2dd7de[_0x2f1d('0x26')][_0x2f1d('0x25')]);}})[_0x2f1d('0x27')](function(_0x5df324){logger[_0x2f1d('0x23')]('Network,\x20%s,\x20%s',_0x2c5c9b,_0x5df324);_0x5385bf(_0x5df324);});});}function respondWithStatusCode(_0x18fba0,_0x826d23){_0x826d23=_0x826d23||0xcc;return function(_0x15120f){if(_0x15120f){return _0x18fba0[_0x2f1d('0x28')](_0x826d23);}return _0x18fba0[_0x2f1d('0x29')](_0x826d23)[_0x2f1d('0x2a')]();};}function respondWithResult(_0x1e50e1,_0x40361a){_0x40361a=_0x40361a||0xc8;return function(_0x4edc56){if(_0x4edc56){return _0x1e50e1[_0x2f1d('0x29')](_0x40361a)['json'](_0x4edc56);}};}function respondWithFilteredResult(_0x26e8dd,_0x5e470e){return function(_0x23ed4a){if(_0x23ed4a){var _0x555c16=_0x23ed4a[_0x2f1d('0x2b')],_0x2b95e6=_0x5e470e[_0x2f1d('0x2c')],_0x8600fb=_0x5e470e[_0x2f1d('0x2c')]+_0x5e470e['limit'],_0x18917f;if(_0x8600fb>=_0x555c16){_0x8600fb=_0x555c16;_0x18917f=0xc8;}else{_0x18917f=0xce;}_0x26e8dd[_0x2f1d('0x29')](_0x18917f);return _0x26e8dd['set'](_0x2f1d('0x2d'),_0x2b95e6+'-'+_0x8600fb+'/'+_0x555c16)[_0x2f1d('0x2e')](_0x23ed4a);}return null;};}function patchUpdates(_0x253e60){return function(_0x3f68a1){try{jsonpatch[_0x2f1d('0x2f')](_0x3f68a1,_0x253e60,!![]);}catch(_0x3fbc8c){return BPromise['reject'](_0x3fbc8c);}return _0x3f68a1[_0x2f1d('0x30')]();};}function saveUpdates(_0x27b541,_0x5f2ebc){return function(_0xd97b8f){if(_0xd97b8f){return _0xd97b8f[_0x2f1d('0x31')](_0x27b541)[_0x2f1d('0x1e')](function(_0x2426f3){return _0x2426f3;});}return null;};}function removeEntity(_0x13503d,_0x2bc634){return function(_0x1ec52d){if(_0x1ec52d){return _0x1ec52d[_0x2f1d('0x32')]()['then'](function(){_0x13503d['status'](0xcc)[_0x2f1d('0x2a')]();});}};}function handleEntityNotFound(_0x39ec40,_0x34e424){return function(_0x21d1e2){if(!_0x21d1e2){_0x39ec40[_0x2f1d('0x28')](0x194);}return _0x21d1e2;};}function handleError(_0x298816,_0x5a280b){_0x5a280b=_0x5a280b||0x1f4;return function(_0x26666f){logger[_0x2f1d('0x23')](_0x26666f[_0x2f1d('0x33')]);if(_0x26666f[_0x2f1d('0x34')]){delete _0x26666f[_0x2f1d('0x34')];}_0x298816[_0x2f1d('0x29')](_0x5a280b)[_0x2f1d('0x35')](_0x26666f);};}exports[_0x2f1d('0x36')]=function(_0x323a61,_0x561ab5){var _0x400c59={},_0x26c7ea={},_0x4970d4={'count':0x0,'rows':[]};var _0x239c99=_[_0x2f1d('0x37')](db[_0x2f1d('0x38')][_0x2f1d('0x39')],function(_0x9a37b6){return{'name':_0x9a37b6[_0x2f1d('0x3a')],'type':_0x9a37b6[_0x2f1d('0x3b')][_0x2f1d('0x3c')]};});_0x26c7ea['model']=_[_0x2f1d('0x37')](_0x239c99,'name');_0x26c7ea[_0x2f1d('0x3d')]=_[_0x2f1d('0x3e')](_0x323a61[_0x2f1d('0x3d')]);_0x26c7ea[_0x2f1d('0x3f')]=_[_0x2f1d('0x40')](_0x26c7ea['model'],_0x26c7ea[_0x2f1d('0x3d')]);_0x400c59[_0x2f1d('0x41')]=_['intersection'](_0x26c7ea[_0x2f1d('0x42')],qs[_0x2f1d('0x43')](_0x323a61['query']['fields']));_0x400c59[_0x2f1d('0x41')]=_0x400c59[_0x2f1d('0x41')][_0x2f1d('0x44')]?_0x400c59[_0x2f1d('0x41')]:_0x26c7ea['model'];if(!_0x323a61[_0x2f1d('0x3d')][_0x2f1d('0x45')](_0x2f1d('0x46'))){_0x400c59['limit']=qs[_0x2f1d('0x47')](_0x323a61['query'][_0x2f1d('0x47')]);_0x400c59[_0x2f1d('0x2c')]=qs[_0x2f1d('0x2c')](_0x323a61[_0x2f1d('0x3d')]['offset']);}_0x400c59[_0x2f1d('0x48')]=qs[_0x2f1d('0x49')](_0x323a61[_0x2f1d('0x3d')][_0x2f1d('0x49')]);_0x400c59[_0x2f1d('0x4a')]=qs[_0x2f1d('0x3f')](_[_0x2f1d('0x4b')](_0x323a61[_0x2f1d('0x3d')],_0x26c7ea[_0x2f1d('0x3f')]),_0x239c99);if(_0x323a61[_0x2f1d('0x3d')]['filter']){_0x400c59[_0x2f1d('0x4a')]=_[_0x2f1d('0x4c')](_0x400c59[_0x2f1d('0x4a')],{'$or':_['map'](_0x239c99,function(_0x1ac6ae){if(_0x1ac6ae[_0x2f1d('0x3b')]!==_0x2f1d('0x4d')){var _0x28851d={};_0x28851d[_0x1ac6ae[_0x2f1d('0x34')]]={'$like':'%'+_0x323a61[_0x2f1d('0x3d')]['filter']+'%'};return _0x28851d;}})});}_0x400c59=_[_0x2f1d('0x4c')]({},_0x400c59,_0x323a61[_0x2f1d('0x4e')]);var _0x156348={'where':_0x400c59['where']};return db[_0x2f1d('0x38')][_0x2f1d('0x2b')](_0x156348)[_0x2f1d('0x1e')](function(_0x5e67c4){_0x4970d4['count']=_0x5e67c4;if(_0x323a61[_0x2f1d('0x3d')]['includeAll']){_0x400c59[_0x2f1d('0x4f')]=[{'all':!![]}];}return db[_0x2f1d('0x38')][_0x2f1d('0x50')](_0x400c59);})[_0x2f1d('0x1e')](function(_0x549f23){_0x4970d4[_0x2f1d('0x51')]=_0x549f23;return _0x4970d4;})[_0x2f1d('0x1e')](respondWithFilteredResult(_0x561ab5,_0x400c59))[_0x2f1d('0x27')](handleError(_0x561ab5,null));};exports[_0x2f1d('0x52')]=function(_0xd4bb21,_0x4a3324){var _0x145f74={'raw':!![],'where':{'id':_0xd4bb21['params']['id']}},_0x4913fb={};_0x4913fb[_0x2f1d('0x42')]=_[_0x2f1d('0x3e')](db[_0x2f1d('0x38')][_0x2f1d('0x39')]);_0x4913fb['query']=_[_0x2f1d('0x3e')](_0xd4bb21[_0x2f1d('0x3d')]);_0x4913fb[_0x2f1d('0x3f')]=_[_0x2f1d('0x40')](_0x4913fb[_0x2f1d('0x42')],_0x4913fb['query']);_0x145f74[_0x2f1d('0x41')]=_[_0x2f1d('0x40')](_0x4913fb[_0x2f1d('0x42')],qs[_0x2f1d('0x43')](_0xd4bb21[_0x2f1d('0x3d')]['fields']));_0x145f74['attributes']=_0x145f74['attributes'][_0x2f1d('0x44')]?_0x145f74[_0x2f1d('0x41')]:_0x4913fb['model'];if(_0xd4bb21['query'][_0x2f1d('0x53')]){_0x145f74['include']=[{'all':!![]}];}_0x145f74=_['merge']({},_0x145f74,_0xd4bb21[_0x2f1d('0x4e')]);return db[_0x2f1d('0x38')][_0x2f1d('0x54')](_0x145f74)[_0x2f1d('0x1e')](handleEntityNotFound(_0x4a3324,null))[_0x2f1d('0x1e')](respondWithResult(_0x4a3324,null))[_0x2f1d('0x27')](handleError(_0x4a3324,null));};exports[_0x2f1d('0x55')]=function(_0x52d36a,_0x316fb6,_0x18a8ae){var _0x5b4275;return db[_0x2f1d('0x56')][_0x2f1d('0x57')](function(_0x599644){return db['Network'][_0x2f1d('0x55')](_0x52d36a[_0x2f1d('0x58')],{'raw':!![]})[_0x2f1d('0x1e')](function(_0x3f0982){_0x5b4275=_0x3f0982;return db[_0x2f1d('0x38')][_0x2f1d('0x50')]({'where':{'type':_0x52d36a[_0x2f1d('0x58')]['type']},'raw':!![]});})[_0x2f1d('0x1e')](function(_0x3993bf){if(_0x5b4275[_0x2f1d('0x3b')]['toUpperCase']()==_0x2f1d('0x59')){var _0x187dae=fs[_0x2f1d('0x5a')](path[_0x2f1d('0x5b')](config['root'],_0x2f1d('0x5c')),_0x2f1d('0x5d'));var _0x49e6b2=ejs['render'](_0x187dae,{'networks':_0x3993bf||[]});fs[_0x2f1d('0x5e')](_0x2f1d('0x5f'),_0x49e6b2);return respondWithRpcPromise('Reload','create',{'module':_0x2f1d('0x60')});}else if(_0x5b4275[_0x2f1d('0x3b')][_0x2f1d('0x61')]()==_0x2f1d('0x62')){var _0x184f28=fs[_0x2f1d('0x5a')](path['join'](config[_0x2f1d('0x63')],'server/files/templates/turn_multiple.ejs'),_0x2f1d('0x5d'));var _0x53e63b=ejs[_0x2f1d('0x64')](_0x184f28,{'networks':_0x3993bf||[]});fs[_0x2f1d('0x5e')]('/etc/asterisk/turn_xcally.conf',_0x53e63b);return respondWithRpcPromise(_0x2f1d('0x65'),_0x2f1d('0x55'),{'module':_0x2f1d('0x60')});}else{var _0x5b653=fs['readFileSync'](path[_0x2f1d('0x5b')](config[_0x2f1d('0x63')],_0x2f1d('0x66')),'utf8');var _0x331dea=ejs[_0x2f1d('0x64')](_0x5b653,{'networks':_0x3993bf||[]});fs[_0x2f1d('0x5e')](util[_0x2f1d('0x67')](_0x2f1d('0x68'),_0x52d36a[_0x2f1d('0x58')][_0x2f1d('0x3b')][_0x2f1d('0x69')]()),_0x331dea);return respondWithRpcPromise(_0x2f1d('0x65'),_0x2f1d('0x55'),{'module':_0x2f1d('0x6a')});}return null;})['then'](function(){return _0x5b4275;});})[_0x2f1d('0x1e')](respondWithResult(_0x316fb6,0xc9))[_0x2f1d('0x27')](handleError(_0x316fb6,null));};exports['update']=function(_0x273158,_0xf687d2,_0x41a8a7){var _0x161ae7;return db[_0x2f1d('0x56')][_0x2f1d('0x57')](function(_0x2e8039){return db['Network'][_0x2f1d('0x54')]({'where':{'id':_0x273158['params']['id']}})[_0x2f1d('0x1e')](handleEntityNotFound(_0xf687d2,null))[_0x2f1d('0x1e')](saveUpdates(_0x273158[_0x2f1d('0x58')],null))[_0x2f1d('0x1e')](function(_0x1fffc4){if(_0x1fffc4){_0x161ae7=_0x1fffc4;return db[_0x2f1d('0x38')][_0x2f1d('0x50')]({'where':{'type':_0x161ae7[_0x2f1d('0x3b')]},'raw':!![]});}return null;})[_0x2f1d('0x1e')](function(_0x150b8f){if(_0x161ae7[_0x2f1d('0x3b')][_0x2f1d('0x61')]()==_0x2f1d('0x59')){var _0x4fb14e=fs[_0x2f1d('0x5a')](path['join'](config['root'],_0x2f1d('0x5c')),_0x2f1d('0x5d'));var _0x4cd395=ejs['render'](_0x4fb14e,{'networks':_0x150b8f||[]});fs[_0x2f1d('0x5e')](_0x2f1d('0x5f'),_0x4cd395);return respondWithRpcPromise(_0x2f1d('0x65'),_0x2f1d('0x31'),{'module':'res_stun_monitor.so'});}else if(_0x161ae7[_0x2f1d('0x3b')]['toUpperCase']()==_0x2f1d('0x62')){var _0x424d9c=fs[_0x2f1d('0x5a')](path[_0x2f1d('0x5b')](config['root'],_0x2f1d('0x6b')),_0x2f1d('0x5d'));var _0x1ae443=ejs['render'](_0x424d9c,{'networks':_0x150b8f||[]});fs[_0x2f1d('0x5e')](_0x2f1d('0x6c'),_0x1ae443);return respondWithRpcPromise(_0x2f1d('0x65'),_0x2f1d('0x31'),{'module':'res_stun_monitor.so'});}else{var _0x5d1bf5=fs['readFileSync'](path[_0x2f1d('0x5b')](config[_0x2f1d('0x63')],_0x2f1d('0x66')),_0x2f1d('0x5d'));var _0x39ad63=ejs[_0x2f1d('0x64')](_0x5d1bf5,{'networks':_0x150b8f||[]});fs[_0x2f1d('0x5e')](util[_0x2f1d('0x67')]('/etc/asterisk/sip_xcally_%s.conf',_0x273158[_0x2f1d('0x58')][_0x2f1d('0x3b')][_0x2f1d('0x69')]()),_0x39ad63);return respondWithRpcPromise('Reload',_0x2f1d('0x31'),{'module':'chan_sip.so'});}return null;})[_0x2f1d('0x1e')](function(_0x20e369){if(_0x20e369){return _0x161ae7;}return null;});})[_0x2f1d('0x1e')](respondWithResult(_0xf687d2,null))['catch'](handleError(_0xf687d2,null));};exports['destroy']=function(_0x1fd956,_0x18751b,_0x4cc455){var _0x547afa;return db[_0x2f1d('0x38')][_0x2f1d('0x54')]({'where':{'id':_0x1fd956[_0x2f1d('0x6d')]['id']}})[_0x2f1d('0x1e')](function(_0x45f251){_0x547afa=_0x45f251;return _0x45f251;})['then'](handleEntityNotFound(_0x18751b,null))[_0x2f1d('0x1e')](removeEntity(_0x18751b,null))['then'](function(){if(_0x547afa){return db['Network'][_0x2f1d('0x50')]({'where':{'type':_0x547afa[_0x2f1d('0x3b')]},'raw':!![]});}})['then'](function(_0x27e5d0){if(_0x547afa[_0x2f1d('0x3b')][_0x2f1d('0x61')]()==_0x2f1d('0x59')){var _0x4a4943=fs[_0x2f1d('0x5a')](path[_0x2f1d('0x5b')](config[_0x2f1d('0x63')],_0x2f1d('0x5c')),_0x2f1d('0x5d'));var _0x4ef6f4=ejs['render'](_0x4a4943,{'networks':_0x27e5d0||[]});fs['writeFileSync'](_0x2f1d('0x5f'),_0x4ef6f4);return respondWithRpcPromise('Reload',_0x2f1d('0x32'),{'module':'res_stun_monitor.so'});}else if(_0x547afa['type']['toUpperCase']()==_0x2f1d('0x62')){var _0x180ba3=fs[_0x2f1d('0x5a')](path[_0x2f1d('0x5b')](config[_0x2f1d('0x63')],_0x2f1d('0x6b')),_0x2f1d('0x5d'));var _0x296b25=ejs['render'](_0x180ba3,{'networks':_0x27e5d0||[]});fs[_0x2f1d('0x5e')]('/etc/asterisk/turn_xcally.conf',_0x296b25);return respondWithRpcPromise(_0x2f1d('0x65'),_0x2f1d('0x32'),{'module':_0x2f1d('0x60')});}else{var _0x57110e=fs['readFileSync'](path['join'](config[_0x2f1d('0x63')],_0x2f1d('0x66')),_0x2f1d('0x5d'));var _0x21d84d=ejs[_0x2f1d('0x64')](_0x57110e,{'networks':_0x27e5d0||[]});fs[_0x2f1d('0x5e')](util[_0x2f1d('0x67')](_0x2f1d('0x68'),_0x1fd956[_0x2f1d('0x58')][_0x2f1d('0x3b')][_0x2f1d('0x69')]()),_0x21d84d);return respondWithRpcPromise('Reload',_0x2f1d('0x32'),{'module':'chan_sip.so'});}return null;})[_0x2f1d('0x27')](handleError(_0x18751b,null));};