Built motion from commit a61a4a20.|2.5.46
[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 _0x2809=['stringify','error','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','destroy','then','stack','name','index','map','Network','rawAttributes','type','key','model','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filters','filter','merge','where','options','includeAll','findAll','show','params','keys','find','create','sequelize','transaction','body','toUpperCase','STUN','readFileSync','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','join','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','http','request','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2809,0x190));var _0x9280=function(_0xb65f0c,_0xe60c57){_0xb65f0c=_0xb65f0c-0x0;var _0x2ff246=_0x2809[_0xb65f0c];return _0x2ff246;};'use strict';var emlformat=require(_0x9280('0x0'));var rimraf=require(_0x9280('0x1'));var zipdir=require(_0x9280('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x9280('0x3'));var BPromise=require(_0x9280('0x4'));var Mustache=require(_0x9280('0x5'));var util=require(_0x9280('0x6'));var path=require(_0x9280('0x7'));var sox=require(_0x9280('0x8'));var csv=require(_0x9280('0x9'));var ejs=require(_0x9280('0xa'));var fs=require('fs');var fs_extra=require(_0x9280('0xb'));var _=require(_0x9280('0xc'));var squel=require(_0x9280('0xd'));var crypto=require(_0x9280('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x9280('0xf'));var toCsv=require(_0x9280('0x9'));var querystring=require(_0x9280('0x10'));var Papa=require(_0x9280('0x11'));var Redis=require(_0x9280('0x12'));var authService=require(_0x9280('0x13'));var qs=require(_0x9280('0x14'));var as=require(_0x9280('0x15'));var hardwareService=require(_0x9280('0x16'));var logger=require(_0x9280('0x17'))(_0x9280('0x18'));var utils=require(_0x9280('0x19'));var config=require(_0x9280('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x9280('0x1b'))['db'];var jayson=require(_0x9280('0x1c'));var client=jayson['client'][_0x9280('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x229d0f,_0x52fd6c,_0x1065b4,_0x2fa410){return new BPromise(function(_0x56d4bc,_0xffe65f){var _0x2c2e0b=_0x2fa410||client;return _0x2c2e0b[_0x9280('0x1e')](_0x229d0f,_0x1065b4)['then'](function(_0x14724c){logger[_0x9280('0x1f')](_0x9280('0x20'),_0x52fd6c,_0x9280('0x21'));logger[_0x9280('0x22')](_0x9280('0x23'),_0x52fd6c,'request\x20sent',JSON[_0x9280('0x24')](_0x14724c));if(_0x14724c[_0x9280('0x25')]){if(_0x14724c['error']['code']===0x1f4){logger[_0x9280('0x25')](_0x9280('0x20'),_0x52fd6c,_0x14724c[_0x9280('0x25')][_0x9280('0x26')]);return _0xffe65f(_0x14724c['error'][_0x9280('0x26')]);}logger[_0x9280('0x25')](_0x9280('0x20'),_0x52fd6c,_0x14724c[_0x9280('0x25')][_0x9280('0x26')]);return _0x56d4bc(_0x14724c[_0x9280('0x25')]['message']);}else{logger[_0x9280('0x1f')]('Network,\x20%s,\x20%s',_0x52fd6c,_0x9280('0x21'));_0x56d4bc(_0x14724c[_0x9280('0x27')]['message']);}})[_0x9280('0x28')](function(_0x1d1d3e){logger[_0x9280('0x25')](_0x9280('0x20'),_0x52fd6c,_0x1d1d3e);_0xffe65f(_0x1d1d3e);});});}function respondWithStatusCode(_0x384a96,_0x120a0a){_0x120a0a=_0x120a0a||0xcc;return function(_0xbd1b75){if(_0xbd1b75){return _0x384a96[_0x9280('0x29')](_0x120a0a);}return _0x384a96[_0x9280('0x2a')](_0x120a0a)[_0x9280('0x2b')]();};}function respondWithResult(_0x5afa26,_0x3d8700){_0x3d8700=_0x3d8700||0xc8;return function(_0x7c0087){if(_0x7c0087){return _0x5afa26[_0x9280('0x2a')](_0x3d8700)[_0x9280('0x2c')](_0x7c0087);}};}function respondWithFilteredResult(_0x55c4d2,_0x514cf9){return function(_0x2a889a){if(_0x2a889a){var _0xaa0a8=typeof _0x514cf9[_0x9280('0x2d')]===_0x9280('0x2e')&&typeof _0x514cf9[_0x9280('0x2f')]===_0x9280('0x2e');var _0x44a165=_0x2a889a[_0x9280('0x30')];var _0x2143a4=_0xaa0a8?0x0:_0x514cf9[_0x9280('0x2d')];var _0x3bbda1=_0xaa0a8?_0x2a889a['count']:_0x514cf9['offset']+_0x514cf9[_0x9280('0x2f')];var _0x42c4f9;if(_0x3bbda1>=_0x44a165){_0x3bbda1=_0x44a165;_0x42c4f9=0xc8;}else{_0x42c4f9=0xce;}_0x55c4d2[_0x9280('0x2a')](_0x42c4f9);return _0x55c4d2[_0x9280('0x31')](_0x9280('0x32'),_0x2143a4+'-'+_0x3bbda1+'/'+_0x44a165)[_0x9280('0x2c')](_0x2a889a);}return null;};}function patchUpdates(_0x393f6c){return function(_0x36552e){try{jsonpatch['apply'](_0x36552e,_0x393f6c,!![]);}catch(_0x581b50){return BPromise[_0x9280('0x33')](_0x581b50);}return _0x36552e[_0x9280('0x34')]();};}function saveUpdates(_0x3a5894,_0x3c5c24){return function(_0x2e5016){if(_0x2e5016){return _0x2e5016[_0x9280('0x35')](_0x3a5894)['then'](function(_0x13802a){return _0x13802a;});}return null;};}function removeEntity(_0x1a4c09,_0x1bf492){return function(_0x306b6e){if(_0x306b6e){return _0x306b6e[_0x9280('0x36')]()[_0x9280('0x37')](function(){_0x1a4c09['status'](0xcc)[_0x9280('0x2b')]();});}};}function handleEntityNotFound(_0xe0a90f,_0xc8fa72){return function(_0x426202){if(!_0x426202){_0xe0a90f[_0x9280('0x29')](0x194);}return _0x426202;};}function handleError(_0x4dd7ef,_0x3ac93d){_0x3ac93d=_0x3ac93d||0x1f4;return function(_0x30d971){logger[_0x9280('0x25')](_0x30d971[_0x9280('0x38')]);if(_0x30d971[_0x9280('0x39')]){delete _0x30d971[_0x9280('0x39')];}_0x4dd7ef['status'](_0x3ac93d)['send'](_0x30d971);};}exports[_0x9280('0x3a')]=function(_0xc92dce,_0x411ab9){var _0x13086b={},_0x563eb8={},_0x5b6c2e={'count':0x0,'rows':[]};var _0x3bf5f5=_[_0x9280('0x3b')](db[_0x9280('0x3c')][_0x9280('0x3d')],function(_0x593d8f){return{'name':_0x593d8f['fieldName'],'type':_0x593d8f[_0x9280('0x3e')][_0x9280('0x3f')]};});_0x563eb8[_0x9280('0x40')]=_['map'](_0x3bf5f5,'name');_0x563eb8[_0x9280('0x41')]=_['keys'](_0xc92dce['query']);_0x563eb8['filters']=_[_0x9280('0x42')](_0x563eb8[_0x9280('0x40')],_0x563eb8['query']);_0x13086b['attributes']=_[_0x9280('0x42')](_0x563eb8['model'],qs[_0x9280('0x43')](_0xc92dce['query'][_0x9280('0x43')]));_0x13086b[_0x9280('0x44')]=_0x13086b[_0x9280('0x44')][_0x9280('0x45')]?_0x13086b['attributes']:_0x563eb8['model'];if(!_0xc92dce['query'][_0x9280('0x46')](_0x9280('0x47'))){_0x13086b['limit']=qs['limit'](_0xc92dce[_0x9280('0x41')]['limit']);_0x13086b['offset']=qs[_0x9280('0x2d')](_0xc92dce['query'][_0x9280('0x2d')]);}_0x13086b[_0x9280('0x48')]=qs[_0x9280('0x49')](_0xc92dce[_0x9280('0x41')][_0x9280('0x49')]);_0x13086b['where']=qs[_0x9280('0x4a')](_['pick'](_0xc92dce[_0x9280('0x41')],_0x563eb8[_0x9280('0x4a')]),_0x3bf5f5);if(_0xc92dce[_0x9280('0x41')][_0x9280('0x4b')]){_0x13086b['where']=_[_0x9280('0x4c')](_0x13086b[_0x9280('0x4d')],{'$or':_[_0x9280('0x3b')](_0x3bf5f5,function(_0x336f7d){if(_0x336f7d[_0x9280('0x3e')]!=='VIRTUAL'){var _0x24b739={};_0x24b739[_0x336f7d[_0x9280('0x39')]]={'$like':'%'+_0xc92dce[_0x9280('0x41')][_0x9280('0x4b')]+'%'};return _0x24b739;}})});}_0x13086b=_['merge']({},_0x13086b,_0xc92dce[_0x9280('0x4e')]);var _0xa58eae={'where':_0x13086b['where']};return db['Network'][_0x9280('0x30')](_0xa58eae)[_0x9280('0x37')](function(_0x157f67){_0x5b6c2e['count']=_0x157f67;if(_0xc92dce['query'][_0x9280('0x4f')]){_0x13086b['include']=[{'all':!![]}];}return db[_0x9280('0x3c')][_0x9280('0x50')](_0x13086b);})['then'](function(_0x5f2231){_0x5b6c2e['rows']=_0x5f2231;return _0x5b6c2e;})[_0x9280('0x37')](respondWithFilteredResult(_0x411ab9,_0x13086b))[_0x9280('0x28')](handleError(_0x411ab9,null));};exports[_0x9280('0x51')]=function(_0x37498f,_0x4ddaad){var _0x45ac62={'raw':!![],'where':{'id':_0x37498f[_0x9280('0x52')]['id']}},_0x418ba9={};_0x418ba9[_0x9280('0x40')]=_[_0x9280('0x53')](db['Network']['rawAttributes']);_0x418ba9[_0x9280('0x41')]=_[_0x9280('0x53')](_0x37498f[_0x9280('0x41')]);_0x418ba9['filters']=_['intersection'](_0x418ba9[_0x9280('0x40')],_0x418ba9[_0x9280('0x41')]);_0x45ac62['attributes']=_[_0x9280('0x42')](_0x418ba9[_0x9280('0x40')],qs[_0x9280('0x43')](_0x37498f[_0x9280('0x41')][_0x9280('0x43')]));_0x45ac62[_0x9280('0x44')]=_0x45ac62[_0x9280('0x44')]['length']?_0x45ac62[_0x9280('0x44')]:_0x418ba9[_0x9280('0x40')];if(_0x37498f[_0x9280('0x41')][_0x9280('0x4f')]){_0x45ac62['include']=[{'all':!![]}];}_0x45ac62=_['merge']({},_0x45ac62,_0x37498f[_0x9280('0x4e')]);return db[_0x9280('0x3c')][_0x9280('0x54')](_0x45ac62)[_0x9280('0x37')](handleEntityNotFound(_0x4ddaad,null))[_0x9280('0x37')](respondWithResult(_0x4ddaad,null))[_0x9280('0x28')](handleError(_0x4ddaad,null));};exports[_0x9280('0x55')]=function(_0x412b65,_0x533b39,_0xac30f9){var _0x1fffdf;return db[_0x9280('0x56')][_0x9280('0x57')](function(_0x15c5bc){return db[_0x9280('0x3c')][_0x9280('0x55')](_0x412b65[_0x9280('0x58')],{'raw':!![]})['then'](function(_0x22037c){_0x1fffdf=_0x22037c;return db[_0x9280('0x3c')]['findAll']({'where':{'type':_0x412b65[_0x9280('0x58')][_0x9280('0x3e')]},'raw':!![]});})['then'](function(_0x5e86bd){if(_0x1fffdf['type'][_0x9280('0x59')]()==_0x9280('0x5a')){var _0x371954=fs[_0x9280('0x5b')](path['join'](config[_0x9280('0x5c')],_0x9280('0x5d')),_0x9280('0x5e'));var _0x4274de=ejs[_0x9280('0x5f')](_0x371954,{'networks':_0x5e86bd||[]});fs[_0x9280('0x60')](_0x9280('0x61'),_0x4274de);return respondWithRpcPromise(_0x9280('0x62'),_0x9280('0x55'),{'module':_0x9280('0x63')});}else if(_0x1fffdf[_0x9280('0x3e')][_0x9280('0x59')]()==_0x9280('0x64')){var _0x1f7aa6=fs[_0x9280('0x5b')](path[_0x9280('0x65')](config['root'],_0x9280('0x66')),'utf8');var _0x49cd00=ejs[_0x9280('0x5f')](_0x1f7aa6,{'networks':_0x5e86bd||[]});fs[_0x9280('0x60')](_0x9280('0x67'),_0x49cd00);return respondWithRpcPromise('Reload',_0x9280('0x55'),{'module':_0x9280('0x63')});}else{var _0x1ecc4d=fs[_0x9280('0x5b')](path[_0x9280('0x65')](config[_0x9280('0x5c')],_0x9280('0x68')),_0x9280('0x5e'));var _0x1fe9d1=ejs[_0x9280('0x5f')](_0x1ecc4d,{'networks':_0x5e86bd||[]});fs['writeFileSync'](util[_0x9280('0x69')](_0x9280('0x6a'),_0x412b65[_0x9280('0x58')][_0x9280('0x3e')][_0x9280('0x6b')]()),_0x1fe9d1);return respondWithRpcPromise(_0x9280('0x62'),_0x9280('0x55'),{'module':_0x9280('0x6c')});}return null;})['then'](function(){return _0x1fffdf;});})[_0x9280('0x37')](respondWithResult(_0x533b39,0xc9))['catch'](handleError(_0x533b39,null));};exports[_0x9280('0x35')]=function(_0xd77079,_0xe6595f,_0x2156bb){var _0x1c2068;return db[_0x9280('0x56')][_0x9280('0x57')](function(_0x177af4){return db[_0x9280('0x3c')]['find']({'where':{'id':_0xd77079[_0x9280('0x52')]['id']}})[_0x9280('0x37')](handleEntityNotFound(_0xe6595f,null))[_0x9280('0x37')](saveUpdates(_0xd77079['body'],null))[_0x9280('0x37')](function(_0x332fa0){if(_0x332fa0){_0x1c2068=_0x332fa0;return db['Network'][_0x9280('0x50')]({'where':{'type':_0x1c2068[_0x9280('0x3e')]},'raw':!![]});}return null;})[_0x9280('0x37')](function(_0x3d1d8c){if(_0x1c2068['type'][_0x9280('0x59')]()=='STUN'){var _0x5861d0=fs[_0x9280('0x5b')](path[_0x9280('0x65')](config[_0x9280('0x5c')],_0x9280('0x5d')),_0x9280('0x5e'));var _0x49dc56=ejs[_0x9280('0x5f')](_0x5861d0,{'networks':_0x3d1d8c||[]});fs[_0x9280('0x60')]('/etc/asterisk/stun_xcally.conf',_0x49dc56);return respondWithRpcPromise(_0x9280('0x62'),'update',{'module':_0x9280('0x63')});}else if(_0x1c2068[_0x9280('0x3e')]['toUpperCase']()==_0x9280('0x64')){var _0x18cdc9=fs[_0x9280('0x5b')](path[_0x9280('0x65')](config[_0x9280('0x5c')],'server/files/templates/turn_multiple.ejs'),_0x9280('0x5e'));var _0xae8a17=ejs[_0x9280('0x5f')](_0x18cdc9,{'networks':_0x3d1d8c||[]});fs[_0x9280('0x60')](_0x9280('0x67'),_0xae8a17);return respondWithRpcPromise(_0x9280('0x62'),'update',{'module':'res_stun_monitor.so'});}else{var _0x3027b2=fs[_0x9280('0x5b')](path[_0x9280('0x65')](config[_0x9280('0x5c')],_0x9280('0x68')),'utf8');var _0x4fc2f0=ejs[_0x9280('0x5f')](_0x3027b2,{'networks':_0x3d1d8c||[]});fs[_0x9280('0x60')](util[_0x9280('0x69')]('/etc/asterisk/sip_xcally_%s.conf',_0xd77079['body'][_0x9280('0x3e')][_0x9280('0x6b')]()),_0x4fc2f0);return respondWithRpcPromise(_0x9280('0x62'),'update',{'module':_0x9280('0x6c')});}return null;})[_0x9280('0x37')](function(_0x43c993){if(_0x43c993){return _0x1c2068;}return null;});})['then'](respondWithResult(_0xe6595f,null))[_0x9280('0x28')](handleError(_0xe6595f,null));};exports[_0x9280('0x36')]=function(_0x37a066,_0x3d8dfc,_0x1da329){var _0x123b82;return db['Network'][_0x9280('0x54')]({'where':{'id':_0x37a066['params']['id']}})[_0x9280('0x37')](function(_0x196830){_0x123b82=_0x196830;return _0x196830;})[_0x9280('0x37')](handleEntityNotFound(_0x3d8dfc,null))['then'](removeEntity(_0x3d8dfc,null))[_0x9280('0x37')](function(){if(_0x123b82){return db[_0x9280('0x3c')][_0x9280('0x50')]({'where':{'type':_0x123b82[_0x9280('0x3e')]},'raw':!![]});}})[_0x9280('0x37')](function(_0x33d06b){if(_0x123b82[_0x9280('0x3e')][_0x9280('0x59')]()==_0x9280('0x5a')){var _0x3c8be4=fs[_0x9280('0x5b')](path['join'](config[_0x9280('0x5c')],_0x9280('0x5d')),_0x9280('0x5e'));var _0x373a56=ejs[_0x9280('0x5f')](_0x3c8be4,{'networks':_0x33d06b||[]});fs[_0x9280('0x60')](_0x9280('0x61'),_0x373a56);return respondWithRpcPromise(_0x9280('0x62'),_0x9280('0x36'),{'module':_0x9280('0x63')});}else if(_0x123b82[_0x9280('0x3e')]['toUpperCase']()=='TURN'){var _0x3daef9=fs[_0x9280('0x5b')](path[_0x9280('0x65')](config[_0x9280('0x5c')],'server/files/templates/turn_multiple.ejs'),_0x9280('0x5e'));var _0x5d972c=ejs[_0x9280('0x5f')](_0x3daef9,{'networks':_0x33d06b||[]});fs[_0x9280('0x60')]('/etc/asterisk/turn_xcally.conf',_0x5d972c);return respondWithRpcPromise(_0x9280('0x62'),_0x9280('0x36'),{'module':_0x9280('0x63')});}else{var _0x213481=fs['readFileSync'](path[_0x9280('0x65')](config[_0x9280('0x5c')],_0x9280('0x68')),_0x9280('0x5e'));var _0x4f3769=ejs[_0x9280('0x5f')](_0x213481,{'networks':_0x33d06b||[]});fs['writeFileSync'](util[_0x9280('0x69')]('/etc/asterisk/sip_xcally_%s.conf',_0x37a066['body']['type'][_0x9280('0x6b')]()),_0x4f3769);return respondWithRpcPromise(_0x9280('0x62'),_0x9280('0x36'),{'module':_0x9280('0x6c')});}return null;})['catch'](handleError(_0x3d8dfc,null));};