a392277487460970b3c4f8cf742167d85bf5c7ef
[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 _0x96f6=['fieldName','type','key','model','name','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','show','options','find','create','sequelize','transaction','body','toUpperCase','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','render','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','server/files/templates/turn_multiple.ejs','writeFileSync','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','params','STUN','TURN','chan_sip.so','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','client','http','request','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','destroy','end','stack','send','index','map','Network','rawAttributes'];(function(_0x148870,_0x2253e8){var _0x11410f=function(_0x4439e9){while(--_0x4439e9){_0x148870['push'](_0x148870['shift']());}};_0x11410f(++_0x2253e8);}(_0x96f6,0x181));var _0x696f=function(_0x179b53,_0x31f6fe){_0x179b53=_0x179b53-0x0;var _0x38a146=_0x96f6[_0x179b53];return _0x38a146;};'use strict';var emlformat=require(_0x696f('0x0'));var rimraf=require(_0x696f('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x696f('0x2'));var rp=require('request-promise');var moment=require(_0x696f('0x3'));var BPromise=require(_0x696f('0x4'));var Mustache=require(_0x696f('0x5'));var util=require(_0x696f('0x6'));var path=require(_0x696f('0x7'));var sox=require('sox');var csv=require(_0x696f('0x8'));var ejs=require(_0x696f('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x696f('0xa'));var squel=require('squel');var crypto=require(_0x696f('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x696f('0xc'));var toCsv=require('to-csv');var querystring=require(_0x696f('0xd'));var Papa=require('papaparse');var Redis=require(_0x696f('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x696f('0xf'));var as=require(_0x696f('0x10'));var hardwareService=require(_0x696f('0x11'));var logger=require(_0x696f('0x12'))(_0x696f('0x13'));var utils=require(_0x696f('0x14'));var config=require(_0x696f('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x696f('0x16'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x696f('0x17')][_0x696f('0x18')]({'port':0x232a});function respondWithRpcPromise(_0xf70c95,_0x2280db,_0x211596,_0x5ccb84){return new BPromise(function(_0x48a971,_0x5dae4c){var _0x27cd2f=_0x5ccb84||client;return _0x27cd2f[_0x696f('0x19')](_0xf70c95,_0x211596)[_0x696f('0x1a')](function(_0x36c7c3){logger[_0x696f('0x1b')](_0x696f('0x1c'),_0x2280db,_0x696f('0x1d'));logger[_0x696f('0x1e')](_0x696f('0x1f'),_0x2280db,_0x696f('0x1d'),JSON[_0x696f('0x20')](_0x36c7c3));if(_0x36c7c3[_0x696f('0x21')]){if(_0x36c7c3[_0x696f('0x21')][_0x696f('0x22')]===0x1f4){logger[_0x696f('0x21')]('Network,\x20%s,\x20%s',_0x2280db,_0x36c7c3['error'][_0x696f('0x23')]);return _0x5dae4c(_0x36c7c3[_0x696f('0x21')][_0x696f('0x23')]);}logger[_0x696f('0x21')]('Network,\x20%s,\x20%s',_0x2280db,_0x36c7c3['error']['message']);return _0x48a971(_0x36c7c3[_0x696f('0x21')]['message']);}else{logger['info'](_0x696f('0x1c'),_0x2280db,_0x696f('0x1d'));_0x48a971(_0x36c7c3[_0x696f('0x24')][_0x696f('0x23')]);}})[_0x696f('0x25')](function(_0x503017){logger['error'](_0x696f('0x1c'),_0x2280db,_0x503017);_0x5dae4c(_0x503017);});});}function respondWithStatusCode(_0x19a564,_0x26fea1){_0x26fea1=_0x26fea1||0xcc;return function(_0x5abb43){if(_0x5abb43){return _0x19a564[_0x696f('0x26')](_0x26fea1);}return _0x19a564[_0x696f('0x27')](_0x26fea1)['end']();};}function respondWithResult(_0x22f9f9,_0x12d6ff){_0x12d6ff=_0x12d6ff||0xc8;return function(_0x549610){if(_0x549610){return _0x22f9f9['status'](_0x12d6ff)['json'](_0x549610);}};}function respondWithFilteredResult(_0x516568,_0x7e6ef8){return function(_0x4f54f7){if(_0x4f54f7){var _0x582f37=typeof _0x7e6ef8[_0x696f('0x28')]===_0x696f('0x29')&&typeof _0x7e6ef8[_0x696f('0x2a')]==='undefined';var _0x54ac3b=_0x4f54f7[_0x696f('0x2b')];var _0x45edbc=_0x582f37?0x0:_0x7e6ef8['offset'];var _0x4225f2=_0x582f37?_0x4f54f7[_0x696f('0x2b')]:_0x7e6ef8[_0x696f('0x28')]+_0x7e6ef8[_0x696f('0x2a')];var _0x2667c8;if(_0x4225f2>=_0x54ac3b){_0x4225f2=_0x54ac3b;_0x2667c8=0xc8;}else{_0x2667c8=0xce;}_0x516568['status'](_0x2667c8);return _0x516568[_0x696f('0x2c')](_0x696f('0x2d'),_0x45edbc+'-'+_0x4225f2+'/'+_0x54ac3b)[_0x696f('0x2e')](_0x4f54f7);}return null;};}function patchUpdates(_0x51519b){return function(_0x5531f0){try{jsonpatch[_0x696f('0x2f')](_0x5531f0,_0x51519b,!![]);}catch(_0x489f54){return BPromise[_0x696f('0x30')](_0x489f54);}return _0x5531f0[_0x696f('0x31')]();};}function saveUpdates(_0x425708,_0x3d864e){return function(_0x47988c){if(_0x47988c){return _0x47988c[_0x696f('0x32')](_0x425708)[_0x696f('0x1a')](function(_0x4cc512){return _0x4cc512;});}return null;};}function removeEntity(_0x2bb87c,_0x401375){return function(_0x49c0dc){if(_0x49c0dc){return _0x49c0dc[_0x696f('0x33')]()['then'](function(){_0x2bb87c[_0x696f('0x27')](0xcc)[_0x696f('0x34')]();});}};}function handleEntityNotFound(_0x31452d,_0x42af7a){return function(_0x47d25e){if(!_0x47d25e){_0x31452d[_0x696f('0x26')](0x194);}return _0x47d25e;};}function handleError(_0x4c313a,_0x11957f){_0x11957f=_0x11957f||0x1f4;return function(_0x504bc4){logger[_0x696f('0x21')](_0x504bc4[_0x696f('0x35')]);if(_0x504bc4['name']){delete _0x504bc4['name'];}_0x4c313a[_0x696f('0x27')](_0x11957f)[_0x696f('0x36')](_0x504bc4);};}exports[_0x696f('0x37')]=function(_0x52be95,_0x57fa65){var _0x50d992={},_0x47f3c3={},_0x8f5ccb={'count':0x0,'rows':[]};var _0x1898e0=_[_0x696f('0x38')](db[_0x696f('0x39')][_0x696f('0x3a')],function(_0x44a667){return{'name':_0x44a667[_0x696f('0x3b')],'type':_0x44a667[_0x696f('0x3c')][_0x696f('0x3d')]};});_0x47f3c3[_0x696f('0x3e')]=_['map'](_0x1898e0,_0x696f('0x3f'));_0x47f3c3[_0x696f('0x40')]=_[_0x696f('0x41')](_0x52be95[_0x696f('0x40')]);_0x47f3c3['filters']=_[_0x696f('0x42')](_0x47f3c3['model'],_0x47f3c3[_0x696f('0x40')]);_0x50d992['attributes']=_[_0x696f('0x42')](_0x47f3c3[_0x696f('0x3e')],qs[_0x696f('0x43')](_0x52be95[_0x696f('0x40')][_0x696f('0x43')]));_0x50d992[_0x696f('0x44')]=_0x50d992[_0x696f('0x44')][_0x696f('0x45')]?_0x50d992[_0x696f('0x44')]:_0x47f3c3[_0x696f('0x3e')];if(!_0x52be95[_0x696f('0x40')][_0x696f('0x46')](_0x696f('0x47'))){_0x50d992[_0x696f('0x2a')]=qs[_0x696f('0x2a')](_0x52be95[_0x696f('0x40')][_0x696f('0x2a')]);_0x50d992[_0x696f('0x28')]=qs[_0x696f('0x28')](_0x52be95[_0x696f('0x40')]['offset']);}_0x50d992['order']=qs[_0x696f('0x48')](_0x52be95[_0x696f('0x40')]['sort']);_0x50d992[_0x696f('0x49')]=qs[_0x696f('0x4a')](_[_0x696f('0x4b')](_0x52be95[_0x696f('0x40')],_0x47f3c3[_0x696f('0x4a')]),_0x1898e0);if(_0x52be95[_0x696f('0x40')][_0x696f('0x4c')]){_0x50d992[_0x696f('0x49')]=_[_0x696f('0x4d')](_0x50d992[_0x696f('0x49')],{'$or':_['map'](_0x1898e0,function(_0x1b436e){if(_0x1b436e[_0x696f('0x3c')]!==_0x696f('0x4e')){var _0x4b2f97={};_0x4b2f97[_0x1b436e[_0x696f('0x3f')]]={'$like':'%'+_0x52be95[_0x696f('0x40')]['filter']+'%'};return _0x4b2f97;}})});}_0x50d992=_[_0x696f('0x4d')]({},_0x50d992,_0x52be95['options']);var _0x14b539={'where':_0x50d992[_0x696f('0x49')]};return db[_0x696f('0x39')][_0x696f('0x2b')](_0x14b539)['then'](function(_0x3345d7){_0x8f5ccb[_0x696f('0x2b')]=_0x3345d7;if(_0x52be95[_0x696f('0x40')][_0x696f('0x4f')]){_0x50d992[_0x696f('0x50')]=[{'all':!![]}];}return db[_0x696f('0x39')][_0x696f('0x51')](_0x50d992);})[_0x696f('0x1a')](function(_0x3faa78){_0x8f5ccb[_0x696f('0x52')]=_0x3faa78;return _0x8f5ccb;})[_0x696f('0x1a')](respondWithFilteredResult(_0x57fa65,_0x50d992))[_0x696f('0x25')](handleError(_0x57fa65,null));};exports[_0x696f('0x53')]=function(_0xffad7c,_0x218e72){var _0x3ec4d0={'raw':!![],'where':{'id':_0xffad7c['params']['id']}},_0x221a0f={};_0x221a0f['model']=_['keys'](db['Network'][_0x696f('0x3a')]);_0x221a0f[_0x696f('0x40')]=_['keys'](_0xffad7c[_0x696f('0x40')]);_0x221a0f[_0x696f('0x4a')]=_['intersection'](_0x221a0f[_0x696f('0x3e')],_0x221a0f[_0x696f('0x40')]);_0x3ec4d0[_0x696f('0x44')]=_['intersection'](_0x221a0f['model'],qs[_0x696f('0x43')](_0xffad7c[_0x696f('0x40')][_0x696f('0x43')]));_0x3ec4d0['attributes']=_0x3ec4d0[_0x696f('0x44')][_0x696f('0x45')]?_0x3ec4d0[_0x696f('0x44')]:_0x221a0f[_0x696f('0x3e')];if(_0xffad7c['query']['includeAll']){_0x3ec4d0['include']=[{'all':!![]}];}_0x3ec4d0=_[_0x696f('0x4d')]({},_0x3ec4d0,_0xffad7c[_0x696f('0x54')]);return db[_0x696f('0x39')][_0x696f('0x55')](_0x3ec4d0)[_0x696f('0x1a')](handleEntityNotFound(_0x218e72,null))[_0x696f('0x1a')](respondWithResult(_0x218e72,null))['catch'](handleError(_0x218e72,null));};exports[_0x696f('0x56')]=function(_0x41f250,_0x209610,_0x77ca60){var _0x3792b1;return db[_0x696f('0x57')][_0x696f('0x58')](function(_0x46bdf2){return db['Network'][_0x696f('0x56')](_0x41f250[_0x696f('0x59')],{'raw':!![]})[_0x696f('0x1a')](function(_0x5009cf){_0x3792b1=_0x5009cf;return db['Network'][_0x696f('0x51')]({'where':{'type':_0x41f250[_0x696f('0x59')][_0x696f('0x3c')]},'raw':!![]});})[_0x696f('0x1a')](function(_0x44d4e6){if(_0x3792b1[_0x696f('0x3c')][_0x696f('0x5a')]()=='STUN'){var _0x2f0d52=fs[_0x696f('0x5b')](path[_0x696f('0x5c')](config[_0x696f('0x5d')],_0x696f('0x5e')),_0x696f('0x5f'));var _0x4259eb=ejs[_0x696f('0x60')](_0x2f0d52,{'networks':_0x44d4e6||[]});fs['writeFileSync'](_0x696f('0x61'),_0x4259eb);return respondWithRpcPromise(_0x696f('0x62'),_0x696f('0x56'),{'module':_0x696f('0x63')});}else if(_0x3792b1[_0x696f('0x3c')][_0x696f('0x5a')]()=='TURN'){var _0x3b9158=fs[_0x696f('0x5b')](path[_0x696f('0x5c')](config['root'],_0x696f('0x64')),_0x696f('0x5f'));var _0x1290df=ejs['render'](_0x3b9158,{'networks':_0x44d4e6||[]});fs[_0x696f('0x65')](_0x696f('0x66'),_0x1290df);return respondWithRpcPromise('Reload','create',{'module':_0x696f('0x63')});}else{var _0x2d285a=fs[_0x696f('0x5b')](path[_0x696f('0x5c')](config[_0x696f('0x5d')],_0x696f('0x67')),_0x696f('0x5f'));var _0x48068d=ejs['render'](_0x2d285a,{'networks':_0x44d4e6||[]});fs['writeFileSync'](util[_0x696f('0x68')](_0x696f('0x69'),_0x41f250['body'][_0x696f('0x3c')][_0x696f('0x6a')]()),_0x48068d);return respondWithRpcPromise(_0x696f('0x62'),'create',{'module':'chan_sip.so'});}return null;})['then'](function(){return _0x3792b1;});})[_0x696f('0x1a')](respondWithResult(_0x209610,0xc9))['catch'](handleError(_0x209610,null));};exports[_0x696f('0x32')]=function(_0x5e90a6,_0x2eac64,_0x434cab){var _0x40f745;return db[_0x696f('0x57')][_0x696f('0x58')](function(_0x4b5bc2){return db[_0x696f('0x39')][_0x696f('0x55')]({'where':{'id':_0x5e90a6[_0x696f('0x6b')]['id']}})[_0x696f('0x1a')](handleEntityNotFound(_0x2eac64,null))[_0x696f('0x1a')](saveUpdates(_0x5e90a6[_0x696f('0x59')],null))[_0x696f('0x1a')](function(_0x22ce46){if(_0x22ce46){_0x40f745=_0x22ce46;return db[_0x696f('0x39')][_0x696f('0x51')]({'where':{'type':_0x40f745[_0x696f('0x3c')]},'raw':!![]});}return null;})[_0x696f('0x1a')](function(_0x175001){if(_0x40f745[_0x696f('0x3c')][_0x696f('0x5a')]()==_0x696f('0x6c')){var _0x5d91b5=fs[_0x696f('0x5b')](path['join'](config[_0x696f('0x5d')],_0x696f('0x5e')),'utf8');var _0x5a69d9=ejs['render'](_0x5d91b5,{'networks':_0x175001||[]});fs['writeFileSync'](_0x696f('0x61'),_0x5a69d9);return respondWithRpcPromise(_0x696f('0x62'),_0x696f('0x32'),{'module':_0x696f('0x63')});}else if(_0x40f745['type'][_0x696f('0x5a')]()==_0x696f('0x6d')){var _0x5bf787=fs[_0x696f('0x5b')](path[_0x696f('0x5c')](config[_0x696f('0x5d')],_0x696f('0x64')),_0x696f('0x5f'));var _0x32132c=ejs[_0x696f('0x60')](_0x5bf787,{'networks':_0x175001||[]});fs[_0x696f('0x65')](_0x696f('0x66'),_0x32132c);return respondWithRpcPromise(_0x696f('0x62'),_0x696f('0x32'),{'module':'res_stun_monitor.so'});}else{var _0x2c6e54=fs[_0x696f('0x5b')](path[_0x696f('0x5c')](config[_0x696f('0x5d')],_0x696f('0x67')),'utf8');var _0x3313a2=ejs[_0x696f('0x60')](_0x2c6e54,{'networks':_0x175001||[]});fs[_0x696f('0x65')](util[_0x696f('0x68')]('/etc/asterisk/sip_xcally_%s.conf',_0x5e90a6[_0x696f('0x59')]['type'][_0x696f('0x6a')]()),_0x3313a2);return respondWithRpcPromise(_0x696f('0x62'),_0x696f('0x32'),{'module':'chan_sip.so'});}return null;})['then'](function(_0x11da82){if(_0x11da82){return _0x40f745;}return null;});})['then'](respondWithResult(_0x2eac64,null))[_0x696f('0x25')](handleError(_0x2eac64,null));};exports[_0x696f('0x33')]=function(_0x4d6d9e,_0x5709ed,_0x22e02e){var _0x112844;return db[_0x696f('0x39')]['find']({'where':{'id':_0x4d6d9e[_0x696f('0x6b')]['id']}})['then'](function(_0x40f8a0){_0x112844=_0x40f8a0;return _0x40f8a0;})['then'](handleEntityNotFound(_0x5709ed,null))[_0x696f('0x1a')](removeEntity(_0x5709ed,null))[_0x696f('0x1a')](function(){if(_0x112844){return db[_0x696f('0x39')]['findAll']({'where':{'type':_0x112844[_0x696f('0x3c')]},'raw':!![]});}})[_0x696f('0x1a')](function(_0x196b44){if(_0x112844[_0x696f('0x3c')]['toUpperCase']()==_0x696f('0x6c')){var _0x4fc492=fs[_0x696f('0x5b')](path[_0x696f('0x5c')](config[_0x696f('0x5d')],'server/files/templates/stun_multiple.ejs'),_0x696f('0x5f'));var _0x405959=ejs[_0x696f('0x60')](_0x4fc492,{'networks':_0x196b44||[]});fs[_0x696f('0x65')](_0x696f('0x61'),_0x405959);return respondWithRpcPromise(_0x696f('0x62'),_0x696f('0x33'),{'module':_0x696f('0x63')});}else if(_0x112844[_0x696f('0x3c')][_0x696f('0x5a')]()==_0x696f('0x6d')){var _0x423374=fs[_0x696f('0x5b')](path[_0x696f('0x5c')](config[_0x696f('0x5d')],_0x696f('0x64')),'utf8');var _0x2bf210=ejs['render'](_0x423374,{'networks':_0x196b44||[]});fs[_0x696f('0x65')](_0x696f('0x66'),_0x2bf210);return respondWithRpcPromise(_0x696f('0x62'),_0x696f('0x33'),{'module':_0x696f('0x63')});}else{var _0x530677=fs[_0x696f('0x5b')](path[_0x696f('0x5c')](config[_0x696f('0x5d')],_0x696f('0x67')),_0x696f('0x5f'));var _0x156ff5=ejs[_0x696f('0x60')](_0x530677,{'networks':_0x196b44||[]});fs[_0x696f('0x65')](util[_0x696f('0x68')](_0x696f('0x69'),_0x4d6d9e[_0x696f('0x59')][_0x696f('0x3c')][_0x696f('0x6a')]()),_0x156ff5);return respondWithRpcPromise(_0x696f('0x62'),_0x696f('0x33'),{'module':_0x696f('0x6e')});}return null;})[_0x696f('0x25')](handleError(_0x5709ed,null));};