62b2dea8643498ec043d5c3074367b9fcf86a5ad
[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 _0xd6a1=['join','root','utf8','render','Reload','res_stun_monitor.so','TURN','server/files/templates/turn_multiple.ejs','writeFileSync','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','chan_sip.so','update','find','STUN','server/files/templates/stun_multiple.ejs','/etc/asterisk/stun_xcally.conf','toLowerCase','params','zip-dir','fast-json-patch','moment','mustache','util','path','to-csv','fs-extra','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','../../mysqldb','jayson/promise','client','request','Network,\x20%s,\x20%s','Network,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','then','destroy','sendStatus','stack','send','map','Network','rawAttributes','fieldName','key','name','query','filters','model','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filter','type','VIRTUAL','merge','options','includeAll','include','rows','keys','create','sequelize','transaction','findAll','body','toUpperCase','readFileSync'];(function(_0x192cc0,_0x5b5d63){var _0x37d781=function(_0x4b9c25){while(--_0x4b9c25){_0x192cc0['push'](_0x192cc0['shift']());}};_0x37d781(++_0x5b5d63);}(_0xd6a1,0x7b));var _0x1d6a=function(_0x36b15b,_0x459605){_0x36b15b=_0x36b15b-0x0;var _0x383834=_0xd6a1[_0x36b15b];return _0x383834;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x1d6a('0x0'));var jsonpatch=require(_0x1d6a('0x1'));var rp=require('request-promise');var moment=require(_0x1d6a('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x1d6a('0x3'));var util=require(_0x1d6a('0x4'));var path=require(_0x1d6a('0x5'));var sox=require('sox');var csv=require(_0x1d6a('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1d6a('0x7'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x1d6a('0x8'));var deskjs=require(_0x1d6a('0x9'));var toCsv=require(_0x1d6a('0x6'));var querystring=require(_0x1d6a('0xa'));var Papa=require(_0x1d6a('0xb'));var Redis=require(_0x1d6a('0xc'));var authService=require(_0x1d6a('0xd'));var qs=require(_0x1d6a('0xe'));var as=require(_0x1d6a('0xf'));var hardwareService=require(_0x1d6a('0x10'));var logger=require('../../config/logger')(_0x1d6a('0x11'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x1d6a('0x12'));var db=require(_0x1d6a('0x13'))['db'];var jayson=require(_0x1d6a('0x14'));var client=jayson[_0x1d6a('0x15')]['http']({'port':0x232a});function respondWithRpcPromise(_0x33cfb1,_0x50a979,_0x3df080,_0x51ec9b){return new BPromise(function(_0x1a3216,_0x28686a){var _0x57f2b1=_0x51ec9b||client;return _0x57f2b1[_0x1d6a('0x16')](_0x33cfb1,_0x3df080)['then'](function(_0x4e0f99){logger['info'](_0x1d6a('0x17'),_0x50a979,'request\x20sent');logger['debug'](_0x1d6a('0x18'),_0x50a979,_0x1d6a('0x19'),JSON[_0x1d6a('0x1a')](_0x4e0f99));if(_0x4e0f99[_0x1d6a('0x1b')]){if(_0x4e0f99[_0x1d6a('0x1b')][_0x1d6a('0x1c')]===0x1f4){logger['error']('Network,\x20%s,\x20%s',_0x50a979,_0x4e0f99[_0x1d6a('0x1b')]['message']);return _0x28686a(_0x4e0f99[_0x1d6a('0x1b')][_0x1d6a('0x1d')]);}logger[_0x1d6a('0x1b')](_0x1d6a('0x17'),_0x50a979,_0x4e0f99['error']['message']);return _0x1a3216(_0x4e0f99[_0x1d6a('0x1b')][_0x1d6a('0x1d')]);}else{logger['info'](_0x1d6a('0x17'),_0x50a979,_0x1d6a('0x19'));_0x1a3216(_0x4e0f99[_0x1d6a('0x1e')][_0x1d6a('0x1d')]);}})[_0x1d6a('0x1f')](function(_0x5d3fc6){logger['error'](_0x1d6a('0x17'),_0x50a979,_0x5d3fc6);_0x28686a(_0x5d3fc6);});});}function respondWithStatusCode(_0x411428,_0x505cf1){_0x505cf1=_0x505cf1||0xcc;return function(_0x11c9ef){if(_0x11c9ef){return _0x411428['sendStatus'](_0x505cf1);}return _0x411428[_0x1d6a('0x20')](_0x505cf1)[_0x1d6a('0x21')]();};}function respondWithResult(_0x318524,_0x45f738){_0x45f738=_0x45f738||0xc8;return function(_0x3c049b){if(_0x3c049b){return _0x318524['status'](_0x45f738)[_0x1d6a('0x22')](_0x3c049b);}};}function respondWithFilteredResult(_0x253fab,_0x335aba){return function(_0x9ab7e2){if(_0x9ab7e2){var _0x30b414=typeof _0x335aba[_0x1d6a('0x23')]===_0x1d6a('0x24')&&typeof _0x335aba[_0x1d6a('0x25')]===_0x1d6a('0x24');var _0x41aada=_0x9ab7e2[_0x1d6a('0x26')];var _0x5ef43c=_0x30b414?0x0:_0x335aba[_0x1d6a('0x23')];var _0x578787=_0x30b414?_0x9ab7e2[_0x1d6a('0x26')]:_0x335aba[_0x1d6a('0x23')]+_0x335aba[_0x1d6a('0x25')];var _0x54d1fe;if(_0x578787>=_0x41aada){_0x578787=_0x41aada;_0x54d1fe=0xc8;}else{_0x54d1fe=0xce;}_0x253fab[_0x1d6a('0x20')](_0x54d1fe);return _0x253fab['set'](_0x1d6a('0x27'),_0x5ef43c+'-'+_0x578787+'/'+_0x41aada)[_0x1d6a('0x22')](_0x9ab7e2);}return null;};}function patchUpdates(_0x1562a1){return function(_0x4c2b19){try{jsonpatch[_0x1d6a('0x28')](_0x4c2b19,_0x1562a1,!![]);}catch(_0x5344bf){return BPromise[_0x1d6a('0x29')](_0x5344bf);}return _0x4c2b19[_0x1d6a('0x2a')]();};}function saveUpdates(_0x567922,_0x250c4c){return function(_0x5557f5){if(_0x5557f5){return _0x5557f5['update'](_0x567922)[_0x1d6a('0x2b')](function(_0x5dc5a8){return _0x5dc5a8;});}return null;};}function removeEntity(_0x28d7d0,_0x32542b){return function(_0x4a28bd){if(_0x4a28bd){return _0x4a28bd[_0x1d6a('0x2c')]()[_0x1d6a('0x2b')](function(){_0x28d7d0['status'](0xcc)[_0x1d6a('0x21')]();});}};}function handleEntityNotFound(_0x2566cd,_0x247da6){return function(_0x2cf1f9){if(!_0x2cf1f9){_0x2566cd[_0x1d6a('0x2d')](0x194);}return _0x2cf1f9;};}function handleError(_0x3b8793,_0x25c8bd){_0x25c8bd=_0x25c8bd||0x1f4;return function(_0x4bc7e0){logger[_0x1d6a('0x1b')](_0x4bc7e0[_0x1d6a('0x2e')]);if(_0x4bc7e0['name']){delete _0x4bc7e0['name'];}_0x3b8793[_0x1d6a('0x20')](_0x25c8bd)[_0x1d6a('0x2f')](_0x4bc7e0);};}exports['index']=function(_0x34bb97,_0x42ddfb){var _0x59e89c={},_0x215903={},_0x3fe76a={'count':0x0,'rows':[]};var _0xf61457=_[_0x1d6a('0x30')](db[_0x1d6a('0x31')][_0x1d6a('0x32')],function(_0x1be275){return{'name':_0x1be275[_0x1d6a('0x33')],'type':_0x1be275['type'][_0x1d6a('0x34')]};});_0x215903['model']=_[_0x1d6a('0x30')](_0xf61457,_0x1d6a('0x35'));_0x215903[_0x1d6a('0x36')]=_['keys'](_0x34bb97[_0x1d6a('0x36')]);_0x215903[_0x1d6a('0x37')]=_['intersection'](_0x215903[_0x1d6a('0x38')],_0x215903['query']);_0x59e89c['attributes']=_[_0x1d6a('0x39')](_0x215903[_0x1d6a('0x38')],qs['fields'](_0x34bb97[_0x1d6a('0x36')][_0x1d6a('0x3a')]));_0x59e89c[_0x1d6a('0x3b')]=_0x59e89c[_0x1d6a('0x3b')][_0x1d6a('0x3c')]?_0x59e89c[_0x1d6a('0x3b')]:_0x215903[_0x1d6a('0x38')];if(!_0x34bb97['query'][_0x1d6a('0x3d')]('nolimit')){_0x59e89c[_0x1d6a('0x25')]=qs[_0x1d6a('0x25')](_0x34bb97[_0x1d6a('0x36')][_0x1d6a('0x25')]);_0x59e89c[_0x1d6a('0x23')]=qs[_0x1d6a('0x23')](_0x34bb97[_0x1d6a('0x36')][_0x1d6a('0x23')]);}_0x59e89c[_0x1d6a('0x3e')]=qs[_0x1d6a('0x3f')](_0x34bb97[_0x1d6a('0x36')][_0x1d6a('0x3f')]);_0x59e89c[_0x1d6a('0x40')]=qs[_0x1d6a('0x37')](_['pick'](_0x34bb97[_0x1d6a('0x36')],_0x215903[_0x1d6a('0x37')]),_0xf61457);if(_0x34bb97[_0x1d6a('0x36')][_0x1d6a('0x41')]){_0x59e89c[_0x1d6a('0x40')]=_['merge'](_0x59e89c[_0x1d6a('0x40')],{'$or':_[_0x1d6a('0x30')](_0xf61457,function(_0x21d4ce){if(_0x21d4ce[_0x1d6a('0x42')]!==_0x1d6a('0x43')){var _0xdab9fd={};_0xdab9fd[_0x21d4ce['name']]={'$like':'%'+_0x34bb97[_0x1d6a('0x36')]['filter']+'%'};return _0xdab9fd;}})});}_0x59e89c=_[_0x1d6a('0x44')]({},_0x59e89c,_0x34bb97[_0x1d6a('0x45')]);var _0x46d9f3={'where':_0x59e89c['where']};return db[_0x1d6a('0x31')][_0x1d6a('0x26')](_0x46d9f3)['then'](function(_0x1a5eb6){_0x3fe76a[_0x1d6a('0x26')]=_0x1a5eb6;if(_0x34bb97['query'][_0x1d6a('0x46')]){_0x59e89c[_0x1d6a('0x47')]=[{'all':!![]}];}return db[_0x1d6a('0x31')]['findAll'](_0x59e89c);})['then'](function(_0x1cb0e0){_0x3fe76a[_0x1d6a('0x48')]=_0x1cb0e0;return _0x3fe76a;})[_0x1d6a('0x2b')](respondWithFilteredResult(_0x42ddfb,_0x59e89c))[_0x1d6a('0x1f')](handleError(_0x42ddfb,null));};exports['show']=function(_0x4cfda4,_0x42933a){var _0x552767={'raw':!![],'where':{'id':_0x4cfda4['params']['id']}},_0x4e0e8d={};_0x4e0e8d[_0x1d6a('0x38')]=_[_0x1d6a('0x49')](db[_0x1d6a('0x31')][_0x1d6a('0x32')]);_0x4e0e8d['query']=_['keys'](_0x4cfda4[_0x1d6a('0x36')]);_0x4e0e8d[_0x1d6a('0x37')]=_['intersection'](_0x4e0e8d['model'],_0x4e0e8d['query']);_0x552767[_0x1d6a('0x3b')]=_[_0x1d6a('0x39')](_0x4e0e8d['model'],qs[_0x1d6a('0x3a')](_0x4cfda4['query'][_0x1d6a('0x3a')]));_0x552767[_0x1d6a('0x3b')]=_0x552767[_0x1d6a('0x3b')]['length']?_0x552767[_0x1d6a('0x3b')]:_0x4e0e8d[_0x1d6a('0x38')];if(_0x4cfda4[_0x1d6a('0x36')][_0x1d6a('0x46')]){_0x552767['include']=[{'all':!![]}];}_0x552767=_[_0x1d6a('0x44')]({},_0x552767,_0x4cfda4[_0x1d6a('0x45')]);return db[_0x1d6a('0x31')]['find'](_0x552767)['then'](handleEntityNotFound(_0x42933a,null))[_0x1d6a('0x2b')](respondWithResult(_0x42933a,null))[_0x1d6a('0x1f')](handleError(_0x42933a,null));};exports[_0x1d6a('0x4a')]=function(_0x339218,_0x5bc21a,_0x1854ad){var _0x4804c9;return db[_0x1d6a('0x4b')][_0x1d6a('0x4c')](function(_0x6b43ac){return db[_0x1d6a('0x31')]['create'](_0x339218['body'],{'raw':!![]})[_0x1d6a('0x2b')](function(_0x13f67e){_0x4804c9=_0x13f67e;return db[_0x1d6a('0x31')][_0x1d6a('0x4d')]({'where':{'type':_0x339218[_0x1d6a('0x4e')][_0x1d6a('0x42')]},'raw':!![]});})[_0x1d6a('0x2b')](function(_0x4583f9){if(_0x4804c9['type'][_0x1d6a('0x4f')]()=='STUN'){var _0x68cdd=fs[_0x1d6a('0x50')](path[_0x1d6a('0x51')](config[_0x1d6a('0x52')],'server/files/templates/stun_multiple.ejs'),_0x1d6a('0x53'));var _0x4d15a4=ejs[_0x1d6a('0x54')](_0x68cdd,{'networks':_0x4583f9||[]});fs['writeFileSync']('/etc/asterisk/stun_xcally.conf',_0x4d15a4);return respondWithRpcPromise(_0x1d6a('0x55'),'create',{'module':_0x1d6a('0x56')});}else if(_0x4804c9[_0x1d6a('0x42')][_0x1d6a('0x4f')]()==_0x1d6a('0x57')){var _0x5d9b27=fs[_0x1d6a('0x50')](path[_0x1d6a('0x51')](config[_0x1d6a('0x52')],_0x1d6a('0x58')),_0x1d6a('0x53'));var _0x47c64e=ejs[_0x1d6a('0x54')](_0x5d9b27,{'networks':_0x4583f9||[]});fs[_0x1d6a('0x59')](_0x1d6a('0x5a'),_0x47c64e);return respondWithRpcPromise(_0x1d6a('0x55'),'create',{'module':_0x1d6a('0x56')});}else{var _0x482641=fs[_0x1d6a('0x50')](path[_0x1d6a('0x51')](config[_0x1d6a('0x52')],_0x1d6a('0x5b')),_0x1d6a('0x53'));var _0x10c5cc=ejs[_0x1d6a('0x54')](_0x482641,{'networks':_0x4583f9||[]});fs[_0x1d6a('0x59')](util[_0x1d6a('0x5c')](_0x1d6a('0x5d'),_0x339218[_0x1d6a('0x4e')][_0x1d6a('0x42')]['toLowerCase']()),_0x10c5cc);return respondWithRpcPromise(_0x1d6a('0x55'),'create',{'module':_0x1d6a('0x5e')});}return null;})[_0x1d6a('0x2b')](function(){return _0x4804c9;});})[_0x1d6a('0x2b')](respondWithResult(_0x5bc21a,0xc9))[_0x1d6a('0x1f')](handleError(_0x5bc21a,null));};exports[_0x1d6a('0x5f')]=function(_0xb2c307,_0x5c7fc8,_0x5cc6d1){var _0x3fdff9;return db[_0x1d6a('0x4b')][_0x1d6a('0x4c')](function(_0x699f7d){return db['Network'][_0x1d6a('0x60')]({'where':{'id':_0xb2c307['params']['id']}})[_0x1d6a('0x2b')](handleEntityNotFound(_0x5c7fc8,null))[_0x1d6a('0x2b')](saveUpdates(_0xb2c307['body'],null))[_0x1d6a('0x2b')](function(_0x41156c){if(_0x41156c){_0x3fdff9=_0x41156c;return db['Network'][_0x1d6a('0x4d')]({'where':{'type':_0x3fdff9[_0x1d6a('0x42')]},'raw':!![]});}return null;})[_0x1d6a('0x2b')](function(_0x32f6ac){if(_0x3fdff9['type'][_0x1d6a('0x4f')]()==_0x1d6a('0x61')){var _0x3010c6=fs[_0x1d6a('0x50')](path[_0x1d6a('0x51')](config[_0x1d6a('0x52')],_0x1d6a('0x62')),_0x1d6a('0x53'));var _0x1b893b=ejs[_0x1d6a('0x54')](_0x3010c6,{'networks':_0x32f6ac||[]});fs[_0x1d6a('0x59')](_0x1d6a('0x63'),_0x1b893b);return respondWithRpcPromise(_0x1d6a('0x55'),_0x1d6a('0x5f'),{'module':_0x1d6a('0x56')});}else if(_0x3fdff9[_0x1d6a('0x42')]['toUpperCase']()=='TURN'){var _0x12320a=fs[_0x1d6a('0x50')](path[_0x1d6a('0x51')](config[_0x1d6a('0x52')],_0x1d6a('0x58')),_0x1d6a('0x53'));var _0x5dfbe4=ejs[_0x1d6a('0x54')](_0x12320a,{'networks':_0x32f6ac||[]});fs[_0x1d6a('0x59')](_0x1d6a('0x5a'),_0x5dfbe4);return respondWithRpcPromise(_0x1d6a('0x55'),'update',{'module':_0x1d6a('0x56')});}else{var _0x512b63=fs[_0x1d6a('0x50')](path[_0x1d6a('0x51')](config['root'],_0x1d6a('0x5b')),_0x1d6a('0x53'));var _0x5db4fc=ejs[_0x1d6a('0x54')](_0x512b63,{'networks':_0x32f6ac||[]});fs[_0x1d6a('0x59')](util[_0x1d6a('0x5c')](_0x1d6a('0x5d'),_0xb2c307[_0x1d6a('0x4e')][_0x1d6a('0x42')][_0x1d6a('0x64')]()),_0x5db4fc);return respondWithRpcPromise('Reload',_0x1d6a('0x5f'),{'module':'chan_sip.so'});}return null;})['then'](function(_0x6a4167){if(_0x6a4167){return _0x3fdff9;}return null;});})[_0x1d6a('0x2b')](respondWithResult(_0x5c7fc8,null))[_0x1d6a('0x1f')](handleError(_0x5c7fc8,null));};exports[_0x1d6a('0x2c')]=function(_0x536d15,_0x2d6bf7,_0x416307){var _0x4ecc2a;return db[_0x1d6a('0x31')][_0x1d6a('0x60')]({'where':{'id':_0x536d15[_0x1d6a('0x65')]['id']}})[_0x1d6a('0x2b')](function(_0x551932){_0x4ecc2a=_0x551932;return _0x551932;})[_0x1d6a('0x2b')](handleEntityNotFound(_0x2d6bf7,null))[_0x1d6a('0x2b')](removeEntity(_0x2d6bf7,null))[_0x1d6a('0x2b')](function(){if(_0x4ecc2a){return db[_0x1d6a('0x31')][_0x1d6a('0x4d')]({'where':{'type':_0x4ecc2a[_0x1d6a('0x42')]},'raw':!![]});}})['then'](function(_0x356e46){if(_0x4ecc2a[_0x1d6a('0x42')][_0x1d6a('0x4f')]()==_0x1d6a('0x61')){var _0x394a9c=fs[_0x1d6a('0x50')](path[_0x1d6a('0x51')](config[_0x1d6a('0x52')],_0x1d6a('0x62')),_0x1d6a('0x53'));var _0x3c7acf=ejs['render'](_0x394a9c,{'networks':_0x356e46||[]});fs['writeFileSync'](_0x1d6a('0x63'),_0x3c7acf);return respondWithRpcPromise(_0x1d6a('0x55'),_0x1d6a('0x2c'),{'module':_0x1d6a('0x56')});}else if(_0x4ecc2a['type'][_0x1d6a('0x4f')]()=='TURN'){var _0x412f8c=fs['readFileSync'](path[_0x1d6a('0x51')](config[_0x1d6a('0x52')],_0x1d6a('0x58')),_0x1d6a('0x53'));var _0x33666c=ejs['render'](_0x412f8c,{'networks':_0x356e46||[]});fs['writeFileSync'](_0x1d6a('0x5a'),_0x33666c);return respondWithRpcPromise(_0x1d6a('0x55'),_0x1d6a('0x2c'),{'module':_0x1d6a('0x56')});}else{var _0xeefa88=fs['readFileSync'](path[_0x1d6a('0x51')](config[_0x1d6a('0x52')],_0x1d6a('0x5b')),_0x1d6a('0x53'));var _0x439647=ejs[_0x1d6a('0x54')](_0xeefa88,{'networks':_0x356e46||[]});fs[_0x1d6a('0x59')](util[_0x1d6a('0x5c')]('/etc/asterisk/sip_xcally_%s.conf',_0x536d15[_0x1d6a('0x4e')][_0x1d6a('0x42')]['toLowerCase']()),_0x439647);return respondWithRpcPromise('Reload',_0x1d6a('0x2c'),{'module':_0x1d6a('0x5e')});}return null;})[_0x1d6a('0x1f')](handleError(_0x2d6bf7,null));};