c5d099f50b4dba64a0911dfcd00733317368daaa
[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 _0x2bd4=['fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','find','create','transaction','body','type','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','res_stun_monitor.so','TURN','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','Reload','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','sequelize','toUpperCase','STUN','server/files/templates/network.ejs','params','rimraf','zip-dir','fast-json-patch','bluebird','mustache','path','to-csv','lodash','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','../../mysqldb','client','request','then','debug','Network,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','Network,\x20%s,\x20%s','message','info','status','end','count','offset','limit','set','json','reject','save','update','destroy','stack','name','send','map','Network','fieldName','key','model','query','keys','filters','intersection','attributes'];(function(_0x2e1988,_0x51b133){var _0xbd6e4f=function(_0x49c608){while(--_0x49c608){_0x2e1988['push'](_0x2e1988['shift']());}};_0xbd6e4f(++_0x51b133);}(_0x2bd4,0x8e));var _0x42bd=function(_0x5cb866,_0x2b0123){_0x5cb866=_0x5cb866-0x0;var _0x559959=_0x2bd4[_0x5cb866];return _0x559959;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x42bd('0x0'));var zipdir=require(_0x42bd('0x1'));var jsonpatch=require(_0x42bd('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x42bd('0x3'));var Mustache=require(_0x42bd('0x4'));var util=require('util');var path=require(_0x42bd('0x5'));var sox=require('sox');var csv=require(_0x42bd('0x6'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x42bd('0x7'));var squel=require(_0x42bd('0x8'));var crypto=require('crypto');var jsforce=require(_0x42bd('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x42bd('0x6'));var querystring=require(_0x42bd('0xa'));var Papa=require(_0x42bd('0xb'));var Redis=require('ioredis');var authService=require(_0x42bd('0xc'));var qs=require(_0x42bd('0xd'));var as=require(_0x42bd('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x42bd('0xf'))(_0x42bd('0x10'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x42bd('0x11'));var db=require(_0x42bd('0x12'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x42bd('0x13')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5893e8,_0x8ba190,_0x967a70,_0x5265dd){return new BPromise(function(_0xfef1c0,_0x2f6264){var _0x4ec9d6=_0x5265dd||client;return _0x4ec9d6[_0x42bd('0x14')](_0x5893e8,_0x967a70)[_0x42bd('0x15')](function(_0x6626e4){logger['info']('Network,\x20%s,\x20%s',_0x8ba190,'request\x20sent');logger[_0x42bd('0x16')](_0x42bd('0x17'),_0x8ba190,_0x42bd('0x18'),JSON['stringify'](_0x6626e4));if(_0x6626e4[_0x42bd('0x19')]){if(_0x6626e4[_0x42bd('0x19')][_0x42bd('0x1a')]===0x1f4){logger[_0x42bd('0x19')](_0x42bd('0x1b'),_0x8ba190,_0x6626e4[_0x42bd('0x19')][_0x42bd('0x1c')]);return _0x2f6264(_0x6626e4[_0x42bd('0x19')]['message']);}logger[_0x42bd('0x19')](_0x42bd('0x1b'),_0x8ba190,_0x6626e4[_0x42bd('0x19')]['message']);return _0xfef1c0(_0x6626e4[_0x42bd('0x19')][_0x42bd('0x1c')]);}else{logger[_0x42bd('0x1d')](_0x42bd('0x1b'),_0x8ba190,_0x42bd('0x18'));_0xfef1c0(_0x6626e4['result']['message']);}})['catch'](function(_0x16573c){logger[_0x42bd('0x19')](_0x42bd('0x1b'),_0x8ba190,_0x16573c);_0x2f6264(_0x16573c);});});}function respondWithStatusCode(_0x1d2312,_0x469f40){_0x469f40=_0x469f40||0xcc;return function(_0x2fd300){if(_0x2fd300){return _0x1d2312['sendStatus'](_0x469f40);}return _0x1d2312[_0x42bd('0x1e')](_0x469f40)[_0x42bd('0x1f')]();};}function respondWithResult(_0x4d612f,_0x4347ac){_0x4347ac=_0x4347ac||0xc8;return function(_0x10dd84){if(_0x10dd84){return _0x4d612f[_0x42bd('0x1e')](_0x4347ac)['json'](_0x10dd84);}};}function respondWithFilteredResult(_0x957888,_0x14eaab){return function(_0x126732){if(_0x126732){var _0x5245b1=_0x126732[_0x42bd('0x20')],_0xcb619=_0x14eaab[_0x42bd('0x21')],_0x3d4b64=_0x14eaab[_0x42bd('0x21')]+_0x14eaab[_0x42bd('0x22')],_0x31fecf;if(_0x3d4b64>=_0x5245b1){_0x3d4b64=_0x5245b1;_0x31fecf=0xc8;}else{_0x31fecf=0xce;}_0x957888[_0x42bd('0x1e')](_0x31fecf);return _0x957888[_0x42bd('0x23')]('Content-Range',_0xcb619+'-'+_0x3d4b64+'/'+_0x5245b1)[_0x42bd('0x24')](_0x126732);}return null;};}function patchUpdates(_0x253143){return function(_0x290860){try{jsonpatch['apply'](_0x290860,_0x253143,!![]);}catch(_0x200bbb){return BPromise[_0x42bd('0x25')](_0x200bbb);}return _0x290860[_0x42bd('0x26')]();};}function saveUpdates(_0x16e9c2,_0x56318b){return function(_0x4f8674){if(_0x4f8674){return _0x4f8674[_0x42bd('0x27')](_0x16e9c2)[_0x42bd('0x15')](function(_0x157e20){return _0x157e20;});}return null;};}function removeEntity(_0x38eee3,_0x4b5673){return function(_0x661702){if(_0x661702){return _0x661702[_0x42bd('0x28')]()['then'](function(){_0x38eee3['status'](0xcc)[_0x42bd('0x1f')]();});}};}function handleEntityNotFound(_0x246bfc,_0x3ccaa8){return function(_0xdbb14f){if(!_0xdbb14f){_0x246bfc['sendStatus'](0x194);}return _0xdbb14f;};}function handleError(_0x10d0e5,_0x4af9d8){_0x4af9d8=_0x4af9d8||0x1f4;return function(_0x5b49c4){logger[_0x42bd('0x19')](_0x5b49c4[_0x42bd('0x29')]);if(_0x5b49c4[_0x42bd('0x2a')]){delete _0x5b49c4[_0x42bd('0x2a')];}_0x10d0e5[_0x42bd('0x1e')](_0x4af9d8)[_0x42bd('0x2b')](_0x5b49c4);};}exports['index']=function(_0x4994c9,_0x3a5de8){var _0x1e53de={},_0x3d0b56={},_0x1269f5={'count':0x0,'rows':[]};var _0x1b1952=_[_0x42bd('0x2c')](db[_0x42bd('0x2d')]['rawAttributes'],function(_0x5b10d3){return{'name':_0x5b10d3[_0x42bd('0x2e')],'type':_0x5b10d3['type'][_0x42bd('0x2f')]};});_0x3d0b56[_0x42bd('0x30')]=_[_0x42bd('0x2c')](_0x1b1952,_0x42bd('0x2a'));_0x3d0b56[_0x42bd('0x31')]=_[_0x42bd('0x32')](_0x4994c9['query']);_0x3d0b56[_0x42bd('0x33')]=_[_0x42bd('0x34')](_0x3d0b56[_0x42bd('0x30')],_0x3d0b56[_0x42bd('0x31')]);_0x1e53de[_0x42bd('0x35')]=_[_0x42bd('0x34')](_0x3d0b56[_0x42bd('0x30')],qs['fields'](_0x4994c9['query'][_0x42bd('0x36')]));_0x1e53de[_0x42bd('0x35')]=_0x1e53de[_0x42bd('0x35')][_0x42bd('0x37')]?_0x1e53de[_0x42bd('0x35')]:_0x3d0b56[_0x42bd('0x30')];if(!_0x4994c9[_0x42bd('0x31')][_0x42bd('0x38')](_0x42bd('0x39'))){_0x1e53de[_0x42bd('0x22')]=qs[_0x42bd('0x22')](_0x4994c9[_0x42bd('0x31')][_0x42bd('0x22')]);_0x1e53de[_0x42bd('0x21')]=qs[_0x42bd('0x21')](_0x4994c9['query'][_0x42bd('0x21')]);}_0x1e53de[_0x42bd('0x3a')]=qs['sort'](_0x4994c9[_0x42bd('0x31')][_0x42bd('0x3b')]);_0x1e53de[_0x42bd('0x3c')]=qs[_0x42bd('0x33')](_[_0x42bd('0x3d')](_0x4994c9[_0x42bd('0x31')],_0x3d0b56[_0x42bd('0x33')]),_0x1b1952);if(_0x4994c9['query'][_0x42bd('0x3e')]){_0x1e53de[_0x42bd('0x3c')]=_[_0x42bd('0x3f')](_0x1e53de[_0x42bd('0x3c')],{'$or':_[_0x42bd('0x2c')](_0x1b1952,function(_0x525977){if(_0x525977['type']!==_0x42bd('0x40')){var _0x569d44={};_0x569d44[_0x525977[_0x42bd('0x2a')]]={'$like':'%'+_0x4994c9[_0x42bd('0x31')][_0x42bd('0x3e')]+'%'};return _0x569d44;}})});}_0x1e53de=_['merge']({},_0x1e53de,_0x4994c9[_0x42bd('0x41')]);var _0x259b97={'where':_0x1e53de[_0x42bd('0x3c')]};return db[_0x42bd('0x2d')][_0x42bd('0x20')](_0x259b97)[_0x42bd('0x15')](function(_0x146725){_0x1269f5['count']=_0x146725;if(_0x4994c9[_0x42bd('0x31')][_0x42bd('0x42')]){_0x1e53de['include']=[{'all':!![]}];}return db[_0x42bd('0x2d')][_0x42bd('0x43')](_0x1e53de);})[_0x42bd('0x15')](function(_0x5442eb){_0x1269f5[_0x42bd('0x44')]=_0x5442eb;return _0x1269f5;})['then'](respondWithFilteredResult(_0x3a5de8,_0x1e53de))[_0x42bd('0x45')](handleError(_0x3a5de8,null));};exports[_0x42bd('0x46')]=function(_0x52973f,_0x390e83){var _0x387147={'raw':!![],'where':{'id':_0x52973f['params']['id']}},_0x1821bc={};_0x1821bc['model']=_[_0x42bd('0x32')](db[_0x42bd('0x2d')]['rawAttributes']);_0x1821bc[_0x42bd('0x31')]=_[_0x42bd('0x32')](_0x52973f['query']);_0x1821bc[_0x42bd('0x33')]=_[_0x42bd('0x34')](_0x1821bc[_0x42bd('0x30')],_0x1821bc[_0x42bd('0x31')]);_0x387147[_0x42bd('0x35')]=_[_0x42bd('0x34')](_0x1821bc['model'],qs[_0x42bd('0x36')](_0x52973f[_0x42bd('0x31')][_0x42bd('0x36')]));_0x387147[_0x42bd('0x35')]=_0x387147[_0x42bd('0x35')]['length']?_0x387147[_0x42bd('0x35')]:_0x1821bc[_0x42bd('0x30')];if(_0x52973f[_0x42bd('0x31')][_0x42bd('0x42')]){_0x387147['include']=[{'all':!![]}];}_0x387147=_['merge']({},_0x387147,_0x52973f[_0x42bd('0x41')]);return db[_0x42bd('0x2d')][_0x42bd('0x47')](_0x387147)[_0x42bd('0x15')](handleEntityNotFound(_0x390e83,null))['then'](respondWithResult(_0x390e83,null))[_0x42bd('0x45')](handleError(_0x390e83,null));};exports[_0x42bd('0x48')]=function(_0x5d6215,_0x2cb8cf,_0x5b06bd){var _0x43d828;return db['sequelize'][_0x42bd('0x49')](function(_0x2988f5){return db['Network'][_0x42bd('0x48')](_0x5d6215[_0x42bd('0x4a')],{'raw':!![]})[_0x42bd('0x15')](function(_0xc5521e){_0x43d828=_0xc5521e;return db[_0x42bd('0x2d')]['findAll']({'where':{'type':_0x5d6215[_0x42bd('0x4a')][_0x42bd('0x4b')]},'raw':!![]});})[_0x42bd('0x15')](function(_0x368740){if(_0x43d828[_0x42bd('0x4b')]['toUpperCase']()=='STUN'){var _0xfd99f=fs[_0x42bd('0x4c')](path[_0x42bd('0x4d')](config[_0x42bd('0x4e')],_0x42bd('0x4f')),_0x42bd('0x50'));var _0x59c98e=ejs[_0x42bd('0x51')](_0xfd99f,{'networks':_0x368740||[]});fs[_0x42bd('0x52')](_0x42bd('0x53'),_0x59c98e);return respondWithRpcPromise('Reload',_0x42bd('0x48'),{'module':_0x42bd('0x54')});}else if(_0x43d828[_0x42bd('0x4b')]['toUpperCase']()==_0x42bd('0x55')){var _0x4db017=fs[_0x42bd('0x4c')](path[_0x42bd('0x4d')](config['root'],_0x42bd('0x56')),'utf8');var _0x88af76=ejs[_0x42bd('0x51')](_0x4db017,{'networks':_0x368740||[]});fs[_0x42bd('0x52')](_0x42bd('0x57'),_0x88af76);return respondWithRpcPromise(_0x42bd('0x58'),_0x42bd('0x48'),{'module':_0x42bd('0x54')});}else{var _0x49cf49=fs[_0x42bd('0x4c')](path[_0x42bd('0x4d')](config[_0x42bd('0x4e')],'server/files/templates/network.ejs'),_0x42bd('0x50'));var _0x33d773=ejs[_0x42bd('0x51')](_0x49cf49,{'networks':_0x368740||[]});fs[_0x42bd('0x52')](util[_0x42bd('0x59')](_0x42bd('0x5a'),_0x5d6215[_0x42bd('0x4a')][_0x42bd('0x4b')][_0x42bd('0x5b')]()),_0x33d773);return respondWithRpcPromise(_0x42bd('0x58'),_0x42bd('0x48'),{'module':_0x42bd('0x5c')});}return null;})[_0x42bd('0x15')](function(){return _0x43d828;});})[_0x42bd('0x15')](respondWithResult(_0x2cb8cf,0xc9))[_0x42bd('0x45')](handleError(_0x2cb8cf,null));};exports[_0x42bd('0x27')]=function(_0x1c4874,_0x21124f,_0x7b0e0a){var _0x1cb356;return db[_0x42bd('0x5d')]['transaction'](function(_0x4a6d1a){return db[_0x42bd('0x2d')][_0x42bd('0x47')]({'where':{'id':_0x1c4874['params']['id']}})[_0x42bd('0x15')](handleEntityNotFound(_0x21124f,null))[_0x42bd('0x15')](saveUpdates(_0x1c4874['body'],null))[_0x42bd('0x15')](function(_0x3d3730){if(_0x3d3730){_0x1cb356=_0x3d3730;return db[_0x42bd('0x2d')]['findAll']({'where':{'type':_0x1cb356[_0x42bd('0x4b')]},'raw':!![]});}return null;})[_0x42bd('0x15')](function(_0x2ff196){if(_0x1cb356[_0x42bd('0x4b')][_0x42bd('0x5e')]()==_0x42bd('0x5f')){var _0x2bd5d5=fs[_0x42bd('0x4c')](path[_0x42bd('0x4d')](config[_0x42bd('0x4e')],_0x42bd('0x4f')),_0x42bd('0x50'));var _0x117059=ejs[_0x42bd('0x51')](_0x2bd5d5,{'networks':_0x2ff196||[]});fs[_0x42bd('0x52')](_0x42bd('0x53'),_0x117059);return respondWithRpcPromise(_0x42bd('0x58'),_0x42bd('0x27'),{'module':_0x42bd('0x54')});}else if(_0x1cb356[_0x42bd('0x4b')][_0x42bd('0x5e')]()==_0x42bd('0x55')){var _0x547273=fs[_0x42bd('0x4c')](path[_0x42bd('0x4d')](config[_0x42bd('0x4e')],_0x42bd('0x56')),'utf8');var _0x1b2f2a=ejs[_0x42bd('0x51')](_0x547273,{'networks':_0x2ff196||[]});fs[_0x42bd('0x52')](_0x42bd('0x57'),_0x1b2f2a);return respondWithRpcPromise(_0x42bd('0x58'),_0x42bd('0x27'),{'module':_0x42bd('0x54')});}else{var _0x1a8a04=fs[_0x42bd('0x4c')](path[_0x42bd('0x4d')](config[_0x42bd('0x4e')],_0x42bd('0x60')),_0x42bd('0x50'));var _0x831398=ejs[_0x42bd('0x51')](_0x1a8a04,{'networks':_0x2ff196||[]});fs['writeFileSync'](util['format'](_0x42bd('0x5a'),_0x1c4874[_0x42bd('0x4a')]['type'][_0x42bd('0x5b')]()),_0x831398);return respondWithRpcPromise(_0x42bd('0x58'),_0x42bd('0x27'),{'module':_0x42bd('0x5c')});}return null;})[_0x42bd('0x15')](function(_0x483a6e){if(_0x483a6e){return _0x1cb356;}return null;});})[_0x42bd('0x15')](respondWithResult(_0x21124f,null))['catch'](handleError(_0x21124f,null));};exports[_0x42bd('0x28')]=function(_0x4ca64c,_0x51a9cc,_0x364483){var _0x18a7f9;return db[_0x42bd('0x2d')][_0x42bd('0x47')]({'where':{'id':_0x4ca64c[_0x42bd('0x61')]['id']}})[_0x42bd('0x15')](function(_0x13256f){_0x18a7f9=_0x13256f;return _0x13256f;})[_0x42bd('0x15')](handleEntityNotFound(_0x51a9cc,null))[_0x42bd('0x15')](removeEntity(_0x51a9cc,null))[_0x42bd('0x15')](function(){if(_0x18a7f9){return db[_0x42bd('0x2d')][_0x42bd('0x43')]({'where':{'type':_0x18a7f9[_0x42bd('0x4b')]},'raw':!![]});}})['then'](function(_0x1a32e7){if(_0x18a7f9[_0x42bd('0x4b')][_0x42bd('0x5e')]()=='STUN'){var _0x1be203=fs[_0x42bd('0x4c')](path['join'](config[_0x42bd('0x4e')],'server/files/templates/stun_multiple.ejs'),'utf8');var _0x244f90=ejs[_0x42bd('0x51')](_0x1be203,{'networks':_0x1a32e7||[]});fs[_0x42bd('0x52')]('/etc/asterisk/stun_xcally.conf',_0x244f90);return respondWithRpcPromise('Reload',_0x42bd('0x28'),{'module':_0x42bd('0x54')});}else if(_0x18a7f9[_0x42bd('0x4b')][_0x42bd('0x5e')]()==_0x42bd('0x55')){var _0x598bcf=fs[_0x42bd('0x4c')](path[_0x42bd('0x4d')](config[_0x42bd('0x4e')],_0x42bd('0x56')),_0x42bd('0x50'));var _0x628bd5=ejs['render'](_0x598bcf,{'networks':_0x1a32e7||[]});fs['writeFileSync']('/etc/asterisk/turn_xcally.conf',_0x628bd5);return respondWithRpcPromise(_0x42bd('0x58'),_0x42bd('0x28'),{'module':_0x42bd('0x54')});}else{var _0x2132dc=fs['readFileSync'](path[_0x42bd('0x4d')](config[_0x42bd('0x4e')],_0x42bd('0x60')),'utf8');var _0x5829b1=ejs[_0x42bd('0x51')](_0x2132dc,{'networks':_0x1a32e7||[]});fs[_0x42bd('0x52')](util[_0x42bd('0x59')](_0x42bd('0x5a'),_0x4ca64c[_0x42bd('0x4a')][_0x42bd('0x4b')][_0x42bd('0x5b')]()),_0x5829b1);return respondWithRpcPromise('Reload','destroy',{'module':'chan_sip.so'});}return null;})[_0x42bd('0x45')](handleError(_0x51a9cc,null));};