Built motion from commit (unavailable).|2.5.19
[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 _0x8276=['end','json','offset','limit','Content-Range','apply','update','then','destroy','stack','name','index','map','Network','rawAttributes','fieldName','type','key','model','keys','filters','intersection','query','fields','attributes','length','order','sort','where','pick','merge','filter','count','includeAll','include','findAll','rows','params','find','create','sequelize','body','toUpperCase','STUN','join','root','writeFileSync','Reload','res_stun_monitor.so','readFileSync','server/files/templates/turn_multiple.ejs','utf8','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','render','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','transaction','server/files/templates/stun_multiple.ejs','/etc/asterisk/stun_xcally.conf','TURN','chan_sip.so','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','client','http','request','request\x20sent','Network,\x20%s,\x20%s,\x20%s','error','code','Network,\x20%s,\x20%s','message','result','catch','sendStatus','status'];(function(_0x4da356,_0x5235e1){var _0x321b07=function(_0x2bc6f4){while(--_0x2bc6f4){_0x4da356['push'](_0x4da356['shift']());}};_0x321b07(++_0x5235e1);}(_0x8276,0x168));var _0x6827=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x8276[_0x321bb2];return _0x9c12ed;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x6827('0x0'));var rimraf=require(_0x6827('0x1'));var zipdir=require(_0x6827('0x2'));var jsonpatch=require(_0x6827('0x3'));var rp=require(_0x6827('0x4'));var moment=require(_0x6827('0x5'));var BPromise=require(_0x6827('0x6'));var Mustache=require(_0x6827('0x7'));var util=require(_0x6827('0x8'));var path=require(_0x6827('0x9'));var sox=require(_0x6827('0xa'));var csv=require(_0x6827('0xb'));var ejs=require(_0x6827('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0x6827('0xd'));var crypto=require(_0x6827('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x6827('0xf'));var toCsv=require(_0x6827('0xb'));var querystring=require(_0x6827('0x10'));var Papa=require(_0x6827('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x6827('0x12'));var as=require(_0x6827('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x6827('0x14'));var utils=require('../../config/utils');var config=require(_0x6827('0x15'));var licenseUtil=require(_0x6827('0x16'));var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var client=jayson[_0x6827('0x17')][_0x6827('0x18')]({'port':0x232a});function respondWithRpcPromise(_0xfa66a0,_0x69e613,_0xf1a282,_0x50535e){return new BPromise(function(_0x315d4f,_0x576c9f){var _0x3c2cec=_0x50535e||client;return _0x3c2cec[_0x6827('0x19')](_0xfa66a0,_0xf1a282)['then'](function(_0x39de64){logger['info']('Network,\x20%s,\x20%s',_0x69e613,_0x6827('0x1a'));logger['debug'](_0x6827('0x1b'),_0x69e613,'request\x20sent',JSON['stringify'](_0x39de64));if(_0x39de64[_0x6827('0x1c')]){if(_0x39de64['error'][_0x6827('0x1d')]===0x1f4){logger[_0x6827('0x1c')](_0x6827('0x1e'),_0x69e613,_0x39de64[_0x6827('0x1c')][_0x6827('0x1f')]);return _0x576c9f(_0x39de64[_0x6827('0x1c')][_0x6827('0x1f')]);}logger[_0x6827('0x1c')]('Network,\x20%s,\x20%s',_0x69e613,_0x39de64[_0x6827('0x1c')][_0x6827('0x1f')]);return _0x315d4f(_0x39de64[_0x6827('0x1c')][_0x6827('0x1f')]);}else{logger['info'](_0x6827('0x1e'),_0x69e613,_0x6827('0x1a'));_0x315d4f(_0x39de64[_0x6827('0x20')][_0x6827('0x1f')]);}})[_0x6827('0x21')](function(_0x3d0423){logger[_0x6827('0x1c')](_0x6827('0x1e'),_0x69e613,_0x3d0423);_0x576c9f(_0x3d0423);});});}function respondWithStatusCode(_0x471fb6,_0x4ed067){_0x4ed067=_0x4ed067||0xcc;return function(_0x186c41){if(_0x186c41){return _0x471fb6[_0x6827('0x22')](_0x4ed067);}return _0x471fb6[_0x6827('0x23')](_0x4ed067)[_0x6827('0x24')]();};}function respondWithResult(_0x1abda1,_0xb0c5c2){_0xb0c5c2=_0xb0c5c2||0xc8;return function(_0x225401){if(_0x225401){return _0x1abda1[_0x6827('0x23')](_0xb0c5c2)[_0x6827('0x25')](_0x225401);}};}function respondWithFilteredResult(_0x4e5708,_0x3d47a0){return function(_0x4d5c05){if(_0x4d5c05){var _0x63cb2d=_0x4d5c05['count'],_0x2f0a26=_0x3d47a0[_0x6827('0x26')],_0x1aceee=_0x3d47a0['offset']+_0x3d47a0[_0x6827('0x27')],_0x5d5d3e;if(_0x1aceee>=_0x63cb2d){_0x1aceee=_0x63cb2d;_0x5d5d3e=0xc8;}else{_0x5d5d3e=0xce;}_0x4e5708[_0x6827('0x23')](_0x5d5d3e);return _0x4e5708['set'](_0x6827('0x28'),_0x2f0a26+'-'+_0x1aceee+'/'+_0x63cb2d)['json'](_0x4d5c05);}return null;};}function patchUpdates(_0x16a402){return function(_0x5d80e5){try{jsonpatch[_0x6827('0x29')](_0x5d80e5,_0x16a402,!![]);}catch(_0x41a1a1){return BPromise['reject'](_0x41a1a1);}return _0x5d80e5['save']();};}function saveUpdates(_0x3c3e3c,_0x2faf75){return function(_0x594746){if(_0x594746){return _0x594746[_0x6827('0x2a')](_0x3c3e3c)[_0x6827('0x2b')](function(_0x20bdfc){return _0x20bdfc;});}return null;};}function removeEntity(_0x83189b,_0x2a4ff8){return function(_0x4ee5cd){if(_0x4ee5cd){return _0x4ee5cd[_0x6827('0x2c')]()[_0x6827('0x2b')](function(){_0x83189b[_0x6827('0x23')](0xcc)[_0x6827('0x24')]();});}};}function handleEntityNotFound(_0x4cd559,_0x484e15){return function(_0x5166fa){if(!_0x5166fa){_0x4cd559[_0x6827('0x22')](0x194);}return _0x5166fa;};}function handleError(_0x4d413d,_0x519a8c){_0x519a8c=_0x519a8c||0x1f4;return function(_0x178b92){logger[_0x6827('0x1c')](_0x178b92[_0x6827('0x2d')]);if(_0x178b92[_0x6827('0x2e')]){delete _0x178b92[_0x6827('0x2e')];}_0x4d413d[_0x6827('0x23')](_0x519a8c)['send'](_0x178b92);};}exports[_0x6827('0x2f')]=function(_0x748f5e,_0x1405bb){var _0x419898={},_0x4576fe={},_0x44ec6a={'count':0x0,'rows':[]};var _0x5ca3ed=_[_0x6827('0x30')](db[_0x6827('0x31')][_0x6827('0x32')],function(_0x204df1){return{'name':_0x204df1[_0x6827('0x33')],'type':_0x204df1[_0x6827('0x34')][_0x6827('0x35')]};});_0x4576fe[_0x6827('0x36')]=_['map'](_0x5ca3ed,'name');_0x4576fe['query']=_[_0x6827('0x37')](_0x748f5e['query']);_0x4576fe[_0x6827('0x38')]=_[_0x6827('0x39')](_0x4576fe[_0x6827('0x36')],_0x4576fe[_0x6827('0x3a')]);_0x419898['attributes']=_[_0x6827('0x39')](_0x4576fe[_0x6827('0x36')],qs[_0x6827('0x3b')](_0x748f5e[_0x6827('0x3a')][_0x6827('0x3b')]));_0x419898[_0x6827('0x3c')]=_0x419898[_0x6827('0x3c')][_0x6827('0x3d')]?_0x419898[_0x6827('0x3c')]:_0x4576fe[_0x6827('0x36')];if(!_0x748f5e[_0x6827('0x3a')]['hasOwnProperty']('nolimit')){_0x419898[_0x6827('0x27')]=qs[_0x6827('0x27')](_0x748f5e[_0x6827('0x3a')][_0x6827('0x27')]);_0x419898[_0x6827('0x26')]=qs[_0x6827('0x26')](_0x748f5e['query'][_0x6827('0x26')]);}_0x419898[_0x6827('0x3e')]=qs['sort'](_0x748f5e[_0x6827('0x3a')][_0x6827('0x3f')]);_0x419898[_0x6827('0x40')]=qs[_0x6827('0x38')](_[_0x6827('0x41')](_0x748f5e[_0x6827('0x3a')],_0x4576fe[_0x6827('0x38')]),_0x5ca3ed);if(_0x748f5e[_0x6827('0x3a')]['filter']){_0x419898[_0x6827('0x40')]=_[_0x6827('0x42')](_0x419898[_0x6827('0x40')],{'$or':_[_0x6827('0x30')](_0x5ca3ed,function(_0x227de2){if(_0x227de2['type']!=='VIRTUAL'){var _0x1e3bd2={};_0x1e3bd2[_0x227de2[_0x6827('0x2e')]]={'$like':'%'+_0x748f5e[_0x6827('0x3a')][_0x6827('0x43')]+'%'};return _0x1e3bd2;}})});}_0x419898=_[_0x6827('0x42')]({},_0x419898,_0x748f5e['options']);var _0x1d9786={'where':_0x419898[_0x6827('0x40')]};return db[_0x6827('0x31')][_0x6827('0x44')](_0x1d9786)[_0x6827('0x2b')](function(_0x1b3a28){_0x44ec6a[_0x6827('0x44')]=_0x1b3a28;if(_0x748f5e[_0x6827('0x3a')][_0x6827('0x45')]){_0x419898[_0x6827('0x46')]=[{'all':!![]}];}return db[_0x6827('0x31')][_0x6827('0x47')](_0x419898);})[_0x6827('0x2b')](function(_0x27e408){_0x44ec6a[_0x6827('0x48')]=_0x27e408;return _0x44ec6a;})[_0x6827('0x2b')](respondWithFilteredResult(_0x1405bb,_0x419898))[_0x6827('0x21')](handleError(_0x1405bb,null));};exports['show']=function(_0x4c6d91,_0x4687d1){var _0x4b168c={'raw':!![],'where':{'id':_0x4c6d91[_0x6827('0x49')]['id']}},_0x13ba98={};_0x13ba98['model']=_[_0x6827('0x37')](db[_0x6827('0x31')][_0x6827('0x32')]);_0x13ba98[_0x6827('0x3a')]=_[_0x6827('0x37')](_0x4c6d91[_0x6827('0x3a')]);_0x13ba98[_0x6827('0x38')]=_['intersection'](_0x13ba98[_0x6827('0x36')],_0x13ba98['query']);_0x4b168c[_0x6827('0x3c')]=_[_0x6827('0x39')](_0x13ba98[_0x6827('0x36')],qs[_0x6827('0x3b')](_0x4c6d91[_0x6827('0x3a')]['fields']));_0x4b168c['attributes']=_0x4b168c[_0x6827('0x3c')][_0x6827('0x3d')]?_0x4b168c[_0x6827('0x3c')]:_0x13ba98[_0x6827('0x36')];if(_0x4c6d91[_0x6827('0x3a')][_0x6827('0x45')]){_0x4b168c[_0x6827('0x46')]=[{'all':!![]}];}_0x4b168c=_['merge']({},_0x4b168c,_0x4c6d91['options']);return db['Network'][_0x6827('0x4a')](_0x4b168c)['then'](handleEntityNotFound(_0x4687d1,null))['then'](respondWithResult(_0x4687d1,null))[_0x6827('0x21')](handleError(_0x4687d1,null));};exports[_0x6827('0x4b')]=function(_0x51f0e8,_0x5a9856,_0x1a9d44){var _0x43a071;return db[_0x6827('0x4c')]['transaction'](function(_0x1afb49){return db[_0x6827('0x31')][_0x6827('0x4b')](_0x51f0e8[_0x6827('0x4d')],{'raw':!![]})['then'](function(_0x5d9ff1){_0x43a071=_0x5d9ff1;return db[_0x6827('0x31')]['findAll']({'where':{'type':_0x51f0e8['body'][_0x6827('0x34')]},'raw':!![]});})['then'](function(_0x397f0a){if(_0x43a071['type'][_0x6827('0x4e')]()==_0x6827('0x4f')){var _0x2f8932=fs['readFileSync'](path[_0x6827('0x50')](config[_0x6827('0x51')],'server/files/templates/stun_multiple.ejs'),'utf8');var _0xf4494c=ejs['render'](_0x2f8932,{'networks':_0x397f0a||[]});fs[_0x6827('0x52')]('/etc/asterisk/stun_xcally.conf',_0xf4494c);return respondWithRpcPromise(_0x6827('0x53'),'create',{'module':_0x6827('0x54')});}else if(_0x43a071[_0x6827('0x34')][_0x6827('0x4e')]()=='TURN'){var _0x1460ef=fs[_0x6827('0x55')](path[_0x6827('0x50')](config[_0x6827('0x51')],_0x6827('0x56')),_0x6827('0x57'));var _0x17242f=ejs['render'](_0x1460ef,{'networks':_0x397f0a||[]});fs[_0x6827('0x52')](_0x6827('0x58'),_0x17242f);return respondWithRpcPromise(_0x6827('0x53'),'create',{'module':_0x6827('0x54')});}else{var _0x2713c6=fs[_0x6827('0x55')](path[_0x6827('0x50')](config[_0x6827('0x51')],_0x6827('0x59')),_0x6827('0x57'));var _0xb90608=ejs[_0x6827('0x5a')](_0x2713c6,{'networks':_0x397f0a||[]});fs['writeFileSync'](util[_0x6827('0x5b')](_0x6827('0x5c'),_0x51f0e8[_0x6827('0x4d')][_0x6827('0x34')][_0x6827('0x5d')]()),_0xb90608);return respondWithRpcPromise('Reload',_0x6827('0x4b'),{'module':'chan_sip.so'});}return null;})['then'](function(){return _0x43a071;});})[_0x6827('0x2b')](respondWithResult(_0x5a9856,0xc9))[_0x6827('0x21')](handleError(_0x5a9856,null));};exports[_0x6827('0x2a')]=function(_0x516a27,_0x539c31,_0x54be02){var _0x44af4e;return db[_0x6827('0x4c')][_0x6827('0x5e')](function(_0x4e666a){return db[_0x6827('0x31')]['find']({'where':{'id':_0x516a27[_0x6827('0x49')]['id']}})[_0x6827('0x2b')](handleEntityNotFound(_0x539c31,null))[_0x6827('0x2b')](saveUpdates(_0x516a27['body'],null))[_0x6827('0x2b')](function(_0x225e78){if(_0x225e78){_0x44af4e=_0x225e78;return db[_0x6827('0x31')]['findAll']({'where':{'type':_0x44af4e[_0x6827('0x34')]},'raw':!![]});}return null;})[_0x6827('0x2b')](function(_0x5a1ad2){if(_0x44af4e['type']['toUpperCase']()==_0x6827('0x4f')){var _0x44a735=fs[_0x6827('0x55')](path[_0x6827('0x50')](config[_0x6827('0x51')],_0x6827('0x5f')),_0x6827('0x57'));var _0x20dc3c=ejs['render'](_0x44a735,{'networks':_0x5a1ad2||[]});fs[_0x6827('0x52')](_0x6827('0x60'),_0x20dc3c);return respondWithRpcPromise(_0x6827('0x53'),_0x6827('0x2a'),{'module':_0x6827('0x54')});}else if(_0x44af4e['type'][_0x6827('0x4e')]()==_0x6827('0x61')){var _0x420002=fs['readFileSync'](path[_0x6827('0x50')](config[_0x6827('0x51')],_0x6827('0x56')),_0x6827('0x57'));var _0x3eee84=ejs[_0x6827('0x5a')](_0x420002,{'networks':_0x5a1ad2||[]});fs[_0x6827('0x52')](_0x6827('0x58'),_0x3eee84);return respondWithRpcPromise(_0x6827('0x53'),_0x6827('0x2a'),{'module':_0x6827('0x54')});}else{var _0x1fd2cc=fs[_0x6827('0x55')](path[_0x6827('0x50')](config[_0x6827('0x51')],_0x6827('0x59')),'utf8');var _0xf1f299=ejs[_0x6827('0x5a')](_0x1fd2cc,{'networks':_0x5a1ad2||[]});fs[_0x6827('0x52')](util[_0x6827('0x5b')]('/etc/asterisk/sip_xcally_%s.conf',_0x516a27[_0x6827('0x4d')][_0x6827('0x34')][_0x6827('0x5d')]()),_0xf1f299);return respondWithRpcPromise(_0x6827('0x53'),_0x6827('0x2a'),{'module':'chan_sip.so'});}return null;})[_0x6827('0x2b')](function(_0x13b315){if(_0x13b315){return _0x44af4e;}return null;});})[_0x6827('0x2b')](respondWithResult(_0x539c31,null))[_0x6827('0x21')](handleError(_0x539c31,null));};exports[_0x6827('0x2c')]=function(_0x1d81f1,_0x1c0387,_0x2895d7){var _0x4c14e6;return db['Network'][_0x6827('0x4a')]({'where':{'id':_0x1d81f1['params']['id']}})['then'](function(_0x582b43){_0x4c14e6=_0x582b43;return _0x582b43;})[_0x6827('0x2b')](handleEntityNotFound(_0x1c0387,null))['then'](removeEntity(_0x1c0387,null))['then'](function(){if(_0x4c14e6){return db[_0x6827('0x31')]['findAll']({'where':{'type':_0x4c14e6[_0x6827('0x34')]},'raw':!![]});}})[_0x6827('0x2b')](function(_0x4ced39){if(_0x4c14e6['type']['toUpperCase']()==_0x6827('0x4f')){var _0x400f65=fs[_0x6827('0x55')](path[_0x6827('0x50')](config[_0x6827('0x51')],'server/files/templates/stun_multiple.ejs'),_0x6827('0x57'));var _0x26eea6=ejs[_0x6827('0x5a')](_0x400f65,{'networks':_0x4ced39||[]});fs[_0x6827('0x52')](_0x6827('0x60'),_0x26eea6);return respondWithRpcPromise(_0x6827('0x53'),_0x6827('0x2c'),{'module':'res_stun_monitor.so'});}else if(_0x4c14e6[_0x6827('0x34')][_0x6827('0x4e')]()==_0x6827('0x61')){var _0x155685=fs[_0x6827('0x55')](path[_0x6827('0x50')](config[_0x6827('0x51')],_0x6827('0x56')),_0x6827('0x57'));var _0x1e9ac3=ejs['render'](_0x155685,{'networks':_0x4ced39||[]});fs[_0x6827('0x52')](_0x6827('0x58'),_0x1e9ac3);return respondWithRpcPromise('Reload','destroy',{'module':_0x6827('0x54')});}else{var _0x386652=fs[_0x6827('0x55')](path[_0x6827('0x50')](config[_0x6827('0x51')],_0x6827('0x59')),_0x6827('0x57'));var _0x5824ee=ejs[_0x6827('0x5a')](_0x386652,{'networks':_0x4ced39||[]});fs[_0x6827('0x52')](util[_0x6827('0x5b')](_0x6827('0x5c'),_0x1d81f1[_0x6827('0x4d')][_0x6827('0x34')][_0x6827('0x5d')]()),_0x5824ee);return respondWithRpcPromise('Reload',_0x6827('0x2c'),{'module':_0x6827('0x62')});}return null;})[_0x6827('0x21')](handleError(_0x1c0387,null));};