Built motion from commit (unavailable).|2.6.0
[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 _0x35ee=['Reload','res_stun_monitor.so','toUpperCase','TURN','server/files/templates/turn_multiple.ejs','render','server/files/templates/network.ejs','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','update','params','/etc/asterisk/turn_xcally.conf','format','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','../../mysqldb','jayson/promise','http','request','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','destroy','name','send','Network','rawAttributes','type','key','model','map','query','intersection','attributes','fields','hasOwnProperty','order','sort','where','filters','pick','includeAll','include','findAll','rows','show','keys','length','merge','options','find','sequelize','create','body','STUN','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','writeFileSync','/etc/asterisk/stun_xcally.conf'];(function(_0xee0152,_0xfe1ea7){var _0x1a69d1=function(_0x51e881){while(--_0x51e881){_0xee0152['push'](_0xee0152['shift']());}};_0x1a69d1(++_0xfe1ea7);}(_0x35ee,0xe2));var _0xe35e=function(_0x2ddbc4,_0x489648){_0x2ddbc4=_0x2ddbc4-0x0;var _0x227c8a=_0x35ee[_0x2ddbc4];return _0x227c8a;};'use strict';var emlformat=require(_0xe35e('0x0'));var rimraf=require(_0xe35e('0x1'));var zipdir=require(_0xe35e('0x2'));var jsonpatch=require(_0xe35e('0x3'));var rp=require('request-promise');var moment=require(_0xe35e('0x4'));var BPromise=require(_0xe35e('0x5'));var Mustache=require(_0xe35e('0x6'));var util=require(_0xe35e('0x7'));var path=require(_0xe35e('0x8'));var sox=require('sox');var csv=require(_0xe35e('0x9'));var ejs=require(_0xe35e('0xa'));var fs=require('fs');var fs_extra=require(_0xe35e('0xb'));var _=require('lodash');var squel=require(_0xe35e('0xc'));var crypto=require(_0xe35e('0xd'));var jsforce=require(_0xe35e('0xe'));var deskjs=require(_0xe35e('0xf'));var toCsv=require('to-csv');var querystring=require(_0xe35e('0x10'));var Papa=require(_0xe35e('0x11'));var Redis=require(_0xe35e('0x12'));var authService=require(_0xe35e('0x13'));var qs=require(_0xe35e('0x14'));var as=require(_0xe35e('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe35e('0x16'))(_0xe35e('0x17'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xe35e('0x18'));var db=require(_0xe35e('0x19'))['db'];var jayson=require(_0xe35e('0x1a'));var client=jayson['client'][_0xe35e('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x1765a6,_0x582b3a,_0x281e9b,_0x4eecbf){return new BPromise(function(_0x56c6a0,_0xc13884){var _0x5658d6=_0x4eecbf||client;return _0x5658d6[_0xe35e('0x1c')](_0x1765a6,_0x281e9b)[_0xe35e('0x1d')](function(_0x51d8d4){logger[_0xe35e('0x1e')](_0xe35e('0x1f'),_0x582b3a,_0xe35e('0x20'));logger[_0xe35e('0x21')]('Network,\x20%s,\x20%s,\x20%s',_0x582b3a,'request\x20sent',JSON[_0xe35e('0x22')](_0x51d8d4));if(_0x51d8d4['error']){if(_0x51d8d4[_0xe35e('0x23')][_0xe35e('0x24')]===0x1f4){logger['error'](_0xe35e('0x1f'),_0x582b3a,_0x51d8d4[_0xe35e('0x23')][_0xe35e('0x25')]);return _0xc13884(_0x51d8d4['error'][_0xe35e('0x25')]);}logger[_0xe35e('0x23')](_0xe35e('0x1f'),_0x582b3a,_0x51d8d4[_0xe35e('0x23')][_0xe35e('0x25')]);return _0x56c6a0(_0x51d8d4[_0xe35e('0x23')][_0xe35e('0x25')]);}else{logger[_0xe35e('0x1e')](_0xe35e('0x1f'),_0x582b3a,_0xe35e('0x20'));_0x56c6a0(_0x51d8d4[_0xe35e('0x26')]['message']);}})[_0xe35e('0x27')](function(_0x932c56){logger[_0xe35e('0x23')](_0xe35e('0x1f'),_0x582b3a,_0x932c56);_0xc13884(_0x932c56);});});}function respondWithStatusCode(_0x15df76,_0x500389){_0x500389=_0x500389||0xcc;return function(_0x260452){if(_0x260452){return _0x15df76[_0xe35e('0x28')](_0x500389);}return _0x15df76[_0xe35e('0x29')](_0x500389)[_0xe35e('0x2a')]();};}function respondWithResult(_0x457a88,_0x3351b1){_0x3351b1=_0x3351b1||0xc8;return function(_0x50be24){if(_0x50be24){return _0x457a88[_0xe35e('0x29')](_0x3351b1)[_0xe35e('0x2b')](_0x50be24);}};}function respondWithFilteredResult(_0x105b00,_0x25e989){return function(_0x18d942){if(_0x18d942){var _0x467731=typeof _0x25e989[_0xe35e('0x2c')]===_0xe35e('0x2d')&&typeof _0x25e989[_0xe35e('0x2e')]===_0xe35e('0x2d');var _0x128b6e=_0x18d942[_0xe35e('0x2f')];var _0x5fa0d8=_0x467731?0x0:_0x25e989[_0xe35e('0x2c')];var _0x4333cf=_0x467731?_0x18d942['count']:_0x25e989[_0xe35e('0x2c')]+_0x25e989['limit'];var _0x125546;if(_0x4333cf>=_0x128b6e){_0x4333cf=_0x128b6e;_0x125546=0xc8;}else{_0x125546=0xce;}_0x105b00[_0xe35e('0x29')](_0x125546);return _0x105b00[_0xe35e('0x30')](_0xe35e('0x31'),_0x5fa0d8+'-'+_0x4333cf+'/'+_0x128b6e)[_0xe35e('0x2b')](_0x18d942);}return null;};}function patchUpdates(_0x31be1d){return function(_0x1b5f96){try{jsonpatch[_0xe35e('0x32')](_0x1b5f96,_0x31be1d,!![]);}catch(_0x3cac4c){return BPromise['reject'](_0x3cac4c);}return _0x1b5f96[_0xe35e('0x33')]();};}function saveUpdates(_0x5b9b5d,_0x12a74e){return function(_0x2c2645){if(_0x2c2645){return _0x2c2645['update'](_0x5b9b5d)[_0xe35e('0x1d')](function(_0x36577f){return _0x36577f;});}return null;};}function removeEntity(_0x180432,_0x50e0e2){return function(_0x29fdef){if(_0x29fdef){return _0x29fdef[_0xe35e('0x34')]()[_0xe35e('0x1d')](function(){_0x180432['status'](0xcc)[_0xe35e('0x2a')]();});}};}function handleEntityNotFound(_0x6b3b88,_0x182edb){return function(_0x129a47){if(!_0x129a47){_0x6b3b88[_0xe35e('0x28')](0x194);}return _0x129a47;};}function handleError(_0x54018d,_0x346cfe){_0x346cfe=_0x346cfe||0x1f4;return function(_0x2fbf33){logger[_0xe35e('0x23')](_0x2fbf33['stack']);if(_0x2fbf33[_0xe35e('0x35')]){delete _0x2fbf33[_0xe35e('0x35')];}_0x54018d[_0xe35e('0x29')](_0x346cfe)[_0xe35e('0x36')](_0x2fbf33);};}exports['index']=function(_0x55b79e,_0x26a49f){var _0xb490f1={},_0x3bf066={},_0x190fc9={'count':0x0,'rows':[]};var _0xcfe783=_['map'](db[_0xe35e('0x37')][_0xe35e('0x38')],function(_0x4cab42){return{'name':_0x4cab42['fieldName'],'type':_0x4cab42[_0xe35e('0x39')][_0xe35e('0x3a')]};});_0x3bf066[_0xe35e('0x3b')]=_[_0xe35e('0x3c')](_0xcfe783,_0xe35e('0x35'));_0x3bf066[_0xe35e('0x3d')]=_['keys'](_0x55b79e['query']);_0x3bf066['filters']=_[_0xe35e('0x3e')](_0x3bf066[_0xe35e('0x3b')],_0x3bf066['query']);_0xb490f1[_0xe35e('0x3f')]=_['intersection'](_0x3bf066['model'],qs[_0xe35e('0x40')](_0x55b79e[_0xe35e('0x3d')][_0xe35e('0x40')]));_0xb490f1['attributes']=_0xb490f1[_0xe35e('0x3f')]['length']?_0xb490f1[_0xe35e('0x3f')]:_0x3bf066[_0xe35e('0x3b')];if(!_0x55b79e[_0xe35e('0x3d')][_0xe35e('0x41')]('nolimit')){_0xb490f1[_0xe35e('0x2e')]=qs[_0xe35e('0x2e')](_0x55b79e[_0xe35e('0x3d')]['limit']);_0xb490f1[_0xe35e('0x2c')]=qs[_0xe35e('0x2c')](_0x55b79e[_0xe35e('0x3d')]['offset']);}_0xb490f1[_0xe35e('0x42')]=qs[_0xe35e('0x43')](_0x55b79e[_0xe35e('0x3d')][_0xe35e('0x43')]);_0xb490f1[_0xe35e('0x44')]=qs[_0xe35e('0x45')](_[_0xe35e('0x46')](_0x55b79e[_0xe35e('0x3d')],_0x3bf066[_0xe35e('0x45')]),_0xcfe783);if(_0x55b79e[_0xe35e('0x3d')]['filter']){_0xb490f1['where']=_['merge'](_0xb490f1[_0xe35e('0x44')],{'$or':_[_0xe35e('0x3c')](_0xcfe783,function(_0x476dd4){if(_0x476dd4['type']!=='VIRTUAL'){var _0x146689={};_0x146689[_0x476dd4[_0xe35e('0x35')]]={'$like':'%'+_0x55b79e[_0xe35e('0x3d')]['filter']+'%'};return _0x146689;}})});}_0xb490f1=_['merge']({},_0xb490f1,_0x55b79e['options']);var _0x37fcdf={'where':_0xb490f1[_0xe35e('0x44')]};return db['Network']['count'](_0x37fcdf)[_0xe35e('0x1d')](function(_0x4f8ed1){_0x190fc9['count']=_0x4f8ed1;if(_0x55b79e[_0xe35e('0x3d')][_0xe35e('0x47')]){_0xb490f1[_0xe35e('0x48')]=[{'all':!![]}];}return db[_0xe35e('0x37')][_0xe35e('0x49')](_0xb490f1);})[_0xe35e('0x1d')](function(_0x485030){_0x190fc9[_0xe35e('0x4a')]=_0x485030;return _0x190fc9;})[_0xe35e('0x1d')](respondWithFilteredResult(_0x26a49f,_0xb490f1))[_0xe35e('0x27')](handleError(_0x26a49f,null));};exports[_0xe35e('0x4b')]=function(_0x581412,_0x3f1283){var _0x2a74f4={'raw':!![],'where':{'id':_0x581412['params']['id']}},_0x19c5d5={};_0x19c5d5[_0xe35e('0x3b')]=_['keys'](db[_0xe35e('0x37')][_0xe35e('0x38')]);_0x19c5d5['query']=_[_0xe35e('0x4c')](_0x581412[_0xe35e('0x3d')]);_0x19c5d5[_0xe35e('0x45')]=_[_0xe35e('0x3e')](_0x19c5d5[_0xe35e('0x3b')],_0x19c5d5[_0xe35e('0x3d')]);_0x2a74f4['attributes']=_[_0xe35e('0x3e')](_0x19c5d5['model'],qs[_0xe35e('0x40')](_0x581412[_0xe35e('0x3d')][_0xe35e('0x40')]));_0x2a74f4[_0xe35e('0x3f')]=_0x2a74f4[_0xe35e('0x3f')][_0xe35e('0x4d')]?_0x2a74f4['attributes']:_0x19c5d5[_0xe35e('0x3b')];if(_0x581412[_0xe35e('0x3d')][_0xe35e('0x47')]){_0x2a74f4[_0xe35e('0x48')]=[{'all':!![]}];}_0x2a74f4=_[_0xe35e('0x4e')]({},_0x2a74f4,_0x581412[_0xe35e('0x4f')]);return db[_0xe35e('0x37')][_0xe35e('0x50')](_0x2a74f4)[_0xe35e('0x1d')](handleEntityNotFound(_0x3f1283,null))[_0xe35e('0x1d')](respondWithResult(_0x3f1283,null))[_0xe35e('0x27')](handleError(_0x3f1283,null));};exports['create']=function(_0x123527,_0x2c956b,_0x73401b){var _0x24f59f;return db[_0xe35e('0x51')]['transaction'](function(_0x30ed63){return db[_0xe35e('0x37')][_0xe35e('0x52')](_0x123527[_0xe35e('0x53')],{'raw':!![]})[_0xe35e('0x1d')](function(_0x3efc51){_0x24f59f=_0x3efc51;return db['Network'][_0xe35e('0x49')]({'where':{'type':_0x123527[_0xe35e('0x53')]['type']},'raw':!![]});})[_0xe35e('0x1d')](function(_0x22bd64){if(_0x24f59f[_0xe35e('0x39')]['toUpperCase']()==_0xe35e('0x54')){var _0x39641c=fs[_0xe35e('0x55')](path[_0xe35e('0x56')](config[_0xe35e('0x57')],_0xe35e('0x58')),_0xe35e('0x59'));var _0x5a72f6=ejs['render'](_0x39641c,{'networks':_0x22bd64||[]});fs[_0xe35e('0x5a')](_0xe35e('0x5b'),_0x5a72f6);return respondWithRpcPromise(_0xe35e('0x5c'),_0xe35e('0x52'),{'module':_0xe35e('0x5d')});}else if(_0x24f59f['type'][_0xe35e('0x5e')]()==_0xe35e('0x5f')){var _0x286730=fs[_0xe35e('0x55')](path['join'](config[_0xe35e('0x57')],_0xe35e('0x60')),'utf8');var _0x23a433=ejs[_0xe35e('0x61')](_0x286730,{'networks':_0x22bd64||[]});fs[_0xe35e('0x5a')]('/etc/asterisk/turn_xcally.conf',_0x23a433);return respondWithRpcPromise(_0xe35e('0x5c'),_0xe35e('0x52'),{'module':_0xe35e('0x5d')});}else{var _0x4f308f=fs[_0xe35e('0x55')](path[_0xe35e('0x56')](config[_0xe35e('0x57')],_0xe35e('0x62')),_0xe35e('0x59'));var _0x217e48=ejs['render'](_0x4f308f,{'networks':_0x22bd64||[]});fs[_0xe35e('0x5a')](util['format'](_0xe35e('0x63'),_0x123527[_0xe35e('0x53')][_0xe35e('0x39')][_0xe35e('0x64')]()),_0x217e48);return respondWithRpcPromise(_0xe35e('0x5c'),_0xe35e('0x52'),{'module':_0xe35e('0x65')});}return null;})[_0xe35e('0x1d')](function(){return _0x24f59f;});})[_0xe35e('0x1d')](respondWithResult(_0x2c956b,0xc9))[_0xe35e('0x27')](handleError(_0x2c956b,null));};exports[_0xe35e('0x66')]=function(_0x17d364,_0x3bf837,_0x21fe30){var _0x3a0b0a;return db[_0xe35e('0x51')]['transaction'](function(_0x4d82a0){return db[_0xe35e('0x37')][_0xe35e('0x50')]({'where':{'id':_0x17d364[_0xe35e('0x67')]['id']}})[_0xe35e('0x1d')](handleEntityNotFound(_0x3bf837,null))[_0xe35e('0x1d')](saveUpdates(_0x17d364[_0xe35e('0x53')],null))[_0xe35e('0x1d')](function(_0x5a0700){if(_0x5a0700){_0x3a0b0a=_0x5a0700;return db[_0xe35e('0x37')][_0xe35e('0x49')]({'where':{'type':_0x3a0b0a['type']},'raw':!![]});}return null;})[_0xe35e('0x1d')](function(_0x480f6f){if(_0x3a0b0a[_0xe35e('0x39')][_0xe35e('0x5e')]()==_0xe35e('0x54')){var _0x2e5ea1=fs[_0xe35e('0x55')](path['join'](config[_0xe35e('0x57')],_0xe35e('0x58')),_0xe35e('0x59'));var _0x5f1c84=ejs[_0xe35e('0x61')](_0x2e5ea1,{'networks':_0x480f6f||[]});fs[_0xe35e('0x5a')](_0xe35e('0x5b'),_0x5f1c84);return respondWithRpcPromise(_0xe35e('0x5c'),_0xe35e('0x66'),{'module':'res_stun_monitor.so'});}else if(_0x3a0b0a[_0xe35e('0x39')][_0xe35e('0x5e')]()==_0xe35e('0x5f')){var _0x25f13c=fs['readFileSync'](path[_0xe35e('0x56')](config['root'],_0xe35e('0x60')),_0xe35e('0x59'));var _0x4ea03d=ejs['render'](_0x25f13c,{'networks':_0x480f6f||[]});fs['writeFileSync'](_0xe35e('0x68'),_0x4ea03d);return respondWithRpcPromise('Reload',_0xe35e('0x66'),{'module':_0xe35e('0x5d')});}else{var _0x2a693e=fs[_0xe35e('0x55')](path[_0xe35e('0x56')](config['root'],_0xe35e('0x62')),_0xe35e('0x59'));var _0x1f3e81=ejs['render'](_0x2a693e,{'networks':_0x480f6f||[]});fs[_0xe35e('0x5a')](util['format'](_0xe35e('0x63'),_0x17d364[_0xe35e('0x53')][_0xe35e('0x39')][_0xe35e('0x64')]()),_0x1f3e81);return respondWithRpcPromise(_0xe35e('0x5c'),_0xe35e('0x66'),{'module':_0xe35e('0x65')});}return null;})['then'](function(_0x4b6884){if(_0x4b6884){return _0x3a0b0a;}return null;});})['then'](respondWithResult(_0x3bf837,null))[_0xe35e('0x27')](handleError(_0x3bf837,null));};exports['destroy']=function(_0x395710,_0xae4fd2,_0x3d2b42){var _0x3461fd;return db['Network']['find']({'where':{'id':_0x395710[_0xe35e('0x67')]['id']}})[_0xe35e('0x1d')](function(_0x2e0a07){_0x3461fd=_0x2e0a07;return _0x2e0a07;})[_0xe35e('0x1d')](handleEntityNotFound(_0xae4fd2,null))[_0xe35e('0x1d')](removeEntity(_0xae4fd2,null))[_0xe35e('0x1d')](function(){if(_0x3461fd){return db[_0xe35e('0x37')]['findAll']({'where':{'type':_0x3461fd[_0xe35e('0x39')]},'raw':!![]});}})['then'](function(_0x3d7f6e){if(_0x3461fd['type'][_0xe35e('0x5e')]()==_0xe35e('0x54')){var _0x112d95=fs[_0xe35e('0x55')](path[_0xe35e('0x56')](config[_0xe35e('0x57')],_0xe35e('0x58')),_0xe35e('0x59'));var _0x3c7e97=ejs[_0xe35e('0x61')](_0x112d95,{'networks':_0x3d7f6e||[]});fs['writeFileSync'](_0xe35e('0x5b'),_0x3c7e97);return respondWithRpcPromise('Reload','destroy',{'module':'res_stun_monitor.so'});}else if(_0x3461fd[_0xe35e('0x39')][_0xe35e('0x5e')]()=='TURN'){var _0x26e553=fs[_0xe35e('0x55')](path[_0xe35e('0x56')](config['root'],_0xe35e('0x60')),'utf8');var _0x11d91f=ejs[_0xe35e('0x61')](_0x26e553,{'networks':_0x3d7f6e||[]});fs['writeFileSync'](_0xe35e('0x68'),_0x11d91f);return respondWithRpcPromise('Reload','destroy',{'module':'res_stun_monitor.so'});}else{var _0x44c8d0=fs[_0xe35e('0x55')](path[_0xe35e('0x56')](config[_0xe35e('0x57')],_0xe35e('0x62')),_0xe35e('0x59'));var _0x5af96e=ejs['render'](_0x44c8d0,{'networks':_0x3d7f6e||[]});fs[_0xe35e('0x5a')](util[_0xe35e('0x69')](_0xe35e('0x63'),_0x395710['body']['type'][_0xe35e('0x64')]()),_0x5af96e);return respondWithRpcPromise(_0xe35e('0x5c'),_0xe35e('0x34'),{'module':_0xe35e('0x65')});}return null;})[_0xe35e('0x27')](handleError(_0xae4fd2,null));};