337f03cdae4a0a30fb9b1bf59adaf417daeada7a
[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 _0x9d00=['STUN','render','TURN','join','server/files/templates/turn_multiple.ejs','utf8','writeFileSync','/etc/asterisk/turn_xcally.conf','Reload','readFileSync','server/files/templates/network.ejs','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','params','root','/etc/asterisk/stun_xcally.conf','format','destroy','res_stun_monitor.so','html-pdf','rimraf','zip-dir','fast-json-patch','moment','mustache','path','sox','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','jayson/promise','http','request','then','Network,\x20%s,\x20%s','debug','Network,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','status','end','count','offset','limit','set','Content-Range','json','apply','reject','save','update','sendStatus','stack','name','index','map','Network','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','length','hasOwnProperty','nolimit','order','where','filters','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','fields','find','catch','create','sequelize','transaction','body','toUpperCase'];(function(_0x44f9a1,_0x103ce4){var _0x4f729c=function(_0x196175){while(--_0x196175){_0x44f9a1['push'](_0x44f9a1['shift']());}};_0x4f729c(++_0x103ce4);}(_0x9d00,0xe4));var _0x09d0=function(_0x35a853,_0x2cc39f){_0x35a853=_0x35a853-0x0;var _0x3025e7=_0x9d00[_0x35a853];return _0x3025e7;};'use strict';var pdf=require(_0x09d0('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x09d0('0x1'));var zipdir=require(_0x09d0('0x2'));var jsonpatch=require(_0x09d0('0x3'));var rp=require('request-promise');var moment=require(_0x09d0('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x09d0('0x5'));var util=require('util');var path=require(_0x09d0('0x6'));var sox=require(_0x09d0('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x09d0('0x8'));var squel=require('squel');var crypto=require(_0x09d0('0x9'));var jsforce=require(_0x09d0('0xa'));var deskjs=require(_0x09d0('0xb'));var toCsv=require('to-csv');var querystring=require(_0x09d0('0xc'));var Papa=require(_0x09d0('0xd'));var Redis=require(_0x09d0('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x09d0('0xf'));var as=require(_0x09d0('0x10'));var hardwareService=require(_0x09d0('0x11'));var logger=require(_0x09d0('0x12'))(_0x09d0('0x13'));var utils=require(_0x09d0('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x09d0('0x15'))['db'];var jayson=require(_0x09d0('0x16'));var client=jayson['client'][_0x09d0('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x3ef7c5,_0x150dbd,_0x100a06,_0x56f545){return new BPromise(function(_0x490287,_0x1181c){var _0x3f7462=_0x56f545||client;return _0x3f7462[_0x09d0('0x18')](_0x3ef7c5,_0x100a06)[_0x09d0('0x19')](function(_0x297b87){logger['info'](_0x09d0('0x1a'),_0x150dbd,'request\x20sent');logger[_0x09d0('0x1b')](_0x09d0('0x1c'),_0x150dbd,_0x09d0('0x1d'),JSON[_0x09d0('0x1e')](_0x297b87));if(_0x297b87[_0x09d0('0x1f')]){if(_0x297b87['error'][_0x09d0('0x20')]===0x1f4){logger[_0x09d0('0x1f')]('Network,\x20%s,\x20%s',_0x150dbd,_0x297b87['error'][_0x09d0('0x21')]);return _0x1181c(_0x297b87[_0x09d0('0x1f')]['message']);}logger['error'](_0x09d0('0x1a'),_0x150dbd,_0x297b87[_0x09d0('0x1f')][_0x09d0('0x21')]);return _0x490287(_0x297b87[_0x09d0('0x1f')][_0x09d0('0x21')]);}else{logger[_0x09d0('0x22')](_0x09d0('0x1a'),_0x150dbd,_0x09d0('0x1d'));_0x490287(_0x297b87[_0x09d0('0x23')]['message']);}})['catch'](function(_0x2adef3){logger[_0x09d0('0x1f')](_0x09d0('0x1a'),_0x150dbd,_0x2adef3);_0x1181c(_0x2adef3);});});}function respondWithStatusCode(_0xe9d94a,_0xd788a5){_0xd788a5=_0xd788a5||0xcc;return function(_0x214bc1){if(_0x214bc1){return _0xe9d94a['sendStatus'](_0xd788a5);}return _0xe9d94a[_0x09d0('0x24')](_0xd788a5)[_0x09d0('0x25')]();};}function respondWithResult(_0x31b67b,_0x5e2802){_0x5e2802=_0x5e2802||0xc8;return function(_0xc10378){if(_0xc10378){return _0x31b67b[_0x09d0('0x24')](_0x5e2802)['json'](_0xc10378);}};}function respondWithFilteredResult(_0x5b85ae,_0x8ce87e){return function(_0x557423){if(_0x557423){var _0x939c3b=_0x557423[_0x09d0('0x26')],_0x356a9f=_0x8ce87e[_0x09d0('0x27')],_0x4dcc8f=_0x8ce87e[_0x09d0('0x27')]+_0x8ce87e[_0x09d0('0x28')],_0x42d120;if(_0x4dcc8f>=_0x939c3b){_0x4dcc8f=_0x939c3b;_0x42d120=0xc8;}else{_0x42d120=0xce;}_0x5b85ae[_0x09d0('0x24')](_0x42d120);return _0x5b85ae[_0x09d0('0x29')](_0x09d0('0x2a'),_0x356a9f+'-'+_0x4dcc8f+'/'+_0x939c3b)[_0x09d0('0x2b')](_0x557423);}return null;};}function patchUpdates(_0x3f19cc){return function(_0x33b5b2){try{jsonpatch[_0x09d0('0x2c')](_0x33b5b2,_0x3f19cc,!![]);}catch(_0x78ae31){return BPromise[_0x09d0('0x2d')](_0x78ae31);}return _0x33b5b2[_0x09d0('0x2e')]();};}function saveUpdates(_0x3025c4,_0x15a705){return function(_0x5a4ea8){if(_0x5a4ea8){return _0x5a4ea8[_0x09d0('0x2f')](_0x3025c4)['then'](function(_0x25bac3){return _0x25bac3;});}return null;};}function removeEntity(_0x491e57,_0xa0bdd6){return function(_0x188743){if(_0x188743){return _0x188743['destroy']()['then'](function(){_0x491e57[_0x09d0('0x24')](0xcc)['end']();});}};}function handleEntityNotFound(_0x57ecf6,_0x5e1227){return function(_0x3d74a2){if(!_0x3d74a2){_0x57ecf6[_0x09d0('0x30')](0x194);}return _0x3d74a2;};}function handleError(_0x2a482d,_0x1e4b28){_0x1e4b28=_0x1e4b28||0x1f4;return function(_0x13752d){logger[_0x09d0('0x1f')](_0x13752d[_0x09d0('0x31')]);if(_0x13752d[_0x09d0('0x32')]){delete _0x13752d['name'];}_0x2a482d[_0x09d0('0x24')](_0x1e4b28)['send'](_0x13752d);};}exports[_0x09d0('0x33')]=function(_0x1ede95,_0x2e6ebb){var _0x2e67eb={},_0x356407={},_0x433a0a={'count':0x0,'rows':[]};var _0x51fc68=_[_0x09d0('0x34')](db[_0x09d0('0x35')][_0x09d0('0x36')],function(_0x115f2c){return{'name':_0x115f2c[_0x09d0('0x37')],'type':_0x115f2c[_0x09d0('0x38')]['key']};});_0x356407[_0x09d0('0x39')]=_[_0x09d0('0x34')](_0x51fc68,_0x09d0('0x32'));_0x356407[_0x09d0('0x3a')]=_[_0x09d0('0x3b')](_0x1ede95[_0x09d0('0x3a')]);_0x356407['filters']=_[_0x09d0('0x3c')](_0x356407[_0x09d0('0x39')],_0x356407['query']);_0x2e67eb['attributes']=_[_0x09d0('0x3c')](_0x356407[_0x09d0('0x39')],qs['fields'](_0x1ede95['query']['fields']));_0x2e67eb['attributes']=_0x2e67eb[_0x09d0('0x3d')][_0x09d0('0x3e')]?_0x2e67eb['attributes']:_0x356407[_0x09d0('0x39')];if(!_0x1ede95[_0x09d0('0x3a')][_0x09d0('0x3f')](_0x09d0('0x40'))){_0x2e67eb[_0x09d0('0x28')]=qs[_0x09d0('0x28')](_0x1ede95[_0x09d0('0x3a')][_0x09d0('0x28')]);_0x2e67eb['offset']=qs[_0x09d0('0x27')](_0x1ede95['query'][_0x09d0('0x27')]);}_0x2e67eb[_0x09d0('0x41')]=qs['sort'](_0x1ede95['query']['sort']);_0x2e67eb[_0x09d0('0x42')]=qs[_0x09d0('0x43')](_['pick'](_0x1ede95[_0x09d0('0x3a')],_0x356407[_0x09d0('0x43')]),_0x51fc68);if(_0x1ede95['query'][_0x09d0('0x44')]){_0x2e67eb[_0x09d0('0x42')]=_[_0x09d0('0x45')](_0x2e67eb[_0x09d0('0x42')],{'$or':_[_0x09d0('0x34')](_0x51fc68,function(_0x2e16eb){if(_0x2e16eb[_0x09d0('0x38')]!==_0x09d0('0x46')){var _0x1c9ac7={};_0x1c9ac7[_0x2e16eb[_0x09d0('0x32')]]={'$like':'%'+_0x1ede95[_0x09d0('0x3a')][_0x09d0('0x44')]+'%'};return _0x1c9ac7;}})});}_0x2e67eb=_[_0x09d0('0x45')]({},_0x2e67eb,_0x1ede95[_0x09d0('0x47')]);var _0x2019b8={'where':_0x2e67eb['where']};return db[_0x09d0('0x35')][_0x09d0('0x26')](_0x2019b8)[_0x09d0('0x19')](function(_0x268fb3){_0x433a0a[_0x09d0('0x26')]=_0x268fb3;if(_0x1ede95['query'][_0x09d0('0x48')]){_0x2e67eb[_0x09d0('0x49')]=[{'all':!![]}];}return db[_0x09d0('0x35')][_0x09d0('0x4a')](_0x2e67eb);})[_0x09d0('0x19')](function(_0x1bbc44){_0x433a0a[_0x09d0('0x4b')]=_0x1bbc44;return _0x433a0a;})[_0x09d0('0x19')](respondWithFilteredResult(_0x2e6ebb,_0x2e67eb))['catch'](handleError(_0x2e6ebb,null));};exports['show']=function(_0x5e0bc9,_0x54fa35){var _0x1ed02a={'raw':!![],'where':{'id':_0x5e0bc9['params']['id']}},_0x590703={};_0x590703['model']=_[_0x09d0('0x3b')](db[_0x09d0('0x35')]['rawAttributes']);_0x590703['query']=_[_0x09d0('0x3b')](_0x5e0bc9['query']);_0x590703[_0x09d0('0x43')]=_[_0x09d0('0x3c')](_0x590703[_0x09d0('0x39')],_0x590703[_0x09d0('0x3a')]);_0x1ed02a[_0x09d0('0x3d')]=_['intersection'](_0x590703[_0x09d0('0x39')],qs['fields'](_0x5e0bc9[_0x09d0('0x3a')][_0x09d0('0x4c')]));_0x1ed02a[_0x09d0('0x3d')]=_0x1ed02a['attributes'][_0x09d0('0x3e')]?_0x1ed02a['attributes']:_0x590703['model'];if(_0x5e0bc9[_0x09d0('0x3a')]['includeAll']){_0x1ed02a['include']=[{'all':!![]}];}_0x1ed02a=_[_0x09d0('0x45')]({},_0x1ed02a,_0x5e0bc9[_0x09d0('0x47')]);return db['Network'][_0x09d0('0x4d')](_0x1ed02a)[_0x09d0('0x19')](handleEntityNotFound(_0x54fa35,null))[_0x09d0('0x19')](respondWithResult(_0x54fa35,null))[_0x09d0('0x4e')](handleError(_0x54fa35,null));};exports[_0x09d0('0x4f')]=function(_0x35224b,_0x496fdc,_0x27c41a){var _0x54b49e;return db[_0x09d0('0x50')][_0x09d0('0x51')](function(_0x3f8b20){return db[_0x09d0('0x35')]['create'](_0x35224b[_0x09d0('0x52')],{'raw':!![]})[_0x09d0('0x19')](function(_0x47c05f){_0x54b49e=_0x47c05f;return db['Network'][_0x09d0('0x4a')]({'where':{'type':_0x35224b[_0x09d0('0x52')][_0x09d0('0x38')]},'raw':!![]});})[_0x09d0('0x19')](function(_0x5d6a3e){if(_0x54b49e['type'][_0x09d0('0x53')]()==_0x09d0('0x54')){var _0x154c66=fs['readFileSync'](path['join'](config['root'],'server/files/templates/stun_multiple.ejs'),'utf8');var _0x5a18b4=ejs[_0x09d0('0x55')](_0x154c66,{'networks':_0x5d6a3e||[]});fs['writeFileSync']('/etc/asterisk/stun_xcally.conf',_0x5a18b4);return respondWithRpcPromise('Reload','create',{'module':'res_stun_monitor.so'});}else if(_0x54b49e[_0x09d0('0x38')]['toUpperCase']()==_0x09d0('0x56')){var _0x156e28=fs['readFileSync'](path[_0x09d0('0x57')](config['root'],_0x09d0('0x58')),_0x09d0('0x59'));var _0x497ecf=ejs['render'](_0x156e28,{'networks':_0x5d6a3e||[]});fs[_0x09d0('0x5a')](_0x09d0('0x5b'),_0x497ecf);return respondWithRpcPromise(_0x09d0('0x5c'),_0x09d0('0x4f'),{'module':'res_stun_monitor.so'});}else{var _0x3bd8b2=fs[_0x09d0('0x5d')](path[_0x09d0('0x57')](config['root'],_0x09d0('0x5e')),_0x09d0('0x59'));var _0x20062f=ejs[_0x09d0('0x55')](_0x3bd8b2,{'networks':_0x5d6a3e||[]});fs[_0x09d0('0x5a')](util['format'](_0x09d0('0x5f'),_0x35224b['body'][_0x09d0('0x38')][_0x09d0('0x60')]()),_0x20062f);return respondWithRpcPromise(_0x09d0('0x5c'),_0x09d0('0x4f'),{'module':_0x09d0('0x61')});}return null;})[_0x09d0('0x19')](function(){return _0x54b49e;});})[_0x09d0('0x19')](respondWithResult(_0x496fdc,0xc9))[_0x09d0('0x4e')](handleError(_0x496fdc,null));};exports[_0x09d0('0x2f')]=function(_0x29cb0a,_0x3620bf,_0x4336b7){var _0x43aa63;return db[_0x09d0('0x50')][_0x09d0('0x51')](function(_0x58a8d4){return db[_0x09d0('0x35')]['find']({'where':{'id':_0x29cb0a[_0x09d0('0x62')]['id']}})[_0x09d0('0x19')](handleEntityNotFound(_0x3620bf,null))[_0x09d0('0x19')](saveUpdates(_0x29cb0a[_0x09d0('0x52')],null))['then'](function(_0x5c2da8){if(_0x5c2da8){_0x43aa63=_0x5c2da8;return db[_0x09d0('0x35')]['findAll']({'where':{'type':_0x43aa63[_0x09d0('0x38')]},'raw':!![]});}return null;})['then'](function(_0x224cf4){if(_0x43aa63[_0x09d0('0x38')][_0x09d0('0x53')]()==_0x09d0('0x54')){var _0xff9372=fs[_0x09d0('0x5d')](path[_0x09d0('0x57')](config[_0x09d0('0x63')],'server/files/templates/stun_multiple.ejs'),'utf8');var _0x11dca8=ejs[_0x09d0('0x55')](_0xff9372,{'networks':_0x224cf4||[]});fs[_0x09d0('0x5a')](_0x09d0('0x64'),_0x11dca8);return respondWithRpcPromise(_0x09d0('0x5c'),_0x09d0('0x2f'),{'module':'res_stun_monitor.so'});}else if(_0x43aa63[_0x09d0('0x38')]['toUpperCase']()==_0x09d0('0x56')){var _0x1e3fcd=fs['readFileSync'](path['join'](config[_0x09d0('0x63')],_0x09d0('0x58')),_0x09d0('0x59'));var _0x36c93b=ejs[_0x09d0('0x55')](_0x1e3fcd,{'networks':_0x224cf4||[]});fs['writeFileSync'](_0x09d0('0x5b'),_0x36c93b);return respondWithRpcPromise(_0x09d0('0x5c'),_0x09d0('0x2f'),{'module':'res_stun_monitor.so'});}else{var _0x316965=fs[_0x09d0('0x5d')](path[_0x09d0('0x57')](config[_0x09d0('0x63')],_0x09d0('0x5e')),_0x09d0('0x59'));var _0x7013c2=ejs[_0x09d0('0x55')](_0x316965,{'networks':_0x224cf4||[]});fs['writeFileSync'](util[_0x09d0('0x65')](_0x09d0('0x5f'),_0x29cb0a[_0x09d0('0x52')][_0x09d0('0x38')]['toLowerCase']()),_0x7013c2);return respondWithRpcPromise('Reload','update',{'module':_0x09d0('0x61')});}return null;})[_0x09d0('0x19')](function(_0x5c6d4e){if(_0x5c6d4e){return _0x43aa63;}return null;});})[_0x09d0('0x19')](respondWithResult(_0x3620bf,null))[_0x09d0('0x4e')](handleError(_0x3620bf,null));};exports[_0x09d0('0x66')]=function(_0x3a6a8f,_0x495eeb,_0x12758f){var _0x65ff14;return db[_0x09d0('0x35')][_0x09d0('0x4d')]({'where':{'id':_0x3a6a8f[_0x09d0('0x62')]['id']}})[_0x09d0('0x19')](function(_0x30bcde){_0x65ff14=_0x30bcde;return _0x30bcde;})[_0x09d0('0x19')](handleEntityNotFound(_0x495eeb,null))['then'](removeEntity(_0x495eeb,null))[_0x09d0('0x19')](function(){if(_0x65ff14){return db[_0x09d0('0x35')][_0x09d0('0x4a')]({'where':{'type':_0x65ff14[_0x09d0('0x38')]},'raw':!![]});}})[_0x09d0('0x19')](function(_0x5d50d1){if(_0x65ff14[_0x09d0('0x38')]['toUpperCase']()=='STUN'){var _0x498779=fs[_0x09d0('0x5d')](path[_0x09d0('0x57')](config[_0x09d0('0x63')],'server/files/templates/stun_multiple.ejs'),_0x09d0('0x59'));var _0x43cc61=ejs[_0x09d0('0x55')](_0x498779,{'networks':_0x5d50d1||[]});fs[_0x09d0('0x5a')]('/etc/asterisk/stun_xcally.conf',_0x43cc61);return respondWithRpcPromise(_0x09d0('0x5c'),'destroy',{'module':'res_stun_monitor.so'});}else if(_0x65ff14['type']['toUpperCase']()==_0x09d0('0x56')){var _0x4aa59e=fs[_0x09d0('0x5d')](path['join'](config[_0x09d0('0x63')],_0x09d0('0x58')),_0x09d0('0x59'));var _0x11b450=ejs[_0x09d0('0x55')](_0x4aa59e,{'networks':_0x5d50d1||[]});fs[_0x09d0('0x5a')](_0x09d0('0x5b'),_0x11b450);return respondWithRpcPromise(_0x09d0('0x5c'),_0x09d0('0x66'),{'module':_0x09d0('0x67')});}else{var _0x6db110=fs['readFileSync'](path[_0x09d0('0x57')](config['root'],_0x09d0('0x5e')),_0x09d0('0x59'));var _0x482059=ejs[_0x09d0('0x55')](_0x6db110,{'networks':_0x5d50d1||[]});fs['writeFileSync'](util[_0x09d0('0x65')](_0x09d0('0x5f'),_0x3a6a8f[_0x09d0('0x52')][_0x09d0('0x38')]['toLowerCase']()),_0x482059);return respondWithRpcPromise(_0x09d0('0x5c'),'destroy',{'module':_0x09d0('0x61')});}return null;})[_0x09d0('0x4e')](handleError(_0x495eeb,null));};