7cab15650fb9464bb056c3948916fadf487a60c9
[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 _0xa120=['attributes','fields','hasOwnProperty','sort','pick','filters','filter','where','merge','includeAll','include','findAll','rows','show','params','rawAttributes','length','options','find','create','sequelize','transaction','body','STUN','readFileSync','join','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','root','server/files/templates/turn_multiple.ejs','format','/etc/asterisk/sip_xcally_%s.conf','catch','toUpperCase','TURN','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','chan_sip.so','destroy','toLowerCase','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','http','then','info','Network,\x20%s,\x20%s','request\x20sent','Network,\x20%s,\x20%s,\x20%s','error','message','result','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','save','update','index','map','Network','fieldName','type','key','model','name','keys','query','intersection'];(function(_0x494854,_0x3f981e){var _0x5edaaa=function(_0x13675b){while(--_0x13675b){_0x494854['push'](_0x494854['shift']());}};_0x5edaaa(++_0x3f981e);}(_0xa120,0x168));var _0x0a12=function(_0xcdb976,_0x346721){_0xcdb976=_0xcdb976-0x0;var _0x4d4c74=_0xa120[_0xcdb976];return _0x4d4c74;};'use strict';var emlformat=require(_0x0a12('0x0'));var rimraf=require(_0x0a12('0x1'));var zipdir=require(_0x0a12('0x2'));var jsonpatch=require(_0x0a12('0x3'));var rp=require(_0x0a12('0x4'));var moment=require(_0x0a12('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x0a12('0x6'));var util=require(_0x0a12('0x7'));var path=require(_0x0a12('0x8'));var sox=require('sox');var csv=require(_0x0a12('0x9'));var ejs=require(_0x0a12('0xa'));var fs=require('fs');var fs_extra=require(_0x0a12('0xb'));var _=require(_0x0a12('0xc'));var squel=require(_0x0a12('0xd'));var crypto=require(_0x0a12('0xe'));var jsforce=require(_0x0a12('0xf'));var deskjs=require(_0x0a12('0x10'));var toCsv=require(_0x0a12('0x9'));var querystring=require(_0x0a12('0x11'));var Papa=require(_0x0a12('0x12'));var Redis=require(_0x0a12('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x0a12('0x14'));var as=require(_0x0a12('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0a12('0x16'))(_0x0a12('0x17'));var utils=require('../../config/utils');var config=require(_0x0a12('0x18'));var licenseUtil=require(_0x0a12('0x19'));var db=require(_0x0a12('0x1a'))['db'];var jayson=require(_0x0a12('0x1b'));var client=jayson['client'][_0x0a12('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x262d37,_0x40499f,_0x261234,_0xdc75a4){return new BPromise(function(_0x394040,_0xc5ef8c){var _0x5f45e9=_0xdc75a4||client;return _0x5f45e9['request'](_0x262d37,_0x261234)[_0x0a12('0x1d')](function(_0xb3df89){logger[_0x0a12('0x1e')](_0x0a12('0x1f'),_0x40499f,_0x0a12('0x20'));logger['debug'](_0x0a12('0x21'),_0x40499f,_0x0a12('0x20'),JSON['stringify'](_0xb3df89));if(_0xb3df89[_0x0a12('0x22')]){if(_0xb3df89[_0x0a12('0x22')]['code']===0x1f4){logger[_0x0a12('0x22')](_0x0a12('0x1f'),_0x40499f,_0xb3df89['error'][_0x0a12('0x23')]);return _0xc5ef8c(_0xb3df89[_0x0a12('0x22')]['message']);}logger[_0x0a12('0x22')](_0x0a12('0x1f'),_0x40499f,_0xb3df89[_0x0a12('0x22')][_0x0a12('0x23')]);return _0x394040(_0xb3df89[_0x0a12('0x22')][_0x0a12('0x23')]);}else{logger[_0x0a12('0x1e')](_0x0a12('0x1f'),_0x40499f,'request\x20sent');_0x394040(_0xb3df89[_0x0a12('0x24')][_0x0a12('0x23')]);}})['catch'](function(_0xfcf907){logger[_0x0a12('0x22')](_0x0a12('0x1f'),_0x40499f,_0xfcf907);_0xc5ef8c(_0xfcf907);});});}function respondWithStatusCode(_0x116295,_0x9c8d77){_0x9c8d77=_0x9c8d77||0xcc;return function(_0x2e16d9){if(_0x2e16d9){return _0x116295[_0x0a12('0x25')](_0x9c8d77);}return _0x116295[_0x0a12('0x26')](_0x9c8d77)[_0x0a12('0x27')]();};}function respondWithResult(_0x5da5f2,_0x5472f3){_0x5472f3=_0x5472f3||0xc8;return function(_0x3c9f3d){if(_0x3c9f3d){return _0x5da5f2['status'](_0x5472f3)[_0x0a12('0x28')](_0x3c9f3d);}};}function respondWithFilteredResult(_0x295d3e,_0x14f6ae){return function(_0x11f74e){if(_0x11f74e){var _0x5cc48d=typeof _0x14f6ae[_0x0a12('0x29')]===_0x0a12('0x2a')&&typeof _0x14f6ae[_0x0a12('0x2b')]==='undefined';var _0x2f48f5=_0x11f74e[_0x0a12('0x2c')];var _0x18af7a=_0x5cc48d?0x0:_0x14f6ae[_0x0a12('0x29')];var _0x59d111=_0x5cc48d?_0x11f74e[_0x0a12('0x2c')]:_0x14f6ae[_0x0a12('0x29')]+_0x14f6ae['limit'];var _0x537545;if(_0x59d111>=_0x2f48f5){_0x59d111=_0x2f48f5;_0x537545=0xc8;}else{_0x537545=0xce;}_0x295d3e['status'](_0x537545);return _0x295d3e[_0x0a12('0x2d')]('Content-Range',_0x18af7a+'-'+_0x59d111+'/'+_0x2f48f5)['json'](_0x11f74e);}return null;};}function patchUpdates(_0x3f14b5){return function(_0x59d99d){try{jsonpatch[_0x0a12('0x2e')](_0x59d99d,_0x3f14b5,!![]);}catch(_0x14d1eb){return BPromise['reject'](_0x14d1eb);}return _0x59d99d[_0x0a12('0x2f')]();};}function saveUpdates(_0x25093a,_0x2b37c5){return function(_0x4255df){if(_0x4255df){return _0x4255df[_0x0a12('0x30')](_0x25093a)[_0x0a12('0x1d')](function(_0x297920){return _0x297920;});}return null;};}function removeEntity(_0xc0d90a,_0x3f5b85){return function(_0x10cc82){if(_0x10cc82){return _0x10cc82['destroy']()[_0x0a12('0x1d')](function(){_0xc0d90a[_0x0a12('0x26')](0xcc)[_0x0a12('0x27')]();});}};}function handleEntityNotFound(_0x237810,_0x17a8ea){return function(_0x271433){if(!_0x271433){_0x237810['sendStatus'](0x194);}return _0x271433;};}function handleError(_0x3b1e67,_0x1b598e){_0x1b598e=_0x1b598e||0x1f4;return function(_0x4b57fd){logger['error'](_0x4b57fd['stack']);if(_0x4b57fd['name']){delete _0x4b57fd['name'];}_0x3b1e67[_0x0a12('0x26')](_0x1b598e)['send'](_0x4b57fd);};}exports[_0x0a12('0x31')]=function(_0x493ed4,_0x3cb241){var _0x3704d0={},_0x4b15d2={},_0x2e833d={'count':0x0,'rows':[]};var _0x6ef7b4=_[_0x0a12('0x32')](db[_0x0a12('0x33')]['rawAttributes'],function(_0x305b77){return{'name':_0x305b77[_0x0a12('0x34')],'type':_0x305b77[_0x0a12('0x35')][_0x0a12('0x36')]};});_0x4b15d2[_0x0a12('0x37')]=_['map'](_0x6ef7b4,_0x0a12('0x38'));_0x4b15d2['query']=_[_0x0a12('0x39')](_0x493ed4[_0x0a12('0x3a')]);_0x4b15d2['filters']=_[_0x0a12('0x3b')](_0x4b15d2[_0x0a12('0x37')],_0x4b15d2[_0x0a12('0x3a')]);_0x3704d0[_0x0a12('0x3c')]=_['intersection'](_0x4b15d2[_0x0a12('0x37')],qs[_0x0a12('0x3d')](_0x493ed4[_0x0a12('0x3a')][_0x0a12('0x3d')]));_0x3704d0[_0x0a12('0x3c')]=_0x3704d0[_0x0a12('0x3c')]['length']?_0x3704d0[_0x0a12('0x3c')]:_0x4b15d2[_0x0a12('0x37')];if(!_0x493ed4[_0x0a12('0x3a')][_0x0a12('0x3e')]('nolimit')){_0x3704d0[_0x0a12('0x2b')]=qs['limit'](_0x493ed4[_0x0a12('0x3a')][_0x0a12('0x2b')]);_0x3704d0[_0x0a12('0x29')]=qs[_0x0a12('0x29')](_0x493ed4[_0x0a12('0x3a')][_0x0a12('0x29')]);}_0x3704d0['order']=qs['sort'](_0x493ed4[_0x0a12('0x3a')][_0x0a12('0x3f')]);_0x3704d0['where']=qs['filters'](_[_0x0a12('0x40')](_0x493ed4[_0x0a12('0x3a')],_0x4b15d2[_0x0a12('0x41')]),_0x6ef7b4);if(_0x493ed4[_0x0a12('0x3a')][_0x0a12('0x42')]){_0x3704d0[_0x0a12('0x43')]=_[_0x0a12('0x44')](_0x3704d0[_0x0a12('0x43')],{'$or':_[_0x0a12('0x32')](_0x6ef7b4,function(_0x48e4f4){if(_0x48e4f4[_0x0a12('0x35')]!=='VIRTUAL'){var _0x394363={};_0x394363[_0x48e4f4[_0x0a12('0x38')]]={'$like':'%'+_0x493ed4['query'][_0x0a12('0x42')]+'%'};return _0x394363;}})});}_0x3704d0=_[_0x0a12('0x44')]({},_0x3704d0,_0x493ed4['options']);var _0x270b79={'where':_0x3704d0[_0x0a12('0x43')]};return db[_0x0a12('0x33')][_0x0a12('0x2c')](_0x270b79)[_0x0a12('0x1d')](function(_0x581f3b){_0x2e833d['count']=_0x581f3b;if(_0x493ed4[_0x0a12('0x3a')][_0x0a12('0x45')]){_0x3704d0[_0x0a12('0x46')]=[{'all':!![]}];}return db[_0x0a12('0x33')][_0x0a12('0x47')](_0x3704d0);})[_0x0a12('0x1d')](function(_0x18db1e){_0x2e833d[_0x0a12('0x48')]=_0x18db1e;return _0x2e833d;})[_0x0a12('0x1d')](respondWithFilteredResult(_0x3cb241,_0x3704d0))['catch'](handleError(_0x3cb241,null));};exports[_0x0a12('0x49')]=function(_0x474656,_0x223aef){var _0x40fa58={'raw':!![],'where':{'id':_0x474656[_0x0a12('0x4a')]['id']}},_0xd21d35={};_0xd21d35[_0x0a12('0x37')]=_[_0x0a12('0x39')](db[_0x0a12('0x33')][_0x0a12('0x4b')]);_0xd21d35['query']=_[_0x0a12('0x39')](_0x474656[_0x0a12('0x3a')]);_0xd21d35[_0x0a12('0x41')]=_['intersection'](_0xd21d35['model'],_0xd21d35[_0x0a12('0x3a')]);_0x40fa58[_0x0a12('0x3c')]=_['intersection'](_0xd21d35[_0x0a12('0x37')],qs[_0x0a12('0x3d')](_0x474656[_0x0a12('0x3a')][_0x0a12('0x3d')]));_0x40fa58[_0x0a12('0x3c')]=_0x40fa58['attributes'][_0x0a12('0x4c')]?_0x40fa58[_0x0a12('0x3c')]:_0xd21d35[_0x0a12('0x37')];if(_0x474656[_0x0a12('0x3a')]['includeAll']){_0x40fa58[_0x0a12('0x46')]=[{'all':!![]}];}_0x40fa58=_[_0x0a12('0x44')]({},_0x40fa58,_0x474656[_0x0a12('0x4d')]);return db[_0x0a12('0x33')][_0x0a12('0x4e')](_0x40fa58)[_0x0a12('0x1d')](handleEntityNotFound(_0x223aef,null))[_0x0a12('0x1d')](respondWithResult(_0x223aef,null))['catch'](handleError(_0x223aef,null));};exports[_0x0a12('0x4f')]=function(_0xa27a40,_0x4437ad,_0x5673f5){var _0x1d8a95;return db[_0x0a12('0x50')][_0x0a12('0x51')](function(_0x45af41){return db['Network'][_0x0a12('0x4f')](_0xa27a40[_0x0a12('0x52')],{'raw':!![]})[_0x0a12('0x1d')](function(_0x446885){_0x1d8a95=_0x446885;return db[_0x0a12('0x33')][_0x0a12('0x47')]({'where':{'type':_0xa27a40[_0x0a12('0x52')][_0x0a12('0x35')]},'raw':!![]});})[_0x0a12('0x1d')](function(_0x1629e4){if(_0x1d8a95['type']['toUpperCase']()==_0x0a12('0x53')){var _0x43a940=fs[_0x0a12('0x54')](path[_0x0a12('0x55')](config['root'],_0x0a12('0x56')),_0x0a12('0x57'));var _0x57aa56=ejs[_0x0a12('0x58')](_0x43a940,{'networks':_0x1629e4||[]});fs[_0x0a12('0x59')](_0x0a12('0x5a'),_0x57aa56);return respondWithRpcPromise(_0x0a12('0x5b'),_0x0a12('0x4f'),{'module':_0x0a12('0x5c')});}else if(_0x1d8a95[_0x0a12('0x35')]['toUpperCase']()=='TURN'){var _0x3a5ddb=fs[_0x0a12('0x54')](path[_0x0a12('0x55')](config[_0x0a12('0x5d')],_0x0a12('0x5e')),_0x0a12('0x57'));var _0x263d13=ejs[_0x0a12('0x58')](_0x3a5ddb,{'networks':_0x1629e4||[]});fs['writeFileSync']('/etc/asterisk/turn_xcally.conf',_0x263d13);return respondWithRpcPromise('Reload',_0x0a12('0x4f'),{'module':_0x0a12('0x5c')});}else{var _0x36c843=fs[_0x0a12('0x54')](path[_0x0a12('0x55')](config[_0x0a12('0x5d')],'server/files/templates/network.ejs'),_0x0a12('0x57'));var _0x4f63e1=ejs[_0x0a12('0x58')](_0x36c843,{'networks':_0x1629e4||[]});fs['writeFileSync'](util[_0x0a12('0x5f')](_0x0a12('0x60'),_0xa27a40[_0x0a12('0x52')]['type']['toLowerCase']()),_0x4f63e1);return respondWithRpcPromise('Reload',_0x0a12('0x4f'),{'module':'chan_sip.so'});}return null;})[_0x0a12('0x1d')](function(){return _0x1d8a95;});})[_0x0a12('0x1d')](respondWithResult(_0x4437ad,0xc9))[_0x0a12('0x61')](handleError(_0x4437ad,null));};exports[_0x0a12('0x30')]=function(_0x30f20b,_0x31bf44,_0x40c0a7){var _0x1d32c3;return db[_0x0a12('0x50')][_0x0a12('0x51')](function(_0x233686){return db[_0x0a12('0x33')][_0x0a12('0x4e')]({'where':{'id':_0x30f20b['params']['id']}})['then'](handleEntityNotFound(_0x31bf44,null))[_0x0a12('0x1d')](saveUpdates(_0x30f20b[_0x0a12('0x52')],null))[_0x0a12('0x1d')](function(_0x49c3ef){if(_0x49c3ef){_0x1d32c3=_0x49c3ef;return db[_0x0a12('0x33')]['findAll']({'where':{'type':_0x1d32c3[_0x0a12('0x35')]},'raw':!![]});}return null;})[_0x0a12('0x1d')](function(_0x41c773){if(_0x1d32c3['type'][_0x0a12('0x62')]()=='STUN'){var _0x599208=fs[_0x0a12('0x54')](path[_0x0a12('0x55')](config[_0x0a12('0x5d')],_0x0a12('0x56')),'utf8');var _0x352269=ejs['render'](_0x599208,{'networks':_0x41c773||[]});fs[_0x0a12('0x59')](_0x0a12('0x5a'),_0x352269);return respondWithRpcPromise(_0x0a12('0x5b'),_0x0a12('0x30'),{'module':_0x0a12('0x5c')});}else if(_0x1d32c3['type'][_0x0a12('0x62')]()==_0x0a12('0x63')){var _0x4a08fd=fs[_0x0a12('0x54')](path[_0x0a12('0x55')](config[_0x0a12('0x5d')],'server/files/templates/turn_multiple.ejs'),'utf8');var _0x281bd2=ejs[_0x0a12('0x58')](_0x4a08fd,{'networks':_0x41c773||[]});fs['writeFileSync'](_0x0a12('0x64'),_0x281bd2);return respondWithRpcPromise(_0x0a12('0x5b'),_0x0a12('0x30'),{'module':_0x0a12('0x5c')});}else{var _0x36dbd4=fs[_0x0a12('0x54')](path[_0x0a12('0x55')](config[_0x0a12('0x5d')],_0x0a12('0x65')),_0x0a12('0x57'));var _0x613309=ejs[_0x0a12('0x58')](_0x36dbd4,{'networks':_0x41c773||[]});fs[_0x0a12('0x59')](util[_0x0a12('0x5f')](_0x0a12('0x60'),_0x30f20b[_0x0a12('0x52')]['type']['toLowerCase']()),_0x613309);return respondWithRpcPromise(_0x0a12('0x5b'),_0x0a12('0x30'),{'module':_0x0a12('0x66')});}return null;})['then'](function(_0x25fb6a){if(_0x25fb6a){return _0x1d32c3;}return null;});})[_0x0a12('0x1d')](respondWithResult(_0x31bf44,null))['catch'](handleError(_0x31bf44,null));};exports[_0x0a12('0x67')]=function(_0x264514,_0x5a0b94,_0x3251d6){var _0x7707a0;return db['Network'][_0x0a12('0x4e')]({'where':{'id':_0x264514[_0x0a12('0x4a')]['id']}})[_0x0a12('0x1d')](function(_0x3c02ef){_0x7707a0=_0x3c02ef;return _0x3c02ef;})[_0x0a12('0x1d')](handleEntityNotFound(_0x5a0b94,null))[_0x0a12('0x1d')](removeEntity(_0x5a0b94,null))[_0x0a12('0x1d')](function(){if(_0x7707a0){return db[_0x0a12('0x33')][_0x0a12('0x47')]({'where':{'type':_0x7707a0[_0x0a12('0x35')]},'raw':!![]});}})[_0x0a12('0x1d')](function(_0x3fe637){if(_0x7707a0['type']['toUpperCase']()==_0x0a12('0x53')){var _0x173030=fs[_0x0a12('0x54')](path[_0x0a12('0x55')](config[_0x0a12('0x5d')],_0x0a12('0x56')),_0x0a12('0x57'));var _0xf7d03b=ejs[_0x0a12('0x58')](_0x173030,{'networks':_0x3fe637||[]});fs[_0x0a12('0x59')](_0x0a12('0x5a'),_0xf7d03b);return respondWithRpcPromise(_0x0a12('0x5b'),_0x0a12('0x67'),{'module':'res_stun_monitor.so'});}else if(_0x7707a0[_0x0a12('0x35')][_0x0a12('0x62')]()=='TURN'){var _0x41a88c=fs[_0x0a12('0x54')](path[_0x0a12('0x55')](config[_0x0a12('0x5d')],_0x0a12('0x5e')),'utf8');var _0x503c2b=ejs[_0x0a12('0x58')](_0x41a88c,{'networks':_0x3fe637||[]});fs['writeFileSync'](_0x0a12('0x64'),_0x503c2b);return respondWithRpcPromise(_0x0a12('0x5b'),_0x0a12('0x67'),{'module':_0x0a12('0x5c')});}else{var _0x3955a5=fs[_0x0a12('0x54')](path[_0x0a12('0x55')](config['root'],_0x0a12('0x65')),'utf8');var _0x3d6a6f=ejs[_0x0a12('0x58')](_0x3955a5,{'networks':_0x3fe637||[]});fs[_0x0a12('0x59')](util['format'](_0x0a12('0x60'),_0x264514[_0x0a12('0x52')][_0x0a12('0x35')][_0x0a12('0x68')]()),_0x3d6a6f);return respondWithRpcPromise('Reload',_0x0a12('0x67'),{'module':_0x0a12('0x66')});}return null;})['catch'](handleError(_0x5a0b94,null));};