d79257b71442b8b6bdefc0b4491f5206369f6b89
[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 _0x024a=['catch','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','save','update','destroy','name','index','map','Network','rawAttributes','fieldName','query','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','options','includeAll','include','rows','show','keys','create','sequelize','body','findAll','toUpperCase','STUN','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','/etc/asterisk/stun_xcally.conf','Reload','TURN','server/files/templates/turn_multiple.ejs','render','writeFileSync','/etc/asterisk/turn_xcally.conf','res_stun_monitor.so','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','chan_sip.so','transaction','find','params','toLowerCase','eml-format','rimraf','moment','mustache','util','path','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../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','code','message'];(function(_0x142e13,_0x3da634){var _0x1a4344=function(_0x41d1af){while(--_0x41d1af){_0x142e13['push'](_0x142e13['shift']());}};_0x1a4344(++_0x3da634);}(_0x024a,0x17f));var _0xa024=function(_0x1ca9cd,_0x4386dc){_0x1ca9cd=_0x1ca9cd-0x0;var _0x11490a=_0x024a[_0x1ca9cd];return _0x11490a;};'use strict';var emlformat=require(_0xa024('0x0'));var rimraf=require(_0xa024('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xa024('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xa024('0x3'));var util=require(_0xa024('0x4'));var path=require(_0xa024('0x5'));var sox=require('sox');var csv=require(_0xa024('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa024('0x7'));var _=require(_0xa024('0x8'));var squel=require('squel');var crypto=require(_0xa024('0x9'));var jsforce=require(_0xa024('0xa'));var deskjs=require(_0xa024('0xb'));var toCsv=require(_0xa024('0x6'));var querystring=require(_0xa024('0xc'));var Papa=require(_0xa024('0xd'));var Redis=require(_0xa024('0xe'));var authService=require(_0xa024('0xf'));var qs=require(_0xa024('0x10'));var as=require(_0xa024('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa024('0x12'))('api');var utils=require(_0xa024('0x13'));var config=require(_0xa024('0x14'));var licenseUtil=require(_0xa024('0x15'));var db=require(_0xa024('0x16'))['db'];var jayson=require(_0xa024('0x17'));var client=jayson[_0xa024('0x18')][_0xa024('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x2409a0,_0xb29317,_0x4101f9,_0xd5caf5){return new BPromise(function(_0xed84cd,_0x26fb15){var _0x4e109d=_0xd5caf5||client;return _0x4e109d[_0xa024('0x1a')](_0x2409a0,_0x4101f9)[_0xa024('0x1b')](function(_0x3c5139){logger[_0xa024('0x1c')](_0xa024('0x1d'),_0xb29317,_0xa024('0x1e'));logger[_0xa024('0x1f')](_0xa024('0x20'),_0xb29317,_0xa024('0x1e'),JSON[_0xa024('0x21')](_0x3c5139));if(_0x3c5139[_0xa024('0x22')]){if(_0x3c5139[_0xa024('0x22')][_0xa024('0x23')]===0x1f4){logger[_0xa024('0x22')](_0xa024('0x1d'),_0xb29317,_0x3c5139[_0xa024('0x22')][_0xa024('0x24')]);return _0x26fb15(_0x3c5139[_0xa024('0x22')][_0xa024('0x24')]);}logger[_0xa024('0x22')]('Network,\x20%s,\x20%s',_0xb29317,_0x3c5139[_0xa024('0x22')][_0xa024('0x24')]);return _0xed84cd(_0x3c5139[_0xa024('0x22')][_0xa024('0x24')]);}else{logger[_0xa024('0x1c')](_0xa024('0x1d'),_0xb29317,_0xa024('0x1e'));_0xed84cd(_0x3c5139['result'][_0xa024('0x24')]);}})[_0xa024('0x25')](function(_0x2ccd60){logger['error']('Network,\x20%s,\x20%s',_0xb29317,_0x2ccd60);_0x26fb15(_0x2ccd60);});});}function respondWithStatusCode(_0x2b8948,_0x5effa9){_0x5effa9=_0x5effa9||0xcc;return function(_0x3f098e){if(_0x3f098e){return _0x2b8948[_0xa024('0x26')](_0x5effa9);}return _0x2b8948[_0xa024('0x27')](_0x5effa9)[_0xa024('0x28')]();};}function respondWithResult(_0x128250,_0x496eb8){_0x496eb8=_0x496eb8||0xc8;return function(_0x357abb){if(_0x357abb){return _0x128250[_0xa024('0x27')](_0x496eb8)[_0xa024('0x29')](_0x357abb);}};}function respondWithFilteredResult(_0x5f558c,_0x5622b2){return function(_0x4302dc){if(_0x4302dc){var _0x378687=typeof _0x5622b2[_0xa024('0x2a')]===_0xa024('0x2b')&&typeof _0x5622b2['limit']==='undefined';var _0x1e1e5d=_0x4302dc['count'];var _0x1c834b=_0x378687?0x0:_0x5622b2[_0xa024('0x2a')];var _0x27f0ff=_0x378687?_0x4302dc[_0xa024('0x2c')]:_0x5622b2[_0xa024('0x2a')]+_0x5622b2[_0xa024('0x2d')];var _0x54b55b;if(_0x27f0ff>=_0x1e1e5d){_0x27f0ff=_0x1e1e5d;_0x54b55b=0xc8;}else{_0x54b55b=0xce;}_0x5f558c['status'](_0x54b55b);return _0x5f558c['set'](_0xa024('0x2e'),_0x1c834b+'-'+_0x27f0ff+'/'+_0x1e1e5d)[_0xa024('0x29')](_0x4302dc);}return null;};}function patchUpdates(_0x2fa96c){return function(_0x652652){try{jsonpatch['apply'](_0x652652,_0x2fa96c,!![]);}catch(_0x310b57){return BPromise['reject'](_0x310b57);}return _0x652652[_0xa024('0x2f')]();};}function saveUpdates(_0x43583d,_0x34dfe7){return function(_0x18066a){if(_0x18066a){return _0x18066a[_0xa024('0x30')](_0x43583d)[_0xa024('0x1b')](function(_0xd11def){return _0xd11def;});}return null;};}function removeEntity(_0x4b2411,_0x1dfef7){return function(_0xe2e512){if(_0xe2e512){return _0xe2e512[_0xa024('0x31')]()[_0xa024('0x1b')](function(){_0x4b2411[_0xa024('0x27')](0xcc)['end']();});}};}function handleEntityNotFound(_0x24ff62,_0x3a0251){return function(_0x4ac904){if(!_0x4ac904){_0x24ff62[_0xa024('0x26')](0x194);}return _0x4ac904;};}function handleError(_0x393f18,_0x44aae1){_0x44aae1=_0x44aae1||0x1f4;return function(_0x1d4b45){logger[_0xa024('0x22')](_0x1d4b45['stack']);if(_0x1d4b45['name']){delete _0x1d4b45[_0xa024('0x32')];}_0x393f18[_0xa024('0x27')](_0x44aae1)['send'](_0x1d4b45);};}exports[_0xa024('0x33')]=function(_0x578cb5,_0x19e724){var _0x1d89f8={},_0x582ca1={},_0x3444b3={'count':0x0,'rows':[]};var _0x3a782d=_[_0xa024('0x34')](db[_0xa024('0x35')][_0xa024('0x36')],function(_0x1ad16d){return{'name':_0x1ad16d[_0xa024('0x37')],'type':_0x1ad16d['type']['key']};});_0x582ca1['model']=_['map'](_0x3a782d,'name');_0x582ca1[_0xa024('0x38')]=_['keys'](_0x578cb5[_0xa024('0x38')]);_0x582ca1[_0xa024('0x39')]=_[_0xa024('0x3a')](_0x582ca1['model'],_0x582ca1['query']);_0x1d89f8[_0xa024('0x3b')]=_[_0xa024('0x3a')](_0x582ca1[_0xa024('0x3c')],qs[_0xa024('0x3d')](_0x578cb5[_0xa024('0x38')][_0xa024('0x3d')]));_0x1d89f8[_0xa024('0x3b')]=_0x1d89f8['attributes'][_0xa024('0x3e')]?_0x1d89f8[_0xa024('0x3b')]:_0x582ca1[_0xa024('0x3c')];if(!_0x578cb5[_0xa024('0x38')][_0xa024('0x3f')](_0xa024('0x40'))){_0x1d89f8[_0xa024('0x2d')]=qs[_0xa024('0x2d')](_0x578cb5[_0xa024('0x38')][_0xa024('0x2d')]);_0x1d89f8[_0xa024('0x2a')]=qs[_0xa024('0x2a')](_0x578cb5['query'][_0xa024('0x2a')]);}_0x1d89f8[_0xa024('0x41')]=qs[_0xa024('0x42')](_0x578cb5['query']['sort']);_0x1d89f8[_0xa024('0x43')]=qs['filters'](_[_0xa024('0x44')](_0x578cb5[_0xa024('0x38')],_0x582ca1[_0xa024('0x39')]),_0x3a782d);if(_0x578cb5[_0xa024('0x38')][_0xa024('0x45')]){_0x1d89f8[_0xa024('0x43')]=_[_0xa024('0x46')](_0x1d89f8['where'],{'$or':_[_0xa024('0x34')](_0x3a782d,function(_0x337638){if(_0x337638[_0xa024('0x47')]!=='VIRTUAL'){var _0x369609={};_0x369609[_0x337638[_0xa024('0x32')]]={'$like':'%'+_0x578cb5[_0xa024('0x38')][_0xa024('0x45')]+'%'};return _0x369609;}})});}_0x1d89f8=_[_0xa024('0x46')]({},_0x1d89f8,_0x578cb5[_0xa024('0x48')]);var _0x597cb2={'where':_0x1d89f8[_0xa024('0x43')]};return db[_0xa024('0x35')][_0xa024('0x2c')](_0x597cb2)[_0xa024('0x1b')](function(_0xd95a1e){_0x3444b3[_0xa024('0x2c')]=_0xd95a1e;if(_0x578cb5[_0xa024('0x38')][_0xa024('0x49')]){_0x1d89f8[_0xa024('0x4a')]=[{'all':!![]}];}return db['Network']['findAll'](_0x1d89f8);})[_0xa024('0x1b')](function(_0x1e3fb4){_0x3444b3[_0xa024('0x4b')]=_0x1e3fb4;return _0x3444b3;})['then'](respondWithFilteredResult(_0x19e724,_0x1d89f8))['catch'](handleError(_0x19e724,null));};exports[_0xa024('0x4c')]=function(_0x53e30d,_0x4b986a){var _0x25342e={'raw':!![],'where':{'id':_0x53e30d['params']['id']}},_0x1180ab={};_0x1180ab[_0xa024('0x3c')]=_[_0xa024('0x4d')](db[_0xa024('0x35')][_0xa024('0x36')]);_0x1180ab[_0xa024('0x38')]=_[_0xa024('0x4d')](_0x53e30d[_0xa024('0x38')]);_0x1180ab['filters']=_['intersection'](_0x1180ab[_0xa024('0x3c')],_0x1180ab['query']);_0x25342e[_0xa024('0x3b')]=_[_0xa024('0x3a')](_0x1180ab[_0xa024('0x3c')],qs['fields'](_0x53e30d[_0xa024('0x38')][_0xa024('0x3d')]));_0x25342e[_0xa024('0x3b')]=_0x25342e['attributes'][_0xa024('0x3e')]?_0x25342e[_0xa024('0x3b')]:_0x1180ab['model'];if(_0x53e30d[_0xa024('0x38')]['includeAll']){_0x25342e[_0xa024('0x4a')]=[{'all':!![]}];}_0x25342e=_[_0xa024('0x46')]({},_0x25342e,_0x53e30d[_0xa024('0x48')]);return db[_0xa024('0x35')]['find'](_0x25342e)[_0xa024('0x1b')](handleEntityNotFound(_0x4b986a,null))[_0xa024('0x1b')](respondWithResult(_0x4b986a,null))[_0xa024('0x25')](handleError(_0x4b986a,null));};exports[_0xa024('0x4e')]=function(_0x119e39,_0xa2ecee,_0xfabac){var _0x419238;return db[_0xa024('0x4f')]['transaction'](function(_0x53d694){return db[_0xa024('0x35')]['create'](_0x119e39[_0xa024('0x50')],{'raw':!![]})[_0xa024('0x1b')](function(_0x5c0340){_0x419238=_0x5c0340;return db[_0xa024('0x35')][_0xa024('0x51')]({'where':{'type':_0x119e39[_0xa024('0x50')][_0xa024('0x47')]},'raw':!![]});})[_0xa024('0x1b')](function(_0x2f7197){if(_0x419238[_0xa024('0x47')][_0xa024('0x52')]()==_0xa024('0x53')){var _0x2149b3=fs[_0xa024('0x54')](path[_0xa024('0x55')](config[_0xa024('0x56')],_0xa024('0x57')),_0xa024('0x58'));var _0xf87333=ejs['render'](_0x2149b3,{'networks':_0x2f7197||[]});fs['writeFileSync'](_0xa024('0x59'),_0xf87333);return respondWithRpcPromise(_0xa024('0x5a'),'create',{'module':'res_stun_monitor.so'});}else if(_0x419238[_0xa024('0x47')][_0xa024('0x52')]()==_0xa024('0x5b')){var _0x32498d=fs[_0xa024('0x54')](path[_0xa024('0x55')](config[_0xa024('0x56')],_0xa024('0x5c')),_0xa024('0x58'));var _0x58c2d9=ejs[_0xa024('0x5d')](_0x32498d,{'networks':_0x2f7197||[]});fs[_0xa024('0x5e')](_0xa024('0x5f'),_0x58c2d9);return respondWithRpcPromise(_0xa024('0x5a'),'create',{'module':_0xa024('0x60')});}else{var _0x3ede76=fs[_0xa024('0x54')](path['join'](config[_0xa024('0x56')],_0xa024('0x61')),_0xa024('0x58'));var _0x5c3e76=ejs['render'](_0x3ede76,{'networks':_0x2f7197||[]});fs['writeFileSync'](util[_0xa024('0x62')](_0xa024('0x63'),_0x119e39['body'][_0xa024('0x47')]['toLowerCase']()),_0x5c3e76);return respondWithRpcPromise(_0xa024('0x5a'),_0xa024('0x4e'),{'module':_0xa024('0x64')});}return null;})['then'](function(){return _0x419238;});})[_0xa024('0x1b')](respondWithResult(_0xa2ecee,0xc9))['catch'](handleError(_0xa2ecee,null));};exports[_0xa024('0x30')]=function(_0x17f5c9,_0x37d976,_0x3c40c0){var _0x4da3ff;return db[_0xa024('0x4f')][_0xa024('0x65')](function(_0x157c7b){return db[_0xa024('0x35')][_0xa024('0x66')]({'where':{'id':_0x17f5c9[_0xa024('0x67')]['id']}})['then'](handleEntityNotFound(_0x37d976,null))[_0xa024('0x1b')](saveUpdates(_0x17f5c9[_0xa024('0x50')],null))[_0xa024('0x1b')](function(_0x3ce7b9){if(_0x3ce7b9){_0x4da3ff=_0x3ce7b9;return db[_0xa024('0x35')]['findAll']({'where':{'type':_0x4da3ff[_0xa024('0x47')]},'raw':!![]});}return null;})[_0xa024('0x1b')](function(_0x511815){if(_0x4da3ff[_0xa024('0x47')][_0xa024('0x52')]()==_0xa024('0x53')){var _0xaeb4c4=fs['readFileSync'](path[_0xa024('0x55')](config['root'],'server/files/templates/stun_multiple.ejs'),_0xa024('0x58'));var _0x331fa3=ejs[_0xa024('0x5d')](_0xaeb4c4,{'networks':_0x511815||[]});fs[_0xa024('0x5e')](_0xa024('0x59'),_0x331fa3);return respondWithRpcPromise(_0xa024('0x5a'),_0xa024('0x30'),{'module':'res_stun_monitor.so'});}else if(_0x4da3ff[_0xa024('0x47')][_0xa024('0x52')]()==_0xa024('0x5b')){var _0x5c8652=fs[_0xa024('0x54')](path[_0xa024('0x55')](config[_0xa024('0x56')],_0xa024('0x5c')),'utf8');var _0x461f31=ejs[_0xa024('0x5d')](_0x5c8652,{'networks':_0x511815||[]});fs['writeFileSync'](_0xa024('0x5f'),_0x461f31);return respondWithRpcPromise('Reload',_0xa024('0x30'),{'module':'res_stun_monitor.so'});}else{var _0x406d2a=fs[_0xa024('0x54')](path['join'](config[_0xa024('0x56')],_0xa024('0x61')),'utf8');var _0x273a42=ejs[_0xa024('0x5d')](_0x406d2a,{'networks':_0x511815||[]});fs['writeFileSync'](util[_0xa024('0x62')](_0xa024('0x63'),_0x17f5c9[_0xa024('0x50')][_0xa024('0x47')][_0xa024('0x68')]()),_0x273a42);return respondWithRpcPromise('Reload',_0xa024('0x30'),{'module':_0xa024('0x64')});}return null;})[_0xa024('0x1b')](function(_0x4622f4){if(_0x4622f4){return _0x4da3ff;}return null;});})[_0xa024('0x1b')](respondWithResult(_0x37d976,null))['catch'](handleError(_0x37d976,null));};exports[_0xa024('0x31')]=function(_0x4331fb,_0x318c0b,_0x15bcb9){var _0x3edcbf;return db[_0xa024('0x35')]['find']({'where':{'id':_0x4331fb[_0xa024('0x67')]['id']}})[_0xa024('0x1b')](function(_0x349468){_0x3edcbf=_0x349468;return _0x349468;})['then'](handleEntityNotFound(_0x318c0b,null))[_0xa024('0x1b')](removeEntity(_0x318c0b,null))['then'](function(){if(_0x3edcbf){return db[_0xa024('0x35')][_0xa024('0x51')]({'where':{'type':_0x3edcbf[_0xa024('0x47')]},'raw':!![]});}})[_0xa024('0x1b')](function(_0x5dfef9){if(_0x3edcbf[_0xa024('0x47')][_0xa024('0x52')]()=='STUN'){var _0x349643=fs[_0xa024('0x54')](path[_0xa024('0x55')](config[_0xa024('0x56')],_0xa024('0x57')),'utf8');var _0x3df444=ejs[_0xa024('0x5d')](_0x349643,{'networks':_0x5dfef9||[]});fs[_0xa024('0x5e')](_0xa024('0x59'),_0x3df444);return respondWithRpcPromise('Reload',_0xa024('0x31'),{'module':'res_stun_monitor.so'});}else if(_0x3edcbf['type']['toUpperCase']()==_0xa024('0x5b')){var _0x3f14ff=fs['readFileSync'](path[_0xa024('0x55')](config[_0xa024('0x56')],_0xa024('0x5c')),_0xa024('0x58'));var _0x22e7d3=ejs[_0xa024('0x5d')](_0x3f14ff,{'networks':_0x5dfef9||[]});fs[_0xa024('0x5e')](_0xa024('0x5f'),_0x22e7d3);return respondWithRpcPromise(_0xa024('0x5a'),_0xa024('0x31'),{'module':_0xa024('0x60')});}else{var _0x230d54=fs['readFileSync'](path[_0xa024('0x55')](config[_0xa024('0x56')],_0xa024('0x61')),'utf8');var _0x456b9f=ejs[_0xa024('0x5d')](_0x230d54,{'networks':_0x5dfef9||[]});fs[_0xa024('0x5e')](util[_0xa024('0x62')](_0xa024('0x63'),_0x4331fb[_0xa024('0x50')][_0xa024('0x47')][_0xa024('0x68')]()),_0x456b9f);return respondWithRpcPromise('Reload','destroy',{'module':_0xa024('0x64')});}return null;})[_0xa024('0x25')](handleError(_0x318c0b,null));};