fccefd3d8269e97871239562129c88164157e5bc
[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 _0x8f82=['res_stun_monitor.so','TURN','readFileSync','/etc/asterisk/turn_xcally.conf','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','update','server/files/templates/turn_multiple.ejs','server/files/templates/network.ejs','format','catch','chan_sip.so','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','jayson/promise','client','http','request','then','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','error','code','message','info','result','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','reject','destroy','name','send','index','map','Network','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','where','filters','filter','merge','VIRTUAL','options','include','findAll','rows','params','includeAll','find','create','body','toUpperCase','STUN','join','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload'];(function(_0x365875,_0x3a9957){var _0x284d75=function(_0x597744){while(--_0x597744){_0x365875['push'](_0x365875['shift']());}};_0x284d75(++_0x3a9957);}(_0x8f82,0x77));var _0x28f8=function(_0x6178a4,_0x2ada0e){_0x6178a4=_0x6178a4-0x0;var _0x26b716=_0x8f82[_0x6178a4];return _0x26b716;};'use strict';var emlformat=require(_0x28f8('0x0'));var rimraf=require(_0x28f8('0x1'));var zipdir=require(_0x28f8('0x2'));var jsonpatch=require(_0x28f8('0x3'));var rp=require(_0x28f8('0x4'));var moment=require('moment');var BPromise=require(_0x28f8('0x5'));var Mustache=require(_0x28f8('0x6'));var util=require(_0x28f8('0x7'));var path=require(_0x28f8('0x8'));var sox=require(_0x28f8('0x9'));var csv=require(_0x28f8('0xa'));var ejs=require(_0x28f8('0xb'));var fs=require('fs');var fs_extra=require(_0x28f8('0xc'));var _=require(_0x28f8('0xd'));var squel=require(_0x28f8('0xe'));var crypto=require('crypto');var jsforce=require(_0x28f8('0xf'));var deskjs=require(_0x28f8('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x28f8('0x11'));var Redis=require('ioredis');var authService=require(_0x28f8('0x12'));var qs=require(_0x28f8('0x13'));var as=require(_0x28f8('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x28f8('0x15'))(_0x28f8('0x16'));var utils=require(_0x28f8('0x17'));var config=require(_0x28f8('0x18'));var licenseUtil=require(_0x28f8('0x19'));var db=require('../../mysqldb')['db'];var jayson=require(_0x28f8('0x1a'));var client=jayson[_0x28f8('0x1b')][_0x28f8('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x3571b7,_0x9a473a,_0x11605f,_0x23c2ef){return new BPromise(function(_0x3ba13b,_0x48f8af){var _0x3adf13=_0x23c2ef||client;return _0x3adf13[_0x28f8('0x1d')](_0x3571b7,_0x11605f)[_0x28f8('0x1e')](function(_0x46cd9c){logger['info'](_0x28f8('0x1f'),_0x9a473a,_0x28f8('0x20'));logger[_0x28f8('0x21')](_0x28f8('0x22'),_0x9a473a,_0x28f8('0x20'),JSON['stringify'](_0x46cd9c));if(_0x46cd9c[_0x28f8('0x23')]){if(_0x46cd9c['error'][_0x28f8('0x24')]===0x1f4){logger[_0x28f8('0x23')](_0x28f8('0x1f'),_0x9a473a,_0x46cd9c[_0x28f8('0x23')][_0x28f8('0x25')]);return _0x48f8af(_0x46cd9c[_0x28f8('0x23')][_0x28f8('0x25')]);}logger['error'](_0x28f8('0x1f'),_0x9a473a,_0x46cd9c[_0x28f8('0x23')]['message']);return _0x3ba13b(_0x46cd9c[_0x28f8('0x23')][_0x28f8('0x25')]);}else{logger[_0x28f8('0x26')](_0x28f8('0x1f'),_0x9a473a,'request\x20sent');_0x3ba13b(_0x46cd9c[_0x28f8('0x27')]['message']);}})['catch'](function(_0x590390){logger[_0x28f8('0x23')](_0x28f8('0x1f'),_0x9a473a,_0x590390);_0x48f8af(_0x590390);});});}function respondWithStatusCode(_0x38de1e,_0xac2fca){_0xac2fca=_0xac2fca||0xcc;return function(_0x909ad8){if(_0x909ad8){return _0x38de1e[_0x28f8('0x28')](_0xac2fca);}return _0x38de1e[_0x28f8('0x29')](_0xac2fca)[_0x28f8('0x2a')]();};}function respondWithResult(_0x1b988e,_0x4e5237){_0x4e5237=_0x4e5237||0xc8;return function(_0x6c936e){if(_0x6c936e){return _0x1b988e[_0x28f8('0x29')](_0x4e5237)['json'](_0x6c936e);}};}function respondWithFilteredResult(_0x470e61,_0x28bcbe){return function(_0x53aade){if(_0x53aade){var _0x558aed=typeof _0x28bcbe[_0x28f8('0x2b')]===_0x28f8('0x2c')&&typeof _0x28bcbe['limit']===_0x28f8('0x2c');var _0x29639d=_0x53aade[_0x28f8('0x2d')];var _0x4c4453=_0x558aed?0x0:_0x28bcbe['offset'];var _0x4c9a2c=_0x558aed?_0x53aade[_0x28f8('0x2d')]:_0x28bcbe[_0x28f8('0x2b')]+_0x28bcbe[_0x28f8('0x2e')];var _0x12d3f4;if(_0x4c9a2c>=_0x29639d){_0x4c9a2c=_0x29639d;_0x12d3f4=0xc8;}else{_0x12d3f4=0xce;}_0x470e61[_0x28f8('0x29')](_0x12d3f4);return _0x470e61[_0x28f8('0x2f')](_0x28f8('0x30'),_0x4c4453+'-'+_0x4c9a2c+'/'+_0x29639d)[_0x28f8('0x31')](_0x53aade);}return null;};}function patchUpdates(_0x84ad0e){return function(_0x501ba3){try{jsonpatch['apply'](_0x501ba3,_0x84ad0e,!![]);}catch(_0x5d710a){return BPromise[_0x28f8('0x32')](_0x5d710a);}return _0x501ba3['save']();};}function saveUpdates(_0x420b9f,_0x49f189){return function(_0x527ea3){if(_0x527ea3){return _0x527ea3['update'](_0x420b9f)[_0x28f8('0x1e')](function(_0x4045a0){return _0x4045a0;});}return null;};}function removeEntity(_0x446633,_0x1bf11a){return function(_0x485433){if(_0x485433){return _0x485433[_0x28f8('0x33')]()[_0x28f8('0x1e')](function(){_0x446633[_0x28f8('0x29')](0xcc)[_0x28f8('0x2a')]();});}};}function handleEntityNotFound(_0x376c4e,_0x53a1bc){return function(_0x1da768){if(!_0x1da768){_0x376c4e[_0x28f8('0x28')](0x194);}return _0x1da768;};}function handleError(_0xc3e6ad,_0x48a13a){_0x48a13a=_0x48a13a||0x1f4;return function(_0x3264f6){logger[_0x28f8('0x23')](_0x3264f6['stack']);if(_0x3264f6[_0x28f8('0x34')]){delete _0x3264f6[_0x28f8('0x34')];}_0xc3e6ad[_0x28f8('0x29')](_0x48a13a)[_0x28f8('0x35')](_0x3264f6);};}exports[_0x28f8('0x36')]=function(_0x3de31f,_0x42d4de){var _0x32cb77={},_0x4cc9e5={},_0x25ddec={'count':0x0,'rows':[]};var _0x33ae95=_[_0x28f8('0x37')](db[_0x28f8('0x38')][_0x28f8('0x39')],function(_0x10bb20){return{'name':_0x10bb20[_0x28f8('0x3a')],'type':_0x10bb20[_0x28f8('0x3b')][_0x28f8('0x3c')]};});_0x4cc9e5[_0x28f8('0x3d')]=_[_0x28f8('0x37')](_0x33ae95,_0x28f8('0x34'));_0x4cc9e5[_0x28f8('0x3e')]=_[_0x28f8('0x3f')](_0x3de31f[_0x28f8('0x3e')]);_0x4cc9e5['filters']=_[_0x28f8('0x40')](_0x4cc9e5['model'],_0x4cc9e5[_0x28f8('0x3e')]);_0x32cb77['attributes']=_['intersection'](_0x4cc9e5[_0x28f8('0x3d')],qs[_0x28f8('0x41')](_0x3de31f[_0x28f8('0x3e')]['fields']));_0x32cb77[_0x28f8('0x42')]=_0x32cb77[_0x28f8('0x42')][_0x28f8('0x43')]?_0x32cb77[_0x28f8('0x42')]:_0x4cc9e5[_0x28f8('0x3d')];if(!_0x3de31f[_0x28f8('0x3e')][_0x28f8('0x44')](_0x28f8('0x45'))){_0x32cb77[_0x28f8('0x2e')]=qs[_0x28f8('0x2e')](_0x3de31f['query'][_0x28f8('0x2e')]);_0x32cb77[_0x28f8('0x2b')]=qs[_0x28f8('0x2b')](_0x3de31f[_0x28f8('0x3e')]['offset']);}_0x32cb77[_0x28f8('0x46')]=qs['sort'](_0x3de31f[_0x28f8('0x3e')]['sort']);_0x32cb77[_0x28f8('0x47')]=qs[_0x28f8('0x48')](_['pick'](_0x3de31f[_0x28f8('0x3e')],_0x4cc9e5[_0x28f8('0x48')]),_0x33ae95);if(_0x3de31f[_0x28f8('0x3e')][_0x28f8('0x49')]){_0x32cb77['where']=_[_0x28f8('0x4a')](_0x32cb77[_0x28f8('0x47')],{'$or':_['map'](_0x33ae95,function(_0x5c1561){if(_0x5c1561[_0x28f8('0x3b')]!==_0x28f8('0x4b')){var _0x5b1000={};_0x5b1000[_0x5c1561[_0x28f8('0x34')]]={'$like':'%'+_0x3de31f['query'][_0x28f8('0x49')]+'%'};return _0x5b1000;}})});}_0x32cb77=_[_0x28f8('0x4a')]({},_0x32cb77,_0x3de31f[_0x28f8('0x4c')]);var _0x3ff30c={'where':_0x32cb77[_0x28f8('0x47')]};return db[_0x28f8('0x38')][_0x28f8('0x2d')](_0x3ff30c)[_0x28f8('0x1e')](function(_0x414598){_0x25ddec[_0x28f8('0x2d')]=_0x414598;if(_0x3de31f['query']['includeAll']){_0x32cb77[_0x28f8('0x4d')]=[{'all':!![]}];}return db['Network'][_0x28f8('0x4e')](_0x32cb77);})['then'](function(_0x6bdce7){_0x25ddec[_0x28f8('0x4f')]=_0x6bdce7;return _0x25ddec;})[_0x28f8('0x1e')](respondWithFilteredResult(_0x42d4de,_0x32cb77))['catch'](handleError(_0x42d4de,null));};exports['show']=function(_0xf00c12,_0x25f9d2){var _0x142afb={'raw':!![],'where':{'id':_0xf00c12[_0x28f8('0x50')]['id']}},_0x3fc56a={};_0x3fc56a[_0x28f8('0x3d')]=_[_0x28f8('0x3f')](db[_0x28f8('0x38')][_0x28f8('0x39')]);_0x3fc56a[_0x28f8('0x3e')]=_['keys'](_0xf00c12[_0x28f8('0x3e')]);_0x3fc56a[_0x28f8('0x48')]=_[_0x28f8('0x40')](_0x3fc56a[_0x28f8('0x3d')],_0x3fc56a[_0x28f8('0x3e')]);_0x142afb[_0x28f8('0x42')]=_[_0x28f8('0x40')](_0x3fc56a[_0x28f8('0x3d')],qs[_0x28f8('0x41')](_0xf00c12[_0x28f8('0x3e')][_0x28f8('0x41')]));_0x142afb[_0x28f8('0x42')]=_0x142afb[_0x28f8('0x42')][_0x28f8('0x43')]?_0x142afb['attributes']:_0x3fc56a[_0x28f8('0x3d')];if(_0xf00c12[_0x28f8('0x3e')][_0x28f8('0x51')]){_0x142afb[_0x28f8('0x4d')]=[{'all':!![]}];}_0x142afb=_['merge']({},_0x142afb,_0xf00c12[_0x28f8('0x4c')]);return db[_0x28f8('0x38')][_0x28f8('0x52')](_0x142afb)[_0x28f8('0x1e')](handleEntityNotFound(_0x25f9d2,null))[_0x28f8('0x1e')](respondWithResult(_0x25f9d2,null))['catch'](handleError(_0x25f9d2,null));};exports['create']=function(_0x463ff3,_0x50e7b5,_0xf5c02c){var _0x1d07c2;return db['sequelize']['transaction'](function(_0x447246){return db[_0x28f8('0x38')][_0x28f8('0x53')](_0x463ff3[_0x28f8('0x54')],{'raw':!![]})[_0x28f8('0x1e')](function(_0xa87cd3){_0x1d07c2=_0xa87cd3;return db[_0x28f8('0x38')][_0x28f8('0x4e')]({'where':{'type':_0x463ff3[_0x28f8('0x54')][_0x28f8('0x3b')]},'raw':!![]});})['then'](function(_0x538398){if(_0x1d07c2[_0x28f8('0x3b')][_0x28f8('0x55')]()==_0x28f8('0x56')){var _0x3ec35a=fs['readFileSync'](path[_0x28f8('0x57')](config[_0x28f8('0x58')],_0x28f8('0x59')),_0x28f8('0x5a'));var _0x27304d=ejs[_0x28f8('0x5b')](_0x3ec35a,{'networks':_0x538398||[]});fs[_0x28f8('0x5c')](_0x28f8('0x5d'),_0x27304d);return respondWithRpcPromise(_0x28f8('0x5e'),_0x28f8('0x53'),{'module':_0x28f8('0x5f')});}else if(_0x1d07c2[_0x28f8('0x3b')]['toUpperCase']()==_0x28f8('0x60')){var _0x4fa110=fs[_0x28f8('0x61')](path[_0x28f8('0x57')](config[_0x28f8('0x58')],'server/files/templates/turn_multiple.ejs'),_0x28f8('0x5a'));var _0x2b824a=ejs['render'](_0x4fa110,{'networks':_0x538398||[]});fs[_0x28f8('0x5c')](_0x28f8('0x62'),_0x2b824a);return respondWithRpcPromise('Reload',_0x28f8('0x53'),{'module':_0x28f8('0x5f')});}else{var _0x260b80=fs[_0x28f8('0x61')](path['join'](config[_0x28f8('0x58')],'server/files/templates/network.ejs'),_0x28f8('0x5a'));var _0x5b9d7e=ejs[_0x28f8('0x5b')](_0x260b80,{'networks':_0x538398||[]});fs['writeFileSync'](util['format'](_0x28f8('0x63'),_0x463ff3[_0x28f8('0x54')][_0x28f8('0x3b')][_0x28f8('0x64')]()),_0x5b9d7e);return respondWithRpcPromise(_0x28f8('0x5e'),'create',{'module':'chan_sip.so'});}return null;})[_0x28f8('0x1e')](function(){return _0x1d07c2;});})['then'](respondWithResult(_0x50e7b5,0xc9))['catch'](handleError(_0x50e7b5,null));};exports[_0x28f8('0x65')]=function(_0x13a9b5,_0x2ddd1b,_0xa9d4e4){var _0x1c73b4;return db['sequelize']['transaction'](function(_0xec80c0){return db[_0x28f8('0x38')][_0x28f8('0x52')]({'where':{'id':_0x13a9b5[_0x28f8('0x50')]['id']}})['then'](handleEntityNotFound(_0x2ddd1b,null))['then'](saveUpdates(_0x13a9b5[_0x28f8('0x54')],null))[_0x28f8('0x1e')](function(_0x1ba2a1){if(_0x1ba2a1){_0x1c73b4=_0x1ba2a1;return db['Network']['findAll']({'where':{'type':_0x1c73b4[_0x28f8('0x3b')]},'raw':!![]});}return null;})[_0x28f8('0x1e')](function(_0x16664d){if(_0x1c73b4[_0x28f8('0x3b')][_0x28f8('0x55')]()==_0x28f8('0x56')){var _0xdc3cf=fs[_0x28f8('0x61')](path[_0x28f8('0x57')](config[_0x28f8('0x58')],_0x28f8('0x59')),'utf8');var _0x357efa=ejs[_0x28f8('0x5b')](_0xdc3cf,{'networks':_0x16664d||[]});fs[_0x28f8('0x5c')](_0x28f8('0x5d'),_0x357efa);return respondWithRpcPromise(_0x28f8('0x5e'),_0x28f8('0x65'),{'module':_0x28f8('0x5f')});}else if(_0x1c73b4[_0x28f8('0x3b')][_0x28f8('0x55')]()=='TURN'){var _0xbd720d=fs[_0x28f8('0x61')](path[_0x28f8('0x57')](config[_0x28f8('0x58')],_0x28f8('0x66')),_0x28f8('0x5a'));var _0x268aee=ejs[_0x28f8('0x5b')](_0xbd720d,{'networks':_0x16664d||[]});fs[_0x28f8('0x5c')](_0x28f8('0x62'),_0x268aee);return respondWithRpcPromise(_0x28f8('0x5e'),_0x28f8('0x65'),{'module':_0x28f8('0x5f')});}else{var _0x42080f=fs['readFileSync'](path[_0x28f8('0x57')](config['root'],_0x28f8('0x67')),_0x28f8('0x5a'));var _0x2b84ad=ejs[_0x28f8('0x5b')](_0x42080f,{'networks':_0x16664d||[]});fs['writeFileSync'](util[_0x28f8('0x68')]('/etc/asterisk/sip_xcally_%s.conf',_0x13a9b5['body'][_0x28f8('0x3b')]['toLowerCase']()),_0x2b84ad);return respondWithRpcPromise(_0x28f8('0x5e'),'update',{'module':'chan_sip.so'});}return null;})['then'](function(_0x35e923){if(_0x35e923){return _0x1c73b4;}return null;});})[_0x28f8('0x1e')](respondWithResult(_0x2ddd1b,null))[_0x28f8('0x69')](handleError(_0x2ddd1b,null));};exports[_0x28f8('0x33')]=function(_0x29fc61,_0x59765e,_0x24cb57){var _0x308efe;return db[_0x28f8('0x38')][_0x28f8('0x52')]({'where':{'id':_0x29fc61[_0x28f8('0x50')]['id']}})[_0x28f8('0x1e')](function(_0x2ef291){_0x308efe=_0x2ef291;return _0x2ef291;})[_0x28f8('0x1e')](handleEntityNotFound(_0x59765e,null))[_0x28f8('0x1e')](removeEntity(_0x59765e,null))[_0x28f8('0x1e')](function(){if(_0x308efe){return db[_0x28f8('0x38')][_0x28f8('0x4e')]({'where':{'type':_0x308efe[_0x28f8('0x3b')]},'raw':!![]});}})[_0x28f8('0x1e')](function(_0x4bfd43){if(_0x308efe[_0x28f8('0x3b')][_0x28f8('0x55')]()==_0x28f8('0x56')){var _0x4974ad=fs['readFileSync'](path['join'](config[_0x28f8('0x58')],'server/files/templates/stun_multiple.ejs'),_0x28f8('0x5a'));var _0xce7ec3=ejs[_0x28f8('0x5b')](_0x4974ad,{'networks':_0x4bfd43||[]});fs[_0x28f8('0x5c')]('/etc/asterisk/stun_xcally.conf',_0xce7ec3);return respondWithRpcPromise(_0x28f8('0x5e'),_0x28f8('0x33'),{'module':_0x28f8('0x5f')});}else if(_0x308efe[_0x28f8('0x3b')][_0x28f8('0x55')]()==_0x28f8('0x60')){var _0x1a020d=fs[_0x28f8('0x61')](path[_0x28f8('0x57')](config['root'],_0x28f8('0x66')),_0x28f8('0x5a'));var _0x2cad4c=ejs[_0x28f8('0x5b')](_0x1a020d,{'networks':_0x4bfd43||[]});fs[_0x28f8('0x5c')](_0x28f8('0x62'),_0x2cad4c);return respondWithRpcPromise('Reload',_0x28f8('0x33'),{'module':_0x28f8('0x5f')});}else{var _0x483cc2=fs[_0x28f8('0x61')](path['join'](config[_0x28f8('0x58')],_0x28f8('0x67')),_0x28f8('0x5a'));var _0x568c5c=ejs[_0x28f8('0x5b')](_0x483cc2,{'networks':_0x4bfd43||[]});fs[_0x28f8('0x5c')](util[_0x28f8('0x68')](_0x28f8('0x63'),_0x29fc61[_0x28f8('0x54')][_0x28f8('0x3b')][_0x28f8('0x64')]()),_0x568c5c);return respondWithRpcPromise('Reload',_0x28f8('0x33'),{'module':_0x28f8('0x6a')});}return null;})[_0x28f8('0x69')](handleError(_0x59765e,null));};