Built motion from commit ab870f9e.|2.5.44
[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 _0x93ac=['destroy','name','send','index','map','Network','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','findAll','catch','show','params','rawAttributes','filters','find','create','transaction','body','toUpperCase','STUN','readFileSync','join','root','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','TURN','server/files/templates/turn_multiple.ejs','res_stun_monitor.so','format','toLowerCase','chan_sip.so','update','/etc/asterisk/sip_xcally_%s.conf','server/files/templates/stun_multiple.ejs','server/files/templates/network.ejs','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','message','result','sendStatus','status','end','offset','limit','undefined','count','set','json','apply','save'];(function(_0x178e48,_0x3c9509){var _0x440d7e=function(_0xc2f8a0){while(--_0xc2f8a0){_0x178e48['push'](_0x178e48['shift']());}};_0x440d7e(++_0x3c9509);}(_0x93ac,0x9e));var _0xc93a=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x93ac[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xc93a('0x0'));var rimraf=require(_0xc93a('0x1'));var zipdir=require(_0xc93a('0x2'));var jsonpatch=require(_0xc93a('0x3'));var rp=require('request-promise');var moment=require(_0xc93a('0x4'));var BPromise=require(_0xc93a('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xc93a('0x6'));var sox=require(_0xc93a('0x7'));var csv=require(_0xc93a('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc93a('0x9'));var squel=require(_0xc93a('0xa'));var crypto=require(_0xc93a('0xb'));var jsforce=require(_0xc93a('0xc'));var deskjs=require(_0xc93a('0xd'));var toCsv=require(_0xc93a('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xc93a('0xe'));var qs=require(_0xc93a('0xf'));var as=require(_0xc93a('0x10'));var hardwareService=require(_0xc93a('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0xc93a('0x12'));var config=require(_0xc93a('0x13'));var licenseUtil=require(_0xc93a('0x14'));var db=require(_0xc93a('0x15'))['db'];var jayson=require(_0xc93a('0x16'));var client=jayson[_0xc93a('0x17')][_0xc93a('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x5cf96d,_0x290c2d,_0x5870b5,_0x2ea4a7){return new BPromise(function(_0x4b7f08,_0x1c9041){var _0x19db34=_0x2ea4a7||client;return _0x19db34['request'](_0x5cf96d,_0x5870b5)[_0xc93a('0x19')](function(_0x11cca4){logger[_0xc93a('0x1a')](_0xc93a('0x1b'),_0x290c2d,_0xc93a('0x1c'));logger[_0xc93a('0x1d')](_0xc93a('0x1e'),_0x290c2d,'request\x20sent',JSON[_0xc93a('0x1f')](_0x11cca4));if(_0x11cca4[_0xc93a('0x20')]){if(_0x11cca4['error']['code']===0x1f4){logger['error'](_0xc93a('0x1b'),_0x290c2d,_0x11cca4[_0xc93a('0x20')][_0xc93a('0x21')]);return _0x1c9041(_0x11cca4[_0xc93a('0x20')][_0xc93a('0x21')]);}logger[_0xc93a('0x20')](_0xc93a('0x1b'),_0x290c2d,_0x11cca4[_0xc93a('0x20')]['message']);return _0x4b7f08(_0x11cca4[_0xc93a('0x20')][_0xc93a('0x21')]);}else{logger[_0xc93a('0x1a')]('Network,\x20%s,\x20%s',_0x290c2d,'request\x20sent');_0x4b7f08(_0x11cca4[_0xc93a('0x22')][_0xc93a('0x21')]);}})['catch'](function(_0x4aa595){logger[_0xc93a('0x20')](_0xc93a('0x1b'),_0x290c2d,_0x4aa595);_0x1c9041(_0x4aa595);});});}function respondWithStatusCode(_0xe1984e,_0x48fb77){_0x48fb77=_0x48fb77||0xcc;return function(_0x2accfc){if(_0x2accfc){return _0xe1984e[_0xc93a('0x23')](_0x48fb77);}return _0xe1984e[_0xc93a('0x24')](_0x48fb77)[_0xc93a('0x25')]();};}function respondWithResult(_0x148c94,_0x3095b4){_0x3095b4=_0x3095b4||0xc8;return function(_0x3ec456){if(_0x3ec456){return _0x148c94[_0xc93a('0x24')](_0x3095b4)['json'](_0x3ec456);}};}function respondWithFilteredResult(_0x48f190,_0x87db57){return function(_0x25e8b7){if(_0x25e8b7){var _0x1e4ae3=typeof _0x87db57[_0xc93a('0x26')]==='undefined'&&typeof _0x87db57[_0xc93a('0x27')]===_0xc93a('0x28');var _0x1771c8=_0x25e8b7['count'];var _0x43d38d=_0x1e4ae3?0x0:_0x87db57[_0xc93a('0x26')];var _0x3b0a15=_0x1e4ae3?_0x25e8b7[_0xc93a('0x29')]:_0x87db57[_0xc93a('0x26')]+_0x87db57[_0xc93a('0x27')];var _0x195d0d;if(_0x3b0a15>=_0x1771c8){_0x3b0a15=_0x1771c8;_0x195d0d=0xc8;}else{_0x195d0d=0xce;}_0x48f190[_0xc93a('0x24')](_0x195d0d);return _0x48f190[_0xc93a('0x2a')]('Content-Range',_0x43d38d+'-'+_0x3b0a15+'/'+_0x1771c8)[_0xc93a('0x2b')](_0x25e8b7);}return null;};}function patchUpdates(_0x396374){return function(_0x887201){try{jsonpatch[_0xc93a('0x2c')](_0x887201,_0x396374,!![]);}catch(_0x1daba7){return BPromise['reject'](_0x1daba7);}return _0x887201[_0xc93a('0x2d')]();};}function saveUpdates(_0x659b40,_0x51ac5e){return function(_0x577196){if(_0x577196){return _0x577196['update'](_0x659b40)['then'](function(_0x10748b){return _0x10748b;});}return null;};}function removeEntity(_0x5174f5,_0x403334){return function(_0x330a00){if(_0x330a00){return _0x330a00[_0xc93a('0x2e')]()[_0xc93a('0x19')](function(){_0x5174f5[_0xc93a('0x24')](0xcc)[_0xc93a('0x25')]();});}};}function handleEntityNotFound(_0x43fbb1,_0x4b4865){return function(_0x5cf9a9){if(!_0x5cf9a9){_0x43fbb1[_0xc93a('0x23')](0x194);}return _0x5cf9a9;};}function handleError(_0x1932aa,_0x4c576e){_0x4c576e=_0x4c576e||0x1f4;return function(_0x405426){logger[_0xc93a('0x20')](_0x405426['stack']);if(_0x405426[_0xc93a('0x2f')]){delete _0x405426['name'];}_0x1932aa['status'](_0x4c576e)[_0xc93a('0x30')](_0x405426);};}exports[_0xc93a('0x31')]=function(_0x20ef22,_0x508920){var _0x14618e={},_0x1ee1d4={},_0x469e50={'count':0x0,'rows':[]};var _0x437ed9=_[_0xc93a('0x32')](db[_0xc93a('0x33')]['rawAttributes'],function(_0x19711c){return{'name':_0x19711c[_0xc93a('0x34')],'type':_0x19711c[_0xc93a('0x35')][_0xc93a('0x36')]};});_0x1ee1d4[_0xc93a('0x37')]=_[_0xc93a('0x32')](_0x437ed9,_0xc93a('0x2f'));_0x1ee1d4[_0xc93a('0x38')]=_[_0xc93a('0x39')](_0x20ef22['query']);_0x1ee1d4['filters']=_[_0xc93a('0x3a')](_0x1ee1d4[_0xc93a('0x37')],_0x1ee1d4[_0xc93a('0x38')]);_0x14618e['attributes']=_[_0xc93a('0x3a')](_0x1ee1d4[_0xc93a('0x37')],qs[_0xc93a('0x3b')](_0x20ef22[_0xc93a('0x38')][_0xc93a('0x3b')]));_0x14618e[_0xc93a('0x3c')]=_0x14618e['attributes'][_0xc93a('0x3d')]?_0x14618e[_0xc93a('0x3c')]:_0x1ee1d4[_0xc93a('0x37')];if(!_0x20ef22[_0xc93a('0x38')]['hasOwnProperty'](_0xc93a('0x3e'))){_0x14618e[_0xc93a('0x27')]=qs[_0xc93a('0x27')](_0x20ef22[_0xc93a('0x38')][_0xc93a('0x27')]);_0x14618e[_0xc93a('0x26')]=qs[_0xc93a('0x26')](_0x20ef22[_0xc93a('0x38')][_0xc93a('0x26')]);}_0x14618e[_0xc93a('0x3f')]=qs[_0xc93a('0x40')](_0x20ef22[_0xc93a('0x38')]['sort']);_0x14618e['where']=qs['filters'](_[_0xc93a('0x41')](_0x20ef22['query'],_0x1ee1d4['filters']),_0x437ed9);if(_0x20ef22[_0xc93a('0x38')][_0xc93a('0x42')]){_0x14618e[_0xc93a('0x43')]=_[_0xc93a('0x44')](_0x14618e['where'],{'$or':_[_0xc93a('0x32')](_0x437ed9,function(_0x188226){if(_0x188226[_0xc93a('0x35')]!==_0xc93a('0x45')){var _0xbf9afb={};_0xbf9afb[_0x188226[_0xc93a('0x2f')]]={'$like':'%'+_0x20ef22[_0xc93a('0x38')][_0xc93a('0x42')]+'%'};return _0xbf9afb;}})});}_0x14618e=_[_0xc93a('0x44')]({},_0x14618e,_0x20ef22[_0xc93a('0x46')]);var _0x2e7eb9={'where':_0x14618e['where']};return db[_0xc93a('0x33')][_0xc93a('0x29')](_0x2e7eb9)[_0xc93a('0x19')](function(_0x4b8689){_0x469e50[_0xc93a('0x29')]=_0x4b8689;if(_0x20ef22[_0xc93a('0x38')][_0xc93a('0x47')]){_0x14618e['include']=[{'all':!![]}];}return db['Network'][_0xc93a('0x48')](_0x14618e);})[_0xc93a('0x19')](function(_0xa31e1f){_0x469e50['rows']=_0xa31e1f;return _0x469e50;})['then'](respondWithFilteredResult(_0x508920,_0x14618e))[_0xc93a('0x49')](handleError(_0x508920,null));};exports[_0xc93a('0x4a')]=function(_0x2679be,_0x2cef44){var _0x40ac5c={'raw':!![],'where':{'id':_0x2679be[_0xc93a('0x4b')]['id']}},_0xae2199={};_0xae2199[_0xc93a('0x37')]=_[_0xc93a('0x39')](db[_0xc93a('0x33')][_0xc93a('0x4c')]);_0xae2199['query']=_[_0xc93a('0x39')](_0x2679be[_0xc93a('0x38')]);_0xae2199[_0xc93a('0x4d')]=_['intersection'](_0xae2199[_0xc93a('0x37')],_0xae2199[_0xc93a('0x38')]);_0x40ac5c[_0xc93a('0x3c')]=_[_0xc93a('0x3a')](_0xae2199['model'],qs[_0xc93a('0x3b')](_0x2679be[_0xc93a('0x38')][_0xc93a('0x3b')]));_0x40ac5c['attributes']=_0x40ac5c['attributes'][_0xc93a('0x3d')]?_0x40ac5c['attributes']:_0xae2199[_0xc93a('0x37')];if(_0x2679be[_0xc93a('0x38')][_0xc93a('0x47')]){_0x40ac5c['include']=[{'all':!![]}];}_0x40ac5c=_['merge']({},_0x40ac5c,_0x2679be['options']);return db['Network'][_0xc93a('0x4e')](_0x40ac5c)[_0xc93a('0x19')](handleEntityNotFound(_0x2cef44,null))[_0xc93a('0x19')](respondWithResult(_0x2cef44,null))[_0xc93a('0x49')](handleError(_0x2cef44,null));};exports[_0xc93a('0x4f')]=function(_0x468911,_0x371647,_0xaf0e5f){var _0xf2e405;return db['sequelize'][_0xc93a('0x50')](function(_0x1abfa4){return db[_0xc93a('0x33')][_0xc93a('0x4f')](_0x468911[_0xc93a('0x51')],{'raw':!![]})[_0xc93a('0x19')](function(_0x2941aa){_0xf2e405=_0x2941aa;return db[_0xc93a('0x33')][_0xc93a('0x48')]({'where':{'type':_0x468911[_0xc93a('0x51')]['type']},'raw':!![]});})[_0xc93a('0x19')](function(_0xb82e97){if(_0xf2e405[_0xc93a('0x35')][_0xc93a('0x52')]()==_0xc93a('0x53')){var _0x4fe159=fs[_0xc93a('0x54')](path[_0xc93a('0x55')](config[_0xc93a('0x56')],'server/files/templates/stun_multiple.ejs'),_0xc93a('0x57'));var _0x101145=ejs[_0xc93a('0x58')](_0x4fe159,{'networks':_0xb82e97||[]});fs[_0xc93a('0x59')](_0xc93a('0x5a'),_0x101145);return respondWithRpcPromise(_0xc93a('0x5b'),_0xc93a('0x4f'),{'module':'res_stun_monitor.so'});}else if(_0xf2e405[_0xc93a('0x35')]['toUpperCase']()==_0xc93a('0x5c')){var _0x5bdb25=fs['readFileSync'](path[_0xc93a('0x55')](config[_0xc93a('0x56')],_0xc93a('0x5d')),_0xc93a('0x57'));var _0x1ee275=ejs[_0xc93a('0x58')](_0x5bdb25,{'networks':_0xb82e97||[]});fs[_0xc93a('0x59')]('/etc/asterisk/turn_xcally.conf',_0x1ee275);return respondWithRpcPromise('Reload',_0xc93a('0x4f'),{'module':_0xc93a('0x5e')});}else{var _0x48a9d3=fs[_0xc93a('0x54')](path[_0xc93a('0x55')](config[_0xc93a('0x56')],'server/files/templates/network.ejs'),_0xc93a('0x57'));var _0x44b28e=ejs[_0xc93a('0x58')](_0x48a9d3,{'networks':_0xb82e97||[]});fs[_0xc93a('0x59')](util[_0xc93a('0x5f')]('/etc/asterisk/sip_xcally_%s.conf',_0x468911['body'][_0xc93a('0x35')][_0xc93a('0x60')]()),_0x44b28e);return respondWithRpcPromise('Reload','create',{'module':_0xc93a('0x61')});}return null;})[_0xc93a('0x19')](function(){return _0xf2e405;});})['then'](respondWithResult(_0x371647,0xc9))[_0xc93a('0x49')](handleError(_0x371647,null));};exports[_0xc93a('0x62')]=function(_0x1c2a4d,_0x4ef3f2,_0x39ef6c){var _0x30878d;return db['sequelize'][_0xc93a('0x50')](function(_0x2610af){return db[_0xc93a('0x33')][_0xc93a('0x4e')]({'where':{'id':_0x1c2a4d['params']['id']}})[_0xc93a('0x19')](handleEntityNotFound(_0x4ef3f2,null))[_0xc93a('0x19')](saveUpdates(_0x1c2a4d[_0xc93a('0x51')],null))[_0xc93a('0x19')](function(_0x573026){if(_0x573026){_0x30878d=_0x573026;return db[_0xc93a('0x33')][_0xc93a('0x48')]({'where':{'type':_0x30878d[_0xc93a('0x35')]},'raw':!![]});}return null;})[_0xc93a('0x19')](function(_0x3cc288){if(_0x30878d[_0xc93a('0x35')][_0xc93a('0x52')]()=='STUN'){var _0x3a66a4=fs['readFileSync'](path[_0xc93a('0x55')](config[_0xc93a('0x56')],'server/files/templates/stun_multiple.ejs'),_0xc93a('0x57'));var _0xec6345=ejs[_0xc93a('0x58')](_0x3a66a4,{'networks':_0x3cc288||[]});fs[_0xc93a('0x59')](_0xc93a('0x5a'),_0xec6345);return respondWithRpcPromise('Reload',_0xc93a('0x62'),{'module':_0xc93a('0x5e')});}else if(_0x30878d['type']['toUpperCase']()=='TURN'){var _0x435cff=fs[_0xc93a('0x54')](path[_0xc93a('0x55')](config['root'],_0xc93a('0x5d')),_0xc93a('0x57'));var _0xcad056=ejs[_0xc93a('0x58')](_0x435cff,{'networks':_0x3cc288||[]});fs[_0xc93a('0x59')]('/etc/asterisk/turn_xcally.conf',_0xcad056);return respondWithRpcPromise(_0xc93a('0x5b'),_0xc93a('0x62'),{'module':_0xc93a('0x5e')});}else{var _0x332317=fs['readFileSync'](path[_0xc93a('0x55')](config[_0xc93a('0x56')],'server/files/templates/network.ejs'),_0xc93a('0x57'));var _0x2ed952=ejs['render'](_0x332317,{'networks':_0x3cc288||[]});fs['writeFileSync'](util[_0xc93a('0x5f')](_0xc93a('0x63'),_0x1c2a4d[_0xc93a('0x51')][_0xc93a('0x35')][_0xc93a('0x60')]()),_0x2ed952);return respondWithRpcPromise(_0xc93a('0x5b'),_0xc93a('0x62'),{'module':'chan_sip.so'});}return null;})[_0xc93a('0x19')](function(_0x4a7968){if(_0x4a7968){return _0x30878d;}return null;});})[_0xc93a('0x19')](respondWithResult(_0x4ef3f2,null))['catch'](handleError(_0x4ef3f2,null));};exports[_0xc93a('0x2e')]=function(_0x1ce767,_0x23f1d8,_0x4ba14f){var _0x724460;return db[_0xc93a('0x33')]['find']({'where':{'id':_0x1ce767[_0xc93a('0x4b')]['id']}})[_0xc93a('0x19')](function(_0x568c5a){_0x724460=_0x568c5a;return _0x568c5a;})['then'](handleEntityNotFound(_0x23f1d8,null))['then'](removeEntity(_0x23f1d8,null))[_0xc93a('0x19')](function(){if(_0x724460){return db[_0xc93a('0x33')]['findAll']({'where':{'type':_0x724460[_0xc93a('0x35')]},'raw':!![]});}})[_0xc93a('0x19')](function(_0x2adf78){if(_0x724460[_0xc93a('0x35')][_0xc93a('0x52')]()=='STUN'){var _0xb49aec=fs[_0xc93a('0x54')](path[_0xc93a('0x55')](config[_0xc93a('0x56')],_0xc93a('0x64')),_0xc93a('0x57'));var _0xcd6fdd=ejs[_0xc93a('0x58')](_0xb49aec,{'networks':_0x2adf78||[]});fs[_0xc93a('0x59')](_0xc93a('0x5a'),_0xcd6fdd);return respondWithRpcPromise(_0xc93a('0x5b'),_0xc93a('0x2e'),{'module':_0xc93a('0x5e')});}else if(_0x724460[_0xc93a('0x35')]['toUpperCase']()=='TURN'){var _0x2d0329=fs[_0xc93a('0x54')](path[_0xc93a('0x55')](config[_0xc93a('0x56')],_0xc93a('0x5d')),'utf8');var _0x42133e=ejs[_0xc93a('0x58')](_0x2d0329,{'networks':_0x2adf78||[]});fs[_0xc93a('0x59')]('/etc/asterisk/turn_xcally.conf',_0x42133e);return respondWithRpcPromise(_0xc93a('0x5b'),_0xc93a('0x2e'),{'module':'res_stun_monitor.so'});}else{var _0x25d761=fs[_0xc93a('0x54')](path[_0xc93a('0x55')](config[_0xc93a('0x56')],_0xc93a('0x65')),_0xc93a('0x57'));var _0x3644ba=ejs[_0xc93a('0x58')](_0x25d761,{'networks':_0x2adf78||[]});fs[_0xc93a('0x59')](util[_0xc93a('0x5f')](_0xc93a('0x63'),_0x1ce767[_0xc93a('0x51')][_0xc93a('0x35')]['toLowerCase']()),_0x3644ba);return respondWithRpcPromise('Reload','destroy',{'module':'chan_sip.so'});}return null;})[_0xc93a('0x49')](handleError(_0x23f1d8,null));};