Built motion from commit 19a84241.|2.5.34
[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 _0xb941=['root','server/files/templates/stun_multiple.ejs','render','writeFileSync','Reload','res_stun_monitor.so','utf8','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','findAll','/etc/asterisk/stun_xcally.conf','TURN','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','destroy','STUN','eml-format','rimraf','zip-dir','request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','info','debug','request\x20sent','stringify','error','code','Network,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','json','offset','limit','undefined','count','Content-Range','reject','save','update','stack','name','send','index','map','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','nolimit','order','sort','filters','filter','merge','where','VIRTUAL','options','Network','then','include','show','params','includeAll','find','create','sequelize','transaction','body','toUpperCase','readFileSync','join'];(function(_0x1ee4c6,_0x4a13a7){var _0x57f271=function(_0xa6d22a){while(--_0xa6d22a){_0x1ee4c6['push'](_0x1ee4c6['shift']());}};_0x57f271(++_0x4a13a7);}(_0xb941,0x7e));var _0x1b94=function(_0xe04111,_0x554f5d){_0xe04111=_0xe04111-0x0;var _0x146fbb=_0xb941[_0xe04111];return _0x146fbb;};'use strict';var emlformat=require(_0x1b94('0x0'));var rimraf=require(_0x1b94('0x1'));var zipdir=require(_0x1b94('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1b94('0x3'));var moment=require(_0x1b94('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x1b94('0x5'));var path=require(_0x1b94('0x6'));var sox=require(_0x1b94('0x7'));var csv=require(_0x1b94('0x8'));var ejs=require(_0x1b94('0x9'));var fs=require('fs');var fs_extra=require(_0x1b94('0xa'));var _=require('lodash');var squel=require(_0x1b94('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x1b94('0xc'));var toCsv=require(_0x1b94('0x8'));var querystring=require(_0x1b94('0xd'));var Papa=require(_0x1b94('0xe'));var Redis=require(_0x1b94('0xf'));var authService=require(_0x1b94('0x10'));var qs=require(_0x1b94('0x11'));var as=require(_0x1b94('0x12'));var hardwareService=require(_0x1b94('0x13'));var logger=require(_0x1b94('0x14'))(_0x1b94('0x15'));var utils=require(_0x1b94('0x16'));var config=require(_0x1b94('0x17'));var licenseUtil=require(_0x1b94('0x18'));var db=require(_0x1b94('0x19'))['db'];var jayson=require(_0x1b94('0x1a'));var client=jayson[_0x1b94('0x1b')][_0x1b94('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x2ead40,_0x4b1238,_0x3ae39e,_0x58c24b){return new BPromise(function(_0x38ee6e,_0x26dcd1){var _0x43d551=_0x58c24b||client;return _0x43d551[_0x1b94('0x1d')](_0x2ead40,_0x3ae39e)['then'](function(_0x12d44a){logger[_0x1b94('0x1e')]('Network,\x20%s,\x20%s',_0x4b1238,'request\x20sent');logger[_0x1b94('0x1f')]('Network,\x20%s,\x20%s,\x20%s',_0x4b1238,_0x1b94('0x20'),JSON[_0x1b94('0x21')](_0x12d44a));if(_0x12d44a[_0x1b94('0x22')]){if(_0x12d44a[_0x1b94('0x22')][_0x1b94('0x23')]===0x1f4){logger[_0x1b94('0x22')](_0x1b94('0x24'),_0x4b1238,_0x12d44a[_0x1b94('0x22')]['message']);return _0x26dcd1(_0x12d44a[_0x1b94('0x22')]['message']);}logger[_0x1b94('0x22')]('Network,\x20%s,\x20%s',_0x4b1238,_0x12d44a[_0x1b94('0x22')][_0x1b94('0x25')]);return _0x38ee6e(_0x12d44a[_0x1b94('0x22')]['message']);}else{logger['info'](_0x1b94('0x24'),_0x4b1238,_0x1b94('0x20'));_0x38ee6e(_0x12d44a[_0x1b94('0x26')]['message']);}})[_0x1b94('0x27')](function(_0x50b1e1){logger['error']('Network,\x20%s,\x20%s',_0x4b1238,_0x50b1e1);_0x26dcd1(_0x50b1e1);});});}function respondWithStatusCode(_0x30b2ba,_0x16a879){_0x16a879=_0x16a879||0xcc;return function(_0x141172){if(_0x141172){return _0x30b2ba[_0x1b94('0x28')](_0x16a879);}return _0x30b2ba[_0x1b94('0x29')](_0x16a879)[_0x1b94('0x2a')]();};}function respondWithResult(_0x2cc7e2,_0x18a652){_0x18a652=_0x18a652||0xc8;return function(_0x59c4a7){if(_0x59c4a7){return _0x2cc7e2[_0x1b94('0x29')](_0x18a652)[_0x1b94('0x2b')](_0x59c4a7);}};}function respondWithFilteredResult(_0x21aae6,_0x3dbeac){return function(_0x264365){if(_0x264365){var _0x54841d=typeof _0x3dbeac[_0x1b94('0x2c')]==='undefined'&&typeof _0x3dbeac[_0x1b94('0x2d')]===_0x1b94('0x2e');var _0x390c0b=_0x264365[_0x1b94('0x2f')];var _0xeca00b=_0x54841d?0x0:_0x3dbeac[_0x1b94('0x2c')];var _0x420909=_0x54841d?_0x264365[_0x1b94('0x2f')]:_0x3dbeac[_0x1b94('0x2c')]+_0x3dbeac[_0x1b94('0x2d')];var _0x557cb3;if(_0x420909>=_0x390c0b){_0x420909=_0x390c0b;_0x557cb3=0xc8;}else{_0x557cb3=0xce;}_0x21aae6[_0x1b94('0x29')](_0x557cb3);return _0x21aae6['set'](_0x1b94('0x30'),_0xeca00b+'-'+_0x420909+'/'+_0x390c0b)[_0x1b94('0x2b')](_0x264365);}return null;};}function patchUpdates(_0x3247e7){return function(_0x5f1349){try{jsonpatch['apply'](_0x5f1349,_0x3247e7,!![]);}catch(_0x2d97e1){return BPromise[_0x1b94('0x31')](_0x2d97e1);}return _0x5f1349[_0x1b94('0x32')]();};}function saveUpdates(_0xb80476,_0x20b953){return function(_0x19cfa4){if(_0x19cfa4){return _0x19cfa4[_0x1b94('0x33')](_0xb80476)['then'](function(_0x1435df){return _0x1435df;});}return null;};}function removeEntity(_0x57a5eb,_0x38eff2){return function(_0x402384){if(_0x402384){return _0x402384['destroy']()['then'](function(){_0x57a5eb[_0x1b94('0x29')](0xcc)[_0x1b94('0x2a')]();});}};}function handleEntityNotFound(_0x239f5c,_0x5e399b){return function(_0x450767){if(!_0x450767){_0x239f5c['sendStatus'](0x194);}return _0x450767;};}function handleError(_0x39fa4e,_0xd820b8){_0xd820b8=_0xd820b8||0x1f4;return function(_0x183431){logger[_0x1b94('0x22')](_0x183431[_0x1b94('0x34')]);if(_0x183431[_0x1b94('0x35')]){delete _0x183431['name'];}_0x39fa4e['status'](_0xd820b8)[_0x1b94('0x36')](_0x183431);};}exports[_0x1b94('0x37')]=function(_0x3a93b8,_0x411274){var _0x30c575={},_0x3ee77a={},_0x2f7df3={'count':0x0,'rows':[]};var _0x1708c1=_[_0x1b94('0x38')](db['Network']['rawAttributes'],function(_0x2c588d){return{'name':_0x2c588d[_0x1b94('0x39')],'type':_0x2c588d[_0x1b94('0x3a')][_0x1b94('0x3b')]};});_0x3ee77a[_0x1b94('0x3c')]=_[_0x1b94('0x38')](_0x1708c1,_0x1b94('0x35'));_0x3ee77a['query']=_[_0x1b94('0x3d')](_0x3a93b8[_0x1b94('0x3e')]);_0x3ee77a['filters']=_[_0x1b94('0x3f')](_0x3ee77a[_0x1b94('0x3c')],_0x3ee77a['query']);_0x30c575[_0x1b94('0x40')]=_['intersection'](_0x3ee77a[_0x1b94('0x3c')],qs[_0x1b94('0x41')](_0x3a93b8['query']['fields']));_0x30c575[_0x1b94('0x40')]=_0x30c575[_0x1b94('0x40')][_0x1b94('0x42')]?_0x30c575['attributes']:_0x3ee77a[_0x1b94('0x3c')];if(!_0x3a93b8[_0x1b94('0x3e')]['hasOwnProperty'](_0x1b94('0x43'))){_0x30c575[_0x1b94('0x2d')]=qs['limit'](_0x3a93b8[_0x1b94('0x3e')]['limit']);_0x30c575[_0x1b94('0x2c')]=qs[_0x1b94('0x2c')](_0x3a93b8[_0x1b94('0x3e')][_0x1b94('0x2c')]);}_0x30c575[_0x1b94('0x44')]=qs['sort'](_0x3a93b8[_0x1b94('0x3e')][_0x1b94('0x45')]);_0x30c575['where']=qs[_0x1b94('0x46')](_['pick'](_0x3a93b8['query'],_0x3ee77a['filters']),_0x1708c1);if(_0x3a93b8[_0x1b94('0x3e')][_0x1b94('0x47')]){_0x30c575['where']=_[_0x1b94('0x48')](_0x30c575[_0x1b94('0x49')],{'$or':_['map'](_0x1708c1,function(_0x5a7342){if(_0x5a7342[_0x1b94('0x3a')]!==_0x1b94('0x4a')){var _0x327a32={};_0x327a32[_0x5a7342[_0x1b94('0x35')]]={'$like':'%'+_0x3a93b8[_0x1b94('0x3e')][_0x1b94('0x47')]+'%'};return _0x327a32;}})});}_0x30c575=_[_0x1b94('0x48')]({},_0x30c575,_0x3a93b8[_0x1b94('0x4b')]);var _0x3b6b44={'where':_0x30c575['where']};return db[_0x1b94('0x4c')][_0x1b94('0x2f')](_0x3b6b44)[_0x1b94('0x4d')](function(_0x529a2d){_0x2f7df3[_0x1b94('0x2f')]=_0x529a2d;if(_0x3a93b8[_0x1b94('0x3e')]['includeAll']){_0x30c575[_0x1b94('0x4e')]=[{'all':!![]}];}return db[_0x1b94('0x4c')]['findAll'](_0x30c575);})['then'](function(_0x35602){_0x2f7df3['rows']=_0x35602;return _0x2f7df3;})[_0x1b94('0x4d')](respondWithFilteredResult(_0x411274,_0x30c575))[_0x1b94('0x27')](handleError(_0x411274,null));};exports[_0x1b94('0x4f')]=function(_0x3d8b41,_0x1d4a03){var _0x336ffa={'raw':!![],'where':{'id':_0x3d8b41[_0x1b94('0x50')]['id']}},_0x5a1c19={};_0x5a1c19[_0x1b94('0x3c')]=_['keys'](db[_0x1b94('0x4c')]['rawAttributes']);_0x5a1c19[_0x1b94('0x3e')]=_[_0x1b94('0x3d')](_0x3d8b41[_0x1b94('0x3e')]);_0x5a1c19[_0x1b94('0x46')]=_['intersection'](_0x5a1c19[_0x1b94('0x3c')],_0x5a1c19[_0x1b94('0x3e')]);_0x336ffa[_0x1b94('0x40')]=_[_0x1b94('0x3f')](_0x5a1c19[_0x1b94('0x3c')],qs[_0x1b94('0x41')](_0x3d8b41[_0x1b94('0x3e')][_0x1b94('0x41')]));_0x336ffa[_0x1b94('0x40')]=_0x336ffa[_0x1b94('0x40')][_0x1b94('0x42')]?_0x336ffa['attributes']:_0x5a1c19[_0x1b94('0x3c')];if(_0x3d8b41[_0x1b94('0x3e')][_0x1b94('0x51')]){_0x336ffa[_0x1b94('0x4e')]=[{'all':!![]}];}_0x336ffa=_[_0x1b94('0x48')]({},_0x336ffa,_0x3d8b41[_0x1b94('0x4b')]);return db[_0x1b94('0x4c')][_0x1b94('0x52')](_0x336ffa)[_0x1b94('0x4d')](handleEntityNotFound(_0x1d4a03,null))[_0x1b94('0x4d')](respondWithResult(_0x1d4a03,null))[_0x1b94('0x27')](handleError(_0x1d4a03,null));};exports[_0x1b94('0x53')]=function(_0x5cfe10,_0x1805a2,_0x1fd952){var _0x1aff60;return db[_0x1b94('0x54')][_0x1b94('0x55')](function(_0x1d3c99){return db[_0x1b94('0x4c')][_0x1b94('0x53')](_0x5cfe10[_0x1b94('0x56')],{'raw':!![]})[_0x1b94('0x4d')](function(_0x44efdb){_0x1aff60=_0x44efdb;return db['Network']['findAll']({'where':{'type':_0x5cfe10[_0x1b94('0x56')]['type']},'raw':!![]});})[_0x1b94('0x4d')](function(_0x47a140){if(_0x1aff60[_0x1b94('0x3a')][_0x1b94('0x57')]()=='STUN'){var _0x539a6b=fs[_0x1b94('0x58')](path[_0x1b94('0x59')](config[_0x1b94('0x5a')],_0x1b94('0x5b')),'utf8');var _0x53614b=ejs[_0x1b94('0x5c')](_0x539a6b,{'networks':_0x47a140||[]});fs[_0x1b94('0x5d')]('/etc/asterisk/stun_xcally.conf',_0x53614b);return respondWithRpcPromise(_0x1b94('0x5e'),'create',{'module':_0x1b94('0x5f')});}else if(_0x1aff60['type'][_0x1b94('0x57')]()=='TURN'){var _0x5a6f2b=fs['readFileSync'](path[_0x1b94('0x59')](config['root'],'server/files/templates/turn_multiple.ejs'),_0x1b94('0x60'));var _0x1e2d95=ejs[_0x1b94('0x5c')](_0x5a6f2b,{'networks':_0x47a140||[]});fs[_0x1b94('0x5d')]('/etc/asterisk/turn_xcally.conf',_0x1e2d95);return respondWithRpcPromise(_0x1b94('0x5e'),'create',{'module':_0x1b94('0x5f')});}else{var _0x494719=fs[_0x1b94('0x58')](path['join'](config[_0x1b94('0x5a')],'server/files/templates/network.ejs'),_0x1b94('0x60'));var _0x35707a=ejs[_0x1b94('0x5c')](_0x494719,{'networks':_0x47a140||[]});fs[_0x1b94('0x5d')](util[_0x1b94('0x61')](_0x1b94('0x62'),_0x5cfe10['body'][_0x1b94('0x3a')][_0x1b94('0x63')]()),_0x35707a);return respondWithRpcPromise(_0x1b94('0x5e'),_0x1b94('0x53'),{'module':_0x1b94('0x64')});}return null;})[_0x1b94('0x4d')](function(){return _0x1aff60;});})[_0x1b94('0x4d')](respondWithResult(_0x1805a2,0xc9))[_0x1b94('0x27')](handleError(_0x1805a2,null));};exports[_0x1b94('0x33')]=function(_0x277d6b,_0x4c7f88,_0x346067){var _0x12f62d;return db[_0x1b94('0x54')][_0x1b94('0x55')](function(_0x1da729){return db[_0x1b94('0x4c')][_0x1b94('0x52')]({'where':{'id':_0x277d6b[_0x1b94('0x50')]['id']}})[_0x1b94('0x4d')](handleEntityNotFound(_0x4c7f88,null))[_0x1b94('0x4d')](saveUpdates(_0x277d6b[_0x1b94('0x56')],null))[_0x1b94('0x4d')](function(_0x5849ea){if(_0x5849ea){_0x12f62d=_0x5849ea;return db[_0x1b94('0x4c')][_0x1b94('0x65')]({'where':{'type':_0x12f62d['type']},'raw':!![]});}return null;})[_0x1b94('0x4d')](function(_0x41b91b){if(_0x12f62d[_0x1b94('0x3a')]['toUpperCase']()=='STUN'){var _0x5137e7=fs['readFileSync'](path[_0x1b94('0x59')](config[_0x1b94('0x5a')],_0x1b94('0x5b')),_0x1b94('0x60'));var _0x2b639a=ejs[_0x1b94('0x5c')](_0x5137e7,{'networks':_0x41b91b||[]});fs[_0x1b94('0x5d')](_0x1b94('0x66'),_0x2b639a);return respondWithRpcPromise(_0x1b94('0x5e'),'update',{'module':_0x1b94('0x5f')});}else if(_0x12f62d[_0x1b94('0x3a')][_0x1b94('0x57')]()==_0x1b94('0x67')){var _0x2cd45a=fs[_0x1b94('0x58')](path[_0x1b94('0x59')](config[_0x1b94('0x5a')],_0x1b94('0x68')),_0x1b94('0x60'));var _0x468491=ejs[_0x1b94('0x5c')](_0x2cd45a,{'networks':_0x41b91b||[]});fs[_0x1b94('0x5d')](_0x1b94('0x69'),_0x468491);return respondWithRpcPromise('Reload','update',{'module':_0x1b94('0x5f')});}else{var _0x12ad73=fs['readFileSync'](path[_0x1b94('0x59')](config[_0x1b94('0x5a')],'server/files/templates/network.ejs'),_0x1b94('0x60'));var _0x40ce87=ejs['render'](_0x12ad73,{'networks':_0x41b91b||[]});fs[_0x1b94('0x5d')](util[_0x1b94('0x61')]('/etc/asterisk/sip_xcally_%s.conf',_0x277d6b['body']['type'][_0x1b94('0x63')]()),_0x40ce87);return respondWithRpcPromise(_0x1b94('0x5e'),_0x1b94('0x33'),{'module':'chan_sip.so'});}return null;})['then'](function(_0x6dcd99){if(_0x6dcd99){return _0x12f62d;}return null;});})[_0x1b94('0x4d')](respondWithResult(_0x4c7f88,null))[_0x1b94('0x27')](handleError(_0x4c7f88,null));};exports[_0x1b94('0x6a')]=function(_0x5b23cd,_0x365dc7,_0xb7a05){var _0x55111b;return db[_0x1b94('0x4c')]['find']({'where':{'id':_0x5b23cd[_0x1b94('0x50')]['id']}})[_0x1b94('0x4d')](function(_0xae114a){_0x55111b=_0xae114a;return _0xae114a;})[_0x1b94('0x4d')](handleEntityNotFound(_0x365dc7,null))[_0x1b94('0x4d')](removeEntity(_0x365dc7,null))[_0x1b94('0x4d')](function(){if(_0x55111b){return db['Network'][_0x1b94('0x65')]({'where':{'type':_0x55111b[_0x1b94('0x3a')]},'raw':!![]});}})[_0x1b94('0x4d')](function(_0x45a1ee){if(_0x55111b['type'][_0x1b94('0x57')]()==_0x1b94('0x6b')){var _0x45f276=fs['readFileSync'](path[_0x1b94('0x59')](config[_0x1b94('0x5a')],'server/files/templates/stun_multiple.ejs'),'utf8');var _0x532746=ejs['render'](_0x45f276,{'networks':_0x45a1ee||[]});fs['writeFileSync'](_0x1b94('0x66'),_0x532746);return respondWithRpcPromise(_0x1b94('0x5e'),_0x1b94('0x6a'),{'module':_0x1b94('0x5f')});}else if(_0x55111b[_0x1b94('0x3a')][_0x1b94('0x57')]()==_0x1b94('0x67')){var _0x586abe=fs[_0x1b94('0x58')](path[_0x1b94('0x59')](config[_0x1b94('0x5a')],_0x1b94('0x68')),_0x1b94('0x60'));var _0x31dfcd=ejs[_0x1b94('0x5c')](_0x586abe,{'networks':_0x45a1ee||[]});fs[_0x1b94('0x5d')](_0x1b94('0x69'),_0x31dfcd);return respondWithRpcPromise(_0x1b94('0x5e'),_0x1b94('0x6a'),{'module':_0x1b94('0x5f')});}else{var _0x50feb4=fs['readFileSync'](path['join'](config[_0x1b94('0x5a')],'server/files/templates/network.ejs'),_0x1b94('0x60'));var _0x21b993=ejs['render'](_0x50feb4,{'networks':_0x45a1ee||[]});fs[_0x1b94('0x5d')](util[_0x1b94('0x61')](_0x1b94('0x62'),_0x5b23cd[_0x1b94('0x56')][_0x1b94('0x3a')][_0x1b94('0x63')]()),_0x21b993);return respondWithRpcPromise(_0x1b94('0x5e'),'destroy',{'module':_0x1b94('0x64')});}return null;})[_0x1b94('0x27')](handleError(_0x365dc7,null));};