Built motion from commit 5b761a7b.|2.5.36
[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 _0xf629=['STUN','render','update','server/files/templates/network.ejs','toLowerCase','eml-format','zip-dir','request-promise','moment','bluebird','mustache','sox','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','http','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','then','destroy','status','stack','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','merge','filter','options','Network','includeAll','include','findAll','rows','catch','show','params','find','sequelize','root','server/files/templates/stun_multiple.ejs','utf8','/etc/asterisk/stun_xcally.conf','create','res_stun_monitor.so','toUpperCase','TURN','readFileSync','join','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','Reload','writeFileSync','format','/etc/asterisk/sip_xcally_%s.conf','chan_sip.so','transaction','body'];(function(_0x58afd5,_0x534a48){var _0x3e503b=function(_0x27ba44){while(--_0x27ba44){_0x58afd5['push'](_0x58afd5['shift']());}};_0x3e503b(++_0x534a48);}(_0xf629,0xd7));var _0x9f62=function(_0x2a388,_0x447623){_0x2a388=_0x2a388-0x0;var _0x43b023=_0xf629[_0x2a388];return _0x43b023;};'use strict';var emlformat=require(_0x9f62('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9f62('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9f62('0x2'));var moment=require(_0x9f62('0x3'));var BPromise=require(_0x9f62('0x4'));var Mustache=require(_0x9f62('0x5'));var util=require('util');var path=require('path');var sox=require(_0x9f62('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9f62('0x7'));var _=require('lodash');var squel=require(_0x9f62('0x8'));var crypto=require(_0x9f62('0x9'));var jsforce=require(_0x9f62('0xa'));var deskjs=require(_0x9f62('0xb'));var toCsv=require(_0x9f62('0xc'));var querystring=require(_0x9f62('0xd'));var Papa=require(_0x9f62('0xe'));var Redis=require(_0x9f62('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x9f62('0x10'));var as=require(_0x9f62('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9f62('0x12'))(_0x9f62('0x13'));var utils=require(_0x9f62('0x14'));var config=require(_0x9f62('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x9f62('0x16'))['db'];var jayson=require('jayson/promise');var client=jayson['client'][_0x9f62('0x17')]({'port':0x232a});function respondWithRpcPromise(_0xef44ae,_0x263f17,_0x313240,_0x21acde){return new BPromise(function(_0x450241,_0x23efde){var _0x57aab6=_0x21acde||client;return _0x57aab6['request'](_0xef44ae,_0x313240)['then'](function(_0x138f52){logger['info'](_0x9f62('0x18'),_0x263f17,_0x9f62('0x19'));logger[_0x9f62('0x1a')](_0x9f62('0x1b'),_0x263f17,_0x9f62('0x19'),JSON[_0x9f62('0x1c')](_0x138f52));if(_0x138f52['error']){if(_0x138f52[_0x9f62('0x1d')][_0x9f62('0x1e')]===0x1f4){logger[_0x9f62('0x1d')](_0x9f62('0x18'),_0x263f17,_0x138f52['error'][_0x9f62('0x1f')]);return _0x23efde(_0x138f52['error'][_0x9f62('0x1f')]);}logger[_0x9f62('0x1d')](_0x9f62('0x18'),_0x263f17,_0x138f52['error'][_0x9f62('0x1f')]);return _0x450241(_0x138f52[_0x9f62('0x1d')][_0x9f62('0x1f')]);}else{logger['info']('Network,\x20%s,\x20%s',_0x263f17,_0x9f62('0x19'));_0x450241(_0x138f52[_0x9f62('0x20')][_0x9f62('0x1f')]);}})['catch'](function(_0x280d53){logger['error'](_0x9f62('0x18'),_0x263f17,_0x280d53);_0x23efde(_0x280d53);});});}function respondWithStatusCode(_0x4d55ef,_0x16a8cf){_0x16a8cf=_0x16a8cf||0xcc;return function(_0x2bc0f4){if(_0x2bc0f4){return _0x4d55ef[_0x9f62('0x21')](_0x16a8cf);}return _0x4d55ef['status'](_0x16a8cf)[_0x9f62('0x22')]();};}function respondWithResult(_0x239257,_0x408524){_0x408524=_0x408524||0xc8;return function(_0x5c325f){if(_0x5c325f){return _0x239257['status'](_0x408524)[_0x9f62('0x23')](_0x5c325f);}};}function respondWithFilteredResult(_0x47d150,_0x5cbb57){return function(_0xaad04a){if(_0xaad04a){var _0x5df367=typeof _0x5cbb57[_0x9f62('0x24')]===_0x9f62('0x25')&&typeof _0x5cbb57[_0x9f62('0x26')]==='undefined';var _0xd79986=_0xaad04a[_0x9f62('0x27')];var _0xbcf9fa=_0x5df367?0x0:_0x5cbb57[_0x9f62('0x24')];var _0x1414d3=_0x5df367?_0xaad04a['count']:_0x5cbb57['offset']+_0x5cbb57[_0x9f62('0x26')];var _0x2b6172;if(_0x1414d3>=_0xd79986){_0x1414d3=_0xd79986;_0x2b6172=0xc8;}else{_0x2b6172=0xce;}_0x47d150['status'](_0x2b6172);return _0x47d150[_0x9f62('0x28')](_0x9f62('0x29'),_0xbcf9fa+'-'+_0x1414d3+'/'+_0xd79986)[_0x9f62('0x23')](_0xaad04a);}return null;};}function patchUpdates(_0x59df8d){return function(_0xda7500){try{jsonpatch[_0x9f62('0x2a')](_0xda7500,_0x59df8d,!![]);}catch(_0x559d80){return BPromise[_0x9f62('0x2b')](_0x559d80);}return _0xda7500['save']();};}function saveUpdates(_0x5e5bec,_0x2116f4){return function(_0x7e4ff1){if(_0x7e4ff1){return _0x7e4ff1['update'](_0x5e5bec)[_0x9f62('0x2c')](function(_0x378f25){return _0x378f25;});}return null;};}function removeEntity(_0x55a430,_0x36b8ab){return function(_0x234a65){if(_0x234a65){return _0x234a65[_0x9f62('0x2d')]()[_0x9f62('0x2c')](function(){_0x55a430[_0x9f62('0x2e')](0xcc)[_0x9f62('0x22')]();});}};}function handleEntityNotFound(_0x5a845b,_0x31d992){return function(_0xb81efc){if(!_0xb81efc){_0x5a845b[_0x9f62('0x21')](0x194);}return _0xb81efc;};}function handleError(_0x1e3153,_0x2e47ad){_0x2e47ad=_0x2e47ad||0x1f4;return function(_0x1172e3){logger[_0x9f62('0x1d')](_0x1172e3[_0x9f62('0x2f')]);if(_0x1172e3[_0x9f62('0x30')]){delete _0x1172e3[_0x9f62('0x30')];}_0x1e3153[_0x9f62('0x2e')](_0x2e47ad)['send'](_0x1172e3);};}exports[_0x9f62('0x31')]=function(_0xc66e19,_0x2b967c){var _0x5e7e0f={},_0x1c9fe1={},_0x44d2ea={'count':0x0,'rows':[]};var _0x43cb07=_[_0x9f62('0x32')](db['Network'][_0x9f62('0x33')],function(_0x450fd3){return{'name':_0x450fd3[_0x9f62('0x34')],'type':_0x450fd3[_0x9f62('0x35')][_0x9f62('0x36')]};});_0x1c9fe1[_0x9f62('0x37')]=_[_0x9f62('0x32')](_0x43cb07,_0x9f62('0x30'));_0x1c9fe1[_0x9f62('0x38')]=_[_0x9f62('0x39')](_0xc66e19[_0x9f62('0x38')]);_0x1c9fe1['filters']=_['intersection'](_0x1c9fe1[_0x9f62('0x37')],_0x1c9fe1[_0x9f62('0x38')]);_0x5e7e0f[_0x9f62('0x3a')]=_[_0x9f62('0x3b')](_0x1c9fe1[_0x9f62('0x37')],qs[_0x9f62('0x3c')](_0xc66e19[_0x9f62('0x38')]['fields']));_0x5e7e0f[_0x9f62('0x3a')]=_0x5e7e0f[_0x9f62('0x3a')][_0x9f62('0x3d')]?_0x5e7e0f[_0x9f62('0x3a')]:_0x1c9fe1[_0x9f62('0x37')];if(!_0xc66e19[_0x9f62('0x38')][_0x9f62('0x3e')](_0x9f62('0x3f'))){_0x5e7e0f[_0x9f62('0x26')]=qs[_0x9f62('0x26')](_0xc66e19['query'][_0x9f62('0x26')]);_0x5e7e0f['offset']=qs['offset'](_0xc66e19[_0x9f62('0x38')][_0x9f62('0x24')]);}_0x5e7e0f['order']=qs[_0x9f62('0x40')](_0xc66e19[_0x9f62('0x38')]['sort']);_0x5e7e0f[_0x9f62('0x41')]=qs[_0x9f62('0x42')](_[_0x9f62('0x43')](_0xc66e19[_0x9f62('0x38')],_0x1c9fe1[_0x9f62('0x42')]),_0x43cb07);if(_0xc66e19['query']['filter']){_0x5e7e0f[_0x9f62('0x41')]=_[_0x9f62('0x44')](_0x5e7e0f['where'],{'$or':_[_0x9f62('0x32')](_0x43cb07,function(_0x2e962a){if(_0x2e962a[_0x9f62('0x35')]!=='VIRTUAL'){var _0x3021d1={};_0x3021d1[_0x2e962a['name']]={'$like':'%'+_0xc66e19[_0x9f62('0x38')][_0x9f62('0x45')]+'%'};return _0x3021d1;}})});}_0x5e7e0f=_[_0x9f62('0x44')]({},_0x5e7e0f,_0xc66e19[_0x9f62('0x46')]);var _0x511fd1={'where':_0x5e7e0f[_0x9f62('0x41')]};return db[_0x9f62('0x47')][_0x9f62('0x27')](_0x511fd1)[_0x9f62('0x2c')](function(_0x37c23c){_0x44d2ea[_0x9f62('0x27')]=_0x37c23c;if(_0xc66e19[_0x9f62('0x38')][_0x9f62('0x48')]){_0x5e7e0f[_0x9f62('0x49')]=[{'all':!![]}];}return db[_0x9f62('0x47')][_0x9f62('0x4a')](_0x5e7e0f);})[_0x9f62('0x2c')](function(_0x5df14f){_0x44d2ea[_0x9f62('0x4b')]=_0x5df14f;return _0x44d2ea;})[_0x9f62('0x2c')](respondWithFilteredResult(_0x2b967c,_0x5e7e0f))[_0x9f62('0x4c')](handleError(_0x2b967c,null));};exports[_0x9f62('0x4d')]=function(_0x4b8d46,_0x3902c1){var _0x421e3f={'raw':!![],'where':{'id':_0x4b8d46[_0x9f62('0x4e')]['id']}},_0x18e0f3={};_0x18e0f3[_0x9f62('0x37')]=_[_0x9f62('0x39')](db['Network'][_0x9f62('0x33')]);_0x18e0f3['query']=_[_0x9f62('0x39')](_0x4b8d46['query']);_0x18e0f3[_0x9f62('0x42')]=_['intersection'](_0x18e0f3[_0x9f62('0x37')],_0x18e0f3[_0x9f62('0x38')]);_0x421e3f[_0x9f62('0x3a')]=_[_0x9f62('0x3b')](_0x18e0f3[_0x9f62('0x37')],qs[_0x9f62('0x3c')](_0x4b8d46[_0x9f62('0x38')]['fields']));_0x421e3f['attributes']=_0x421e3f[_0x9f62('0x3a')][_0x9f62('0x3d')]?_0x421e3f[_0x9f62('0x3a')]:_0x18e0f3[_0x9f62('0x37')];if(_0x4b8d46[_0x9f62('0x38')][_0x9f62('0x48')]){_0x421e3f['include']=[{'all':!![]}];}_0x421e3f=_[_0x9f62('0x44')]({},_0x421e3f,_0x4b8d46[_0x9f62('0x46')]);return db[_0x9f62('0x47')][_0x9f62('0x4f')](_0x421e3f)[_0x9f62('0x2c')](handleEntityNotFound(_0x3902c1,null))[_0x9f62('0x2c')](respondWithResult(_0x3902c1,null))[_0x9f62('0x4c')](handleError(_0x3902c1,null));};exports['create']=function(_0x578a07,_0xfeef7b,_0x2b1f64){var _0x3850c7;return db[_0x9f62('0x50')]['transaction'](function(_0x2962c2){return db[_0x9f62('0x47')]['create'](_0x578a07['body'],{'raw':!![]})['then'](function(_0x5101d8){_0x3850c7=_0x5101d8;return db['Network'][_0x9f62('0x4a')]({'where':{'type':_0x578a07['body'][_0x9f62('0x35')]},'raw':!![]});})[_0x9f62('0x2c')](function(_0x2e4926){if(_0x3850c7[_0x9f62('0x35')]['toUpperCase']()=='STUN'){var _0x28746a=fs['readFileSync'](path['join'](config[_0x9f62('0x51')],_0x9f62('0x52')),_0x9f62('0x53'));var _0x179b7b=ejs['render'](_0x28746a,{'networks':_0x2e4926||[]});fs['writeFileSync'](_0x9f62('0x54'),_0x179b7b);return respondWithRpcPromise('Reload',_0x9f62('0x55'),{'module':_0x9f62('0x56')});}else if(_0x3850c7[_0x9f62('0x35')][_0x9f62('0x57')]()==_0x9f62('0x58')){var _0x883774=fs[_0x9f62('0x59')](path[_0x9f62('0x5a')](config[_0x9f62('0x51')],_0x9f62('0x5b')),_0x9f62('0x53'));var _0x16f83d=ejs['render'](_0x883774,{'networks':_0x2e4926||[]});fs['writeFileSync'](_0x9f62('0x5c'),_0x16f83d);return respondWithRpcPromise(_0x9f62('0x5d'),_0x9f62('0x55'),{'module':_0x9f62('0x56')});}else{var _0x52859a=fs['readFileSync'](path['join'](config['root'],'server/files/templates/network.ejs'),_0x9f62('0x53'));var _0x7a41a5=ejs['render'](_0x52859a,{'networks':_0x2e4926||[]});fs[_0x9f62('0x5e')](util[_0x9f62('0x5f')](_0x9f62('0x60'),_0x578a07['body'][_0x9f62('0x35')]['toLowerCase']()),_0x7a41a5);return respondWithRpcPromise(_0x9f62('0x5d'),_0x9f62('0x55'),{'module':_0x9f62('0x61')});}return null;})[_0x9f62('0x2c')](function(){return _0x3850c7;});})[_0x9f62('0x2c')](respondWithResult(_0xfeef7b,0xc9))[_0x9f62('0x4c')](handleError(_0xfeef7b,null));};exports['update']=function(_0x89294b,_0x57cd3a,_0x48b077){var _0x2fe771;return db['sequelize'][_0x9f62('0x62')](function(_0xad9b20){return db[_0x9f62('0x47')]['find']({'where':{'id':_0x89294b[_0x9f62('0x4e')]['id']}})[_0x9f62('0x2c')](handleEntityNotFound(_0x57cd3a,null))[_0x9f62('0x2c')](saveUpdates(_0x89294b[_0x9f62('0x63')],null))[_0x9f62('0x2c')](function(_0x302d54){if(_0x302d54){_0x2fe771=_0x302d54;return db['Network'][_0x9f62('0x4a')]({'where':{'type':_0x2fe771[_0x9f62('0x35')]},'raw':!![]});}return null;})['then'](function(_0x275818){if(_0x2fe771['type'][_0x9f62('0x57')]()==_0x9f62('0x64')){var _0x3cb496=fs['readFileSync'](path['join'](config[_0x9f62('0x51')],_0x9f62('0x52')),_0x9f62('0x53'));var _0x30db6c=ejs[_0x9f62('0x65')](_0x3cb496,{'networks':_0x275818||[]});fs['writeFileSync'](_0x9f62('0x54'),_0x30db6c);return respondWithRpcPromise('Reload',_0x9f62('0x66'),{'module':_0x9f62('0x56')});}else if(_0x2fe771[_0x9f62('0x35')][_0x9f62('0x57')]()==_0x9f62('0x58')){var _0x1baeb0=fs['readFileSync'](path['join'](config['root'],_0x9f62('0x5b')),_0x9f62('0x53'));var _0x2d2f70=ejs['render'](_0x1baeb0,{'networks':_0x275818||[]});fs[_0x9f62('0x5e')](_0x9f62('0x5c'),_0x2d2f70);return respondWithRpcPromise('Reload',_0x9f62('0x66'),{'module':_0x9f62('0x56')});}else{var _0x234b29=fs['readFileSync'](path[_0x9f62('0x5a')](config[_0x9f62('0x51')],_0x9f62('0x67')),_0x9f62('0x53'));var _0x180e68=ejs['render'](_0x234b29,{'networks':_0x275818||[]});fs[_0x9f62('0x5e')](util[_0x9f62('0x5f')](_0x9f62('0x60'),_0x89294b[_0x9f62('0x63')][_0x9f62('0x35')][_0x9f62('0x68')]()),_0x180e68);return respondWithRpcPromise('Reload','update',{'module':'chan_sip.so'});}return null;})['then'](function(_0x23c12e){if(_0x23c12e){return _0x2fe771;}return null;});})[_0x9f62('0x2c')](respondWithResult(_0x57cd3a,null))[_0x9f62('0x4c')](handleError(_0x57cd3a,null));};exports[_0x9f62('0x2d')]=function(_0x2c503,_0x122c68,_0x261a64){var _0x105e42;return db[_0x9f62('0x47')][_0x9f62('0x4f')]({'where':{'id':_0x2c503[_0x9f62('0x4e')]['id']}})[_0x9f62('0x2c')](function(_0x4a7b5a){_0x105e42=_0x4a7b5a;return _0x4a7b5a;})['then'](handleEntityNotFound(_0x122c68,null))['then'](removeEntity(_0x122c68,null))['then'](function(){if(_0x105e42){return db[_0x9f62('0x47')][_0x9f62('0x4a')]({'where':{'type':_0x105e42[_0x9f62('0x35')]},'raw':!![]});}})[_0x9f62('0x2c')](function(_0x315aaf){if(_0x105e42[_0x9f62('0x35')][_0x9f62('0x57')]()==_0x9f62('0x64')){var _0x45c827=fs[_0x9f62('0x59')](path['join'](config[_0x9f62('0x51')],_0x9f62('0x52')),'utf8');var _0xa98126=ejs['render'](_0x45c827,{'networks':_0x315aaf||[]});fs[_0x9f62('0x5e')](_0x9f62('0x54'),_0xa98126);return respondWithRpcPromise(_0x9f62('0x5d'),_0x9f62('0x2d'),{'module':_0x9f62('0x56')});}else if(_0x105e42[_0x9f62('0x35')][_0x9f62('0x57')]()=='TURN'){var _0x3227fa=fs[_0x9f62('0x59')](path[_0x9f62('0x5a')](config[_0x9f62('0x51')],_0x9f62('0x5b')),_0x9f62('0x53'));var _0x1fbd21=ejs['render'](_0x3227fa,{'networks':_0x315aaf||[]});fs[_0x9f62('0x5e')](_0x9f62('0x5c'),_0x1fbd21);return respondWithRpcPromise(_0x9f62('0x5d'),_0x9f62('0x2d'),{'module':'res_stun_monitor.so'});}else{var _0x952167=fs[_0x9f62('0x59')](path[_0x9f62('0x5a')](config['root'],_0x9f62('0x67')),_0x9f62('0x53'));var _0x3d4b69=ejs[_0x9f62('0x65')](_0x952167,{'networks':_0x315aaf||[]});fs[_0x9f62('0x5e')](util[_0x9f62('0x5f')](_0x9f62('0x60'),_0x2c503[_0x9f62('0x63')][_0x9f62('0x35')][_0x9f62('0x68')]()),_0x3d4b69);return respondWithRpcPromise(_0x9f62('0x5d'),_0x9f62('0x2d'),{'module':_0x9f62('0x61')});}return null;})['catch'](handleError(_0x122c68,null));};