Built motion from commit (unavailable).|2.5.27
[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 _0x289b=['Network','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','fields','hasOwnProperty','order','sort','pick','filter','where','VIRTUAL','merge','options','includeAll','findAll','catch','params','length','include','find','create','sequelize','toUpperCase','join','root','server/files/templates/stun_multiple.ejs','utf8','writeFileSync','/etc/asterisk/stun_xcally.conf','readFileSync','server/files/templates/turn_multiple.ejs','render','Reload','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','transaction','body','STUN','res_stun_monitor.so','TURN','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','request\x20sent','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','Network,\x20%s,\x20%s','message','result','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','sendStatus','stack','name','send','index','map'];(function(_0x56989c,_0x6781f0){var _0x22ab27=function(_0x390034){while(--_0x390034){_0x56989c['push'](_0x56989c['shift']());}};_0x22ab27(++_0x6781f0);}(_0x289b,0x114));var _0xb289=function(_0x4ea728,_0x3ba8a8){_0x4ea728=_0x4ea728-0x0;var _0x290764=_0x289b[_0x4ea728];return _0x290764;};'use strict';var emlformat=require(_0xb289('0x0'));var rimraf=require(_0xb289('0x1'));var zipdir=require(_0xb289('0x2'));var jsonpatch=require(_0xb289('0x3'));var rp=require(_0xb289('0x4'));var moment=require(_0xb289('0x5'));var BPromise=require(_0xb289('0x6'));var Mustache=require(_0xb289('0x7'));var util=require(_0xb289('0x8'));var path=require(_0xb289('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xb289('0xa'));var fs=require('fs');var fs_extra=require(_0xb289('0xb'));var _=require(_0xb289('0xc'));var squel=require(_0xb289('0xd'));var crypto=require('crypto');var jsforce=require(_0xb289('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xb289('0xf'));var querystring=require(_0xb289('0x10'));var Papa=require(_0xb289('0x11'));var Redis=require(_0xb289('0x12'));var authService=require(_0xb289('0x13'));var qs=require(_0xb289('0x14'));var as=require(_0xb289('0x15'));var hardwareService=require(_0xb289('0x16'));var logger=require(_0xb289('0x17'))(_0xb289('0x18'));var utils=require(_0xb289('0x19'));var config=require(_0xb289('0x1a'));var licenseUtil=require(_0xb289('0x1b'));var db=require(_0xb289('0x1c'))['db'];var jayson=require(_0xb289('0x1d'));var client=jayson[_0xb289('0x1e')][_0xb289('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x3c30a9,_0xfec075,_0x500421,_0x3451b8){return new BPromise(function(_0x3d837c,_0x561b17){var _0x30d5c4=_0x3451b8||client;return _0x30d5c4[_0xb289('0x20')](_0x3c30a9,_0x500421)[_0xb289('0x21')](function(_0x1803a6){logger[_0xb289('0x22')]('Network,\x20%s,\x20%s',_0xfec075,_0xb289('0x23'));logger['debug'](_0xb289('0x24'),_0xfec075,'request\x20sent',JSON[_0xb289('0x25')](_0x1803a6));if(_0x1803a6['error']){if(_0x1803a6[_0xb289('0x26')][_0xb289('0x27')]===0x1f4){logger[_0xb289('0x26')](_0xb289('0x28'),_0xfec075,_0x1803a6[_0xb289('0x26')][_0xb289('0x29')]);return _0x561b17(_0x1803a6[_0xb289('0x26')][_0xb289('0x29')]);}logger[_0xb289('0x26')]('Network,\x20%s,\x20%s',_0xfec075,_0x1803a6['error'][_0xb289('0x29')]);return _0x3d837c(_0x1803a6['error']['message']);}else{logger[_0xb289('0x22')](_0xb289('0x28'),_0xfec075,_0xb289('0x23'));_0x3d837c(_0x1803a6[_0xb289('0x2a')][_0xb289('0x29')]);}})['catch'](function(_0x1eb23c){logger[_0xb289('0x26')](_0xb289('0x28'),_0xfec075,_0x1eb23c);_0x561b17(_0x1eb23c);});});}function respondWithStatusCode(_0x2913b2,_0x484300){_0x484300=_0x484300||0xcc;return function(_0x5100a0){if(_0x5100a0){return _0x2913b2['sendStatus'](_0x484300);}return _0x2913b2[_0xb289('0x2b')](_0x484300)[_0xb289('0x2c')]();};}function respondWithResult(_0x50ec5a,_0x3af8fe){_0x3af8fe=_0x3af8fe||0xc8;return function(_0x4559cc){if(_0x4559cc){return _0x50ec5a[_0xb289('0x2b')](_0x3af8fe)[_0xb289('0x2d')](_0x4559cc);}};}function respondWithFilteredResult(_0x495407,_0x3a5676){return function(_0x5750fd){if(_0x5750fd){var _0x5ef1c9=_0x5750fd[_0xb289('0x2e')],_0x556a5f=_0x3a5676['offset'],_0x8647d1=_0x3a5676[_0xb289('0x2f')]+_0x3a5676[_0xb289('0x30')],_0x3d4ed3;if(_0x8647d1>=_0x5ef1c9){_0x8647d1=_0x5ef1c9;_0x3d4ed3=0xc8;}else{_0x3d4ed3=0xce;}_0x495407[_0xb289('0x2b')](_0x3d4ed3);return _0x495407[_0xb289('0x31')](_0xb289('0x32'),_0x556a5f+'-'+_0x8647d1+'/'+_0x5ef1c9)[_0xb289('0x2d')](_0x5750fd);}return null;};}function patchUpdates(_0x591659){return function(_0x2af2d8){try{jsonpatch[_0xb289('0x33')](_0x2af2d8,_0x591659,!![]);}catch(_0x4b5aff){return BPromise['reject'](_0x4b5aff);}return _0x2af2d8[_0xb289('0x34')]();};}function saveUpdates(_0x4dc822,_0x423391){return function(_0x4720dd){if(_0x4720dd){return _0x4720dd[_0xb289('0x35')](_0x4dc822)[_0xb289('0x21')](function(_0x1adc21){return _0x1adc21;});}return null;};}function removeEntity(_0xfff3ec,_0xbe66b9){return function(_0x6fb961){if(_0x6fb961){return _0x6fb961['destroy']()[_0xb289('0x21')](function(){_0xfff3ec[_0xb289('0x2b')](0xcc)[_0xb289('0x2c')]();});}};}function handleEntityNotFound(_0x943eac,_0x357b33){return function(_0x162482){if(!_0x162482){_0x943eac[_0xb289('0x36')](0x194);}return _0x162482;};}function handleError(_0x47aa08,_0x4fd8ba){_0x4fd8ba=_0x4fd8ba||0x1f4;return function(_0x5bad90){logger[_0xb289('0x26')](_0x5bad90[_0xb289('0x37')]);if(_0x5bad90[_0xb289('0x38')]){delete _0x5bad90[_0xb289('0x38')];}_0x47aa08[_0xb289('0x2b')](_0x4fd8ba)[_0xb289('0x39')](_0x5bad90);};}exports[_0xb289('0x3a')]=function(_0x5c50b4,_0x177730){var _0x40f3bf={},_0x1dbd91={},_0x17ec5a={'count':0x0,'rows':[]};var _0x4b8bc3=_[_0xb289('0x3b')](db[_0xb289('0x3c')][_0xb289('0x3d')],function(_0x1f0304){return{'name':_0x1f0304[_0xb289('0x3e')],'type':_0x1f0304[_0xb289('0x3f')][_0xb289('0x40')]};});_0x1dbd91[_0xb289('0x41')]=_[_0xb289('0x3b')](_0x4b8bc3,'name');_0x1dbd91[_0xb289('0x42')]=_[_0xb289('0x43')](_0x5c50b4['query']);_0x1dbd91[_0xb289('0x44')]=_['intersection'](_0x1dbd91[_0xb289('0x41')],_0x1dbd91[_0xb289('0x42')]);_0x40f3bf[_0xb289('0x45')]=_['intersection'](_0x1dbd91[_0xb289('0x41')],qs[_0xb289('0x46')](_0x5c50b4[_0xb289('0x42')]['fields']));_0x40f3bf[_0xb289('0x45')]=_0x40f3bf[_0xb289('0x45')]['length']?_0x40f3bf[_0xb289('0x45')]:_0x1dbd91['model'];if(!_0x5c50b4[_0xb289('0x42')][_0xb289('0x47')]('nolimit')){_0x40f3bf[_0xb289('0x30')]=qs['limit'](_0x5c50b4[_0xb289('0x42')]['limit']);_0x40f3bf['offset']=qs['offset'](_0x5c50b4['query'][_0xb289('0x2f')]);}_0x40f3bf[_0xb289('0x48')]=qs[_0xb289('0x49')](_0x5c50b4[_0xb289('0x42')][_0xb289('0x49')]);_0x40f3bf['where']=qs[_0xb289('0x44')](_[_0xb289('0x4a')](_0x5c50b4['query'],_0x1dbd91['filters']),_0x4b8bc3);if(_0x5c50b4[_0xb289('0x42')][_0xb289('0x4b')]){_0x40f3bf['where']=_['merge'](_0x40f3bf[_0xb289('0x4c')],{'$or':_[_0xb289('0x3b')](_0x4b8bc3,function(_0x76cdf9){if(_0x76cdf9['type']!==_0xb289('0x4d')){var _0x3b6801={};_0x3b6801[_0x76cdf9[_0xb289('0x38')]]={'$like':'%'+_0x5c50b4[_0xb289('0x42')][_0xb289('0x4b')]+'%'};return _0x3b6801;}})});}_0x40f3bf=_[_0xb289('0x4e')]({},_0x40f3bf,_0x5c50b4[_0xb289('0x4f')]);var _0xc80892={'where':_0x40f3bf[_0xb289('0x4c')]};return db[_0xb289('0x3c')][_0xb289('0x2e')](_0xc80892)[_0xb289('0x21')](function(_0x47a996){_0x17ec5a[_0xb289('0x2e')]=_0x47a996;if(_0x5c50b4[_0xb289('0x42')][_0xb289('0x50')]){_0x40f3bf['include']=[{'all':!![]}];}return db[_0xb289('0x3c')][_0xb289('0x51')](_0x40f3bf);})[_0xb289('0x21')](function(_0x46f382){_0x17ec5a['rows']=_0x46f382;return _0x17ec5a;})['then'](respondWithFilteredResult(_0x177730,_0x40f3bf))[_0xb289('0x52')](handleError(_0x177730,null));};exports['show']=function(_0x52f6f4,_0x2cc2da){var _0x200261={'raw':!![],'where':{'id':_0x52f6f4[_0xb289('0x53')]['id']}},_0x379950={};_0x379950[_0xb289('0x41')]=_[_0xb289('0x43')](db['Network'][_0xb289('0x3d')]);_0x379950[_0xb289('0x42')]=_[_0xb289('0x43')](_0x52f6f4['query']);_0x379950['filters']=_['intersection'](_0x379950[_0xb289('0x41')],_0x379950[_0xb289('0x42')]);_0x200261[_0xb289('0x45')]=_['intersection'](_0x379950[_0xb289('0x41')],qs[_0xb289('0x46')](_0x52f6f4[_0xb289('0x42')][_0xb289('0x46')]));_0x200261['attributes']=_0x200261['attributes'][_0xb289('0x54')]?_0x200261['attributes']:_0x379950[_0xb289('0x41')];if(_0x52f6f4[_0xb289('0x42')][_0xb289('0x50')]){_0x200261[_0xb289('0x55')]=[{'all':!![]}];}_0x200261=_[_0xb289('0x4e')]({},_0x200261,_0x52f6f4[_0xb289('0x4f')]);return db['Network'][_0xb289('0x56')](_0x200261)[_0xb289('0x21')](handleEntityNotFound(_0x2cc2da,null))[_0xb289('0x21')](respondWithResult(_0x2cc2da,null))[_0xb289('0x52')](handleError(_0x2cc2da,null));};exports[_0xb289('0x57')]=function(_0x17a239,_0x2f8382,_0x252e26){var _0x363bdd;return db[_0xb289('0x58')]['transaction'](function(_0x2ec0f5){return db[_0xb289('0x3c')][_0xb289('0x57')](_0x17a239['body'],{'raw':!![]})[_0xb289('0x21')](function(_0x5bc0ac){_0x363bdd=_0x5bc0ac;return db[_0xb289('0x3c')][_0xb289('0x51')]({'where':{'type':_0x17a239['body']['type']},'raw':!![]});})[_0xb289('0x21')](function(_0x458b8f){if(_0x363bdd[_0xb289('0x3f')][_0xb289('0x59')]()=='STUN'){var _0x82d83b=fs['readFileSync'](path[_0xb289('0x5a')](config[_0xb289('0x5b')],_0xb289('0x5c')),_0xb289('0x5d'));var _0x554bb7=ejs['render'](_0x82d83b,{'networks':_0x458b8f||[]});fs[_0xb289('0x5e')](_0xb289('0x5f'),_0x554bb7);return respondWithRpcPromise('Reload',_0xb289('0x57'),{'module':'res_stun_monitor.so'});}else if(_0x363bdd[_0xb289('0x3f')][_0xb289('0x59')]()=='TURN'){var _0x25b788=fs[_0xb289('0x60')](path[_0xb289('0x5a')](config[_0xb289('0x5b')],_0xb289('0x61')),_0xb289('0x5d'));var _0x915747=ejs[_0xb289('0x62')](_0x25b788,{'networks':_0x458b8f||[]});fs[_0xb289('0x5e')]('/etc/asterisk/turn_xcally.conf',_0x915747);return respondWithRpcPromise(_0xb289('0x63'),_0xb289('0x57'),{'module':'res_stun_monitor.so'});}else{var _0x43f1fa=fs[_0xb289('0x60')](path[_0xb289('0x5a')](config['root'],'server/files/templates/network.ejs'),_0xb289('0x5d'));var _0x175760=ejs[_0xb289('0x62')](_0x43f1fa,{'networks':_0x458b8f||[]});fs[_0xb289('0x5e')](util[_0xb289('0x64')](_0xb289('0x65'),_0x17a239['body'][_0xb289('0x3f')][_0xb289('0x66')]()),_0x175760);return respondWithRpcPromise('Reload',_0xb289('0x57'),{'module':_0xb289('0x67')});}return null;})[_0xb289('0x21')](function(){return _0x363bdd;});})[_0xb289('0x21')](respondWithResult(_0x2f8382,0xc9))[_0xb289('0x52')](handleError(_0x2f8382,null));};exports[_0xb289('0x35')]=function(_0x1589bc,_0x2cd1ee,_0x3902d0){var _0x59e2af;return db['sequelize'][_0xb289('0x68')](function(_0x36ac2c){return db['Network'][_0xb289('0x56')]({'where':{'id':_0x1589bc[_0xb289('0x53')]['id']}})[_0xb289('0x21')](handleEntityNotFound(_0x2cd1ee,null))['then'](saveUpdates(_0x1589bc[_0xb289('0x69')],null))[_0xb289('0x21')](function(_0x5d2917){if(_0x5d2917){_0x59e2af=_0x5d2917;return db[_0xb289('0x3c')][_0xb289('0x51')]({'where':{'type':_0x59e2af['type']},'raw':!![]});}return null;})[_0xb289('0x21')](function(_0x22df1c){if(_0x59e2af[_0xb289('0x3f')]['toUpperCase']()==_0xb289('0x6a')){var _0x5dbc8e=fs[_0xb289('0x60')](path[_0xb289('0x5a')](config[_0xb289('0x5b')],_0xb289('0x5c')),_0xb289('0x5d'));var _0x534f0d=ejs['render'](_0x5dbc8e,{'networks':_0x22df1c||[]});fs[_0xb289('0x5e')](_0xb289('0x5f'),_0x534f0d);return respondWithRpcPromise(_0xb289('0x63'),_0xb289('0x35'),{'module':_0xb289('0x6b')});}else if(_0x59e2af[_0xb289('0x3f')]['toUpperCase']()==_0xb289('0x6c')){var _0x3030d2=fs[_0xb289('0x60')](path['join'](config['root'],'server/files/templates/turn_multiple.ejs'),_0xb289('0x5d'));var _0x5bb87c=ejs['render'](_0x3030d2,{'networks':_0x22df1c||[]});fs[_0xb289('0x5e')](_0xb289('0x6d'),_0x5bb87c);return respondWithRpcPromise(_0xb289('0x63'),_0xb289('0x35'),{'module':'res_stun_monitor.so'});}else{var _0x26fd88=fs['readFileSync'](path[_0xb289('0x5a')](config[_0xb289('0x5b')],_0xb289('0x6e')),_0xb289('0x5d'));var _0x422c0a=ejs[_0xb289('0x62')](_0x26fd88,{'networks':_0x22df1c||[]});fs[_0xb289('0x5e')](util[_0xb289('0x64')](_0xb289('0x65'),_0x1589bc[_0xb289('0x69')][_0xb289('0x3f')][_0xb289('0x66')]()),_0x422c0a);return respondWithRpcPromise(_0xb289('0x63'),_0xb289('0x35'),{'module':_0xb289('0x67')});}return null;})['then'](function(_0x7eb94e){if(_0x7eb94e){return _0x59e2af;}return null;});})[_0xb289('0x21')](respondWithResult(_0x2cd1ee,null))[_0xb289('0x52')](handleError(_0x2cd1ee,null));};exports['destroy']=function(_0x59059d,_0x3b2fd5,_0x268ff0){var _0x169e1f;return db[_0xb289('0x3c')][_0xb289('0x56')]({'where':{'id':_0x59059d[_0xb289('0x53')]['id']}})[_0xb289('0x21')](function(_0x5a1118){_0x169e1f=_0x5a1118;return _0x5a1118;})[_0xb289('0x21')](handleEntityNotFound(_0x3b2fd5,null))[_0xb289('0x21')](removeEntity(_0x3b2fd5,null))[_0xb289('0x21')](function(){if(_0x169e1f){return db[_0xb289('0x3c')]['findAll']({'where':{'type':_0x169e1f[_0xb289('0x3f')]},'raw':!![]});}})['then'](function(_0xa06643){if(_0x169e1f[_0xb289('0x3f')]['toUpperCase']()==_0xb289('0x6a')){var _0x778fd8=fs['readFileSync'](path['join'](config['root'],'server/files/templates/stun_multiple.ejs'),_0xb289('0x5d'));var _0x5d5448=ejs['render'](_0x778fd8,{'networks':_0xa06643||[]});fs[_0xb289('0x5e')](_0xb289('0x5f'),_0x5d5448);return respondWithRpcPromise('Reload',_0xb289('0x6f'),{'module':'res_stun_monitor.so'});}else if(_0x169e1f[_0xb289('0x3f')]['toUpperCase']()==_0xb289('0x6c')){var _0x4e547f=fs[_0xb289('0x60')](path[_0xb289('0x5a')](config[_0xb289('0x5b')],_0xb289('0x61')),'utf8');var _0x31fd05=ejs[_0xb289('0x62')](_0x4e547f,{'networks':_0xa06643||[]});fs[_0xb289('0x5e')](_0xb289('0x6d'),_0x31fd05);return respondWithRpcPromise(_0xb289('0x63'),_0xb289('0x6f'),{'module':_0xb289('0x6b')});}else{var _0x565787=fs['readFileSync'](path[_0xb289('0x5a')](config[_0xb289('0x5b')],_0xb289('0x6e')),'utf8');var _0x56e7ca=ejs['render'](_0x565787,{'networks':_0xa06643||[]});fs[_0xb289('0x5e')](util[_0xb289('0x64')](_0xb289('0x65'),_0x59059d[_0xb289('0x69')][_0xb289('0x3f')][_0xb289('0x66')]()),_0x56e7ca);return respondWithRpcPromise(_0xb289('0x63'),_0xb289('0x6f'),{'module':_0xb289('0x67')});}return null;})[_0xb289('0x52')](handleError(_0x3b2fd5,null));};