Built motion from commit (unavailable).|2.5.4
[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 _0x2d81=['message','catch','end','status','json','count','offset','apply','reject','save','then','destroy','sendStatus','stack','name','send','index','Network','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','params','include','find','create','sequelize','transaction','toUpperCase','STUN','readFileSync','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','Reload','res_stun_monitor.so','TURN','join','server/files/templates/turn_multiple.ejs','server/files/templates/network.ejs','/etc/asterisk/sip_xcally_%s.conf','body','toLowerCase','chan_sip.so','update','/etc/asterisk/turn_xcally.conf','format','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','http','ValidationError','request','info','Network,\x20%s,\x20%s','request\x20sent','Network,\x20%s,\x20%s,\x20%s','error','code'];(function(_0x513356,_0x490e68){var _0xced1fd=function(_0x2b125f){while(--_0x2b125f){_0x513356['push'](_0x513356['shift']());}};_0xced1fd(++_0x490e68);}(_0x2d81,0x11c));var _0x12d8=function(_0x4d2698,_0x3a5517){_0x4d2698=_0x4d2698-0x0;var _0x1e6b1f=_0x2d81[_0x4d2698];return _0x1e6b1f;};'use strict';var pdf=require(_0x12d8('0x0'));var emlformat=require(_0x12d8('0x1'));var rimraf=require(_0x12d8('0x2'));var zipdir=require(_0x12d8('0x3'));var jsonpatch=require(_0x12d8('0x4'));var rp=require(_0x12d8('0x5'));var moment=require('moment');var BPromise=require(_0x12d8('0x6'));var Mustache=require(_0x12d8('0x7'));var util=require(_0x12d8('0x8'));var path=require(_0x12d8('0x9'));var sox=require(_0x12d8('0xa'));var csv=require(_0x12d8('0xb'));var ejs=require(_0x12d8('0xc'));var fs=require('fs');var _=require('lodash');var squel=require(_0x12d8('0xd'));var crypto=require(_0x12d8('0xe'));var jsforce=require(_0x12d8('0xf'));var deskjs=require(_0x12d8('0x10'));var toCsv=require(_0x12d8('0xb'));var querystring=require(_0x12d8('0x11'));var Papa=require(_0x12d8('0x12'));var Redis=require(_0x12d8('0x13'));var authService=require(_0x12d8('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x12d8('0x15'));var logger=require(_0x12d8('0x16'))('api');var utils=require(_0x12d8('0x17'));var config=require('../../config/environment');var db=require(_0x12d8('0x18'))['db'];var jayson=require('jayson/promise');var client=jayson['client'][_0x12d8('0x19')]({'port':0x232a});function checkPasswordPattern(_0x1061d9,_0x1662c0,_0x175c7e){if(_0x175c7e){var _0x5e5841=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x5e5841['test'](_0x1662c0)){return _0x1061d9;}else{throw new db['Sequelize'][(_0x12d8('0x1a'))]('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0x1061d9;}}function respondWithRpcPromise(_0x22a4b8,_0x46f537,_0x369d92,_0x1b867a){return new BPromise(function(_0x2d835b,_0x58d4d3){var _0x55e1d6=_0x1b867a||client;return _0x55e1d6[_0x12d8('0x1b')](_0x22a4b8,_0x369d92)['then'](function(_0xb2ae46){logger[_0x12d8('0x1c')](_0x12d8('0x1d'),_0x46f537,_0x12d8('0x1e'));logger['debug'](_0x12d8('0x1f'),_0x46f537,_0x12d8('0x1e'),JSON['stringify'](_0xb2ae46));if(_0xb2ae46[_0x12d8('0x20')]){if(_0xb2ae46[_0x12d8('0x20')][_0x12d8('0x21')]===0x1f4){logger[_0x12d8('0x20')]('Network,\x20%s,\x20%s',_0x46f537,_0xb2ae46[_0x12d8('0x20')][_0x12d8('0x22')]);return _0x58d4d3(_0xb2ae46[_0x12d8('0x20')]['message']);}logger[_0x12d8('0x20')](_0x12d8('0x1d'),_0x46f537,_0xb2ae46[_0x12d8('0x20')][_0x12d8('0x22')]);return _0x2d835b(_0xb2ae46[_0x12d8('0x20')][_0x12d8('0x22')]);}else{logger['info']('Network,\x20%s,\x20%s',_0x46f537,_0x12d8('0x1e'));_0x2d835b(_0xb2ae46['result'][_0x12d8('0x22')]);}})[_0x12d8('0x23')](function(_0x1959d4){logger[_0x12d8('0x20')]('Network,\x20%s,\x20%s',_0x46f537,_0x1959d4);_0x58d4d3(_0x1959d4);});});}function respondWithStatusCode(_0x3d406e,_0x30bd96){_0x30bd96=_0x30bd96||0xcc;return function(_0x5c46c6){if(_0x5c46c6){return _0x3d406e['sendStatus'](_0x30bd96);}return _0x3d406e['status'](_0x30bd96)[_0x12d8('0x24')]();};}function respondWithResult(_0x159f22,_0x26c39e){_0x26c39e=_0x26c39e||0xc8;return function(_0x561a62){if(_0x561a62){return _0x159f22[_0x12d8('0x25')](_0x26c39e)[_0x12d8('0x26')](_0x561a62);}};}function respondWithFilteredResult(_0x3e36e4,_0x150720){return function(_0x2654f2){if(_0x2654f2){var _0x282a87=_0x2654f2[_0x12d8('0x27')],_0x1a4fb5=_0x150720['offset'],_0x23b3a3=_0x150720[_0x12d8('0x28')]+_0x150720['limit'],_0x34e9d3;if(_0x23b3a3>=_0x282a87){_0x23b3a3=_0x282a87;_0x34e9d3=0xc8;}else{_0x34e9d3=0xce;}_0x3e36e4[_0x12d8('0x25')](_0x34e9d3);return _0x3e36e4['set']('Content-Range',_0x1a4fb5+'-'+_0x23b3a3+'/'+_0x282a87)['json'](_0x2654f2);}return null;};}function patchUpdates(_0x3fcf03){return function(_0x3ffb1a){try{jsonpatch[_0x12d8('0x29')](_0x3ffb1a,_0x3fcf03,!![]);}catch(_0x4bb1bb){return BPromise[_0x12d8('0x2a')](_0x4bb1bb);}return _0x3ffb1a[_0x12d8('0x2b')]();};}function saveUpdates(_0x5b43ad,_0x30c2bb){return function(_0x22ebfe){if(_0x22ebfe){return _0x22ebfe['update'](_0x5b43ad)[_0x12d8('0x2c')](function(_0x5057da){return _0x5057da;});}return null;};}function removeEntity(_0x9f18a5,_0x9be095){return function(_0x38ad17){if(_0x38ad17){return _0x38ad17[_0x12d8('0x2d')]()[_0x12d8('0x2c')](function(){_0x9f18a5[_0x12d8('0x25')](0xcc)[_0x12d8('0x24')]();});}};}function handleEntityNotFound(_0x52a345,_0x35719d){return function(_0x2439b6){if(!_0x2439b6){_0x52a345[_0x12d8('0x2e')](0x194);}return _0x2439b6;};}function handleError(_0x71375e,_0x30b37b){_0x30b37b=_0x30b37b||0x1f4;return function(_0x333665){logger[_0x12d8('0x20')](_0x333665[_0x12d8('0x2f')]);if(_0x333665[_0x12d8('0x30')]){delete _0x333665['name'];}_0x71375e['status'](_0x30b37b)[_0x12d8('0x31')](_0x333665);};}exports[_0x12d8('0x32')]=function(_0x129b38,_0x3b7a6e){var _0x215b67={},_0x3856db={},_0x437677={'count':0x0,'rows':[]};var _0x3535cb=_['map'](db[_0x12d8('0x33')][_0x12d8('0x34')],function(_0x5925b7){return{'name':_0x5925b7[_0x12d8('0x35')],'type':_0x5925b7[_0x12d8('0x36')][_0x12d8('0x37')]};});_0x3856db[_0x12d8('0x38')]=_['map'](_0x3535cb,_0x12d8('0x30'));_0x3856db[_0x12d8('0x39')]=_[_0x12d8('0x3a')](_0x129b38[_0x12d8('0x39')]);_0x3856db[_0x12d8('0x3b')]=_[_0x12d8('0x3c')](_0x3856db[_0x12d8('0x38')],_0x3856db[_0x12d8('0x39')]);_0x215b67[_0x12d8('0x3d')]=_[_0x12d8('0x3c')](_0x3856db[_0x12d8('0x38')],qs['fields'](_0x129b38[_0x12d8('0x39')][_0x12d8('0x3e')]));_0x215b67[_0x12d8('0x3d')]=_0x215b67[_0x12d8('0x3d')][_0x12d8('0x3f')]?_0x215b67[_0x12d8('0x3d')]:_0x3856db[_0x12d8('0x38')];if(!_0x129b38['query'][_0x12d8('0x40')](_0x12d8('0x41'))){_0x215b67['limit']=qs[_0x12d8('0x42')](_0x129b38['query'][_0x12d8('0x42')]);_0x215b67['offset']=qs[_0x12d8('0x28')](_0x129b38[_0x12d8('0x39')][_0x12d8('0x28')]);}_0x215b67[_0x12d8('0x43')]=qs[_0x12d8('0x44')](_0x129b38[_0x12d8('0x39')]['sort']);_0x215b67[_0x12d8('0x45')]=qs[_0x12d8('0x3b')](_[_0x12d8('0x46')](_0x129b38[_0x12d8('0x39')],_0x3856db[_0x12d8('0x3b')]),_0x3535cb);if(_0x129b38['query'][_0x12d8('0x47')]){_0x215b67[_0x12d8('0x45')]=_[_0x12d8('0x48')](_0x215b67[_0x12d8('0x45')],{'$or':_['map'](_0x3535cb,function(_0x248822){if(_0x248822[_0x12d8('0x36')]!==_0x12d8('0x49')){var _0x4062f6={};_0x4062f6[_0x248822[_0x12d8('0x30')]]={'$like':'%'+_0x129b38[_0x12d8('0x39')][_0x12d8('0x47')]+'%'};return _0x4062f6;}})});}_0x215b67=_[_0x12d8('0x48')]({},_0x215b67,_0x129b38[_0x12d8('0x4a')]);var _0x2d1354={'where':_0x215b67[_0x12d8('0x45')]};return db[_0x12d8('0x33')]['count'](_0x2d1354)['then'](function(_0x597a18){_0x437677[_0x12d8('0x27')]=_0x597a18;if(_0x129b38[_0x12d8('0x39')][_0x12d8('0x4b')]){_0x215b67['include']=[{'all':!![]}];}return db[_0x12d8('0x33')][_0x12d8('0x4c')](_0x215b67);})[_0x12d8('0x2c')](function(_0x2459d4){_0x437677[_0x12d8('0x4d')]=_0x2459d4;return _0x437677;})['then'](respondWithFilteredResult(_0x3b7a6e,_0x215b67))[_0x12d8('0x23')](handleError(_0x3b7a6e,null));};exports[_0x12d8('0x4e')]=function(_0x52cd22,_0x2b8c45){var _0x595dce={'raw':!![],'where':{'id':_0x52cd22[_0x12d8('0x4f')]['id']}},_0x5e224d={};_0x5e224d[_0x12d8('0x38')]=_[_0x12d8('0x3a')](db[_0x12d8('0x33')][_0x12d8('0x34')]);_0x5e224d['query']=_['keys'](_0x52cd22[_0x12d8('0x39')]);_0x5e224d[_0x12d8('0x3b')]=_[_0x12d8('0x3c')](_0x5e224d[_0x12d8('0x38')],_0x5e224d[_0x12d8('0x39')]);_0x595dce[_0x12d8('0x3d')]=_[_0x12d8('0x3c')](_0x5e224d['model'],qs[_0x12d8('0x3e')](_0x52cd22['query']['fields']));_0x595dce[_0x12d8('0x3d')]=_0x595dce[_0x12d8('0x3d')][_0x12d8('0x3f')]?_0x595dce[_0x12d8('0x3d')]:_0x5e224d['model'];if(_0x52cd22[_0x12d8('0x39')][_0x12d8('0x4b')]){_0x595dce[_0x12d8('0x50')]=[{'all':!![]}];}_0x595dce=_[_0x12d8('0x48')]({},_0x595dce,_0x52cd22[_0x12d8('0x4a')]);return db[_0x12d8('0x33')][_0x12d8('0x51')](_0x595dce)[_0x12d8('0x2c')](handleEntityNotFound(_0x2b8c45,null))['then'](respondWithResult(_0x2b8c45,null))[_0x12d8('0x23')](handleError(_0x2b8c45,null));};exports[_0x12d8('0x52')]=function(_0x4a019d,_0x17eb06,_0x55c61d){var _0x3be7be;return db[_0x12d8('0x53')][_0x12d8('0x54')](function(_0x2e3bde){return db[_0x12d8('0x33')][_0x12d8('0x52')](_0x4a019d['body'],{'raw':!![]})['then'](function(_0xac7b){_0x3be7be=_0xac7b;return db[_0x12d8('0x33')][_0x12d8('0x4c')]({'where':{'type':_0x4a019d['body'][_0x12d8('0x36')]},'raw':!![]});})[_0x12d8('0x2c')](function(_0x1dfd6f){if(_0x3be7be['type'][_0x12d8('0x55')]()==_0x12d8('0x56')){var _0x2a374d=fs[_0x12d8('0x57')](path['join'](config[_0x12d8('0x58')],_0x12d8('0x59')),_0x12d8('0x5a'));var _0x148c8c=ejs[_0x12d8('0x5b')](_0x2a374d,{'networks':_0x1dfd6f||[]});fs[_0x12d8('0x5c')]('/etc/asterisk/stun_xcally.conf',_0x148c8c);return respondWithRpcPromise(_0x12d8('0x5d'),_0x12d8('0x52'),{'module':_0x12d8('0x5e')});}else if(_0x3be7be['type'][_0x12d8('0x55')]()==_0x12d8('0x5f')){var _0x4a5102=fs['readFileSync'](path[_0x12d8('0x60')](config[_0x12d8('0x58')],_0x12d8('0x61')),_0x12d8('0x5a'));var _0x41dc14=ejs[_0x12d8('0x5b')](_0x4a5102,{'networks':_0x1dfd6f||[]});fs['writeFileSync']('/etc/asterisk/turn_xcally.conf',_0x41dc14);return respondWithRpcPromise('Reload',_0x12d8('0x52'),{'module':_0x12d8('0x5e')});}else{var _0x28aa37=fs[_0x12d8('0x57')](path['join'](config[_0x12d8('0x58')],_0x12d8('0x62')),'utf8');var _0x2ba54f=ejs['render'](_0x28aa37,{'networks':_0x1dfd6f||[]});fs['writeFileSync'](util['format'](_0x12d8('0x63'),_0x4a019d[_0x12d8('0x64')][_0x12d8('0x36')][_0x12d8('0x65')]()),_0x2ba54f);return respondWithRpcPromise(_0x12d8('0x5d'),_0x12d8('0x52'),{'module':_0x12d8('0x66')});}return null;})[_0x12d8('0x2c')](function(){return _0x3be7be;});})['then'](respondWithResult(_0x17eb06,0xc9))[_0x12d8('0x23')](handleError(_0x17eb06,null));};exports[_0x12d8('0x67')]=function(_0xf369cd,_0x51cfd1,_0x567ddc){var _0x33bb4f;return db[_0x12d8('0x53')][_0x12d8('0x54')](function(_0x148e21){return db[_0x12d8('0x33')][_0x12d8('0x51')]({'where':{'id':_0xf369cd[_0x12d8('0x4f')]['id']}})['then'](handleEntityNotFound(_0x51cfd1,null))[_0x12d8('0x2c')](saveUpdates(_0xf369cd[_0x12d8('0x64')],null))[_0x12d8('0x2c')](function(_0x85dc67){if(_0x85dc67){_0x33bb4f=_0x85dc67;return db['Network'][_0x12d8('0x4c')]({'where':{'type':_0x33bb4f[_0x12d8('0x36')]},'raw':!![]});}return null;})['then'](function(_0x497824){if(_0x33bb4f[_0x12d8('0x36')][_0x12d8('0x55')]()==_0x12d8('0x56')){var _0x4584fa=fs[_0x12d8('0x57')](path[_0x12d8('0x60')](config[_0x12d8('0x58')],_0x12d8('0x59')),'utf8');var _0x13d17c=ejs['render'](_0x4584fa,{'networks':_0x497824||[]});fs[_0x12d8('0x5c')]('/etc/asterisk/stun_xcally.conf',_0x13d17c);return respondWithRpcPromise(_0x12d8('0x5d'),_0x12d8('0x67'),{'module':_0x12d8('0x5e')});}else if(_0x33bb4f[_0x12d8('0x36')][_0x12d8('0x55')]()=='TURN'){var _0x317a31=fs['readFileSync'](path[_0x12d8('0x60')](config[_0x12d8('0x58')],_0x12d8('0x61')),_0x12d8('0x5a'));var _0x41f9a3=ejs[_0x12d8('0x5b')](_0x317a31,{'networks':_0x497824||[]});fs[_0x12d8('0x5c')](_0x12d8('0x68'),_0x41f9a3);return respondWithRpcPromise('Reload',_0x12d8('0x67'),{'module':_0x12d8('0x5e')});}else{var _0x453bf8=fs['readFileSync'](path[_0x12d8('0x60')](config[_0x12d8('0x58')],_0x12d8('0x62')),_0x12d8('0x5a'));var _0x1224db=ejs[_0x12d8('0x5b')](_0x453bf8,{'networks':_0x497824||[]});fs[_0x12d8('0x5c')](util[_0x12d8('0x69')]('/etc/asterisk/sip_xcally_%s.conf',_0xf369cd['body']['type'][_0x12d8('0x65')]()),_0x1224db);return respondWithRpcPromise(_0x12d8('0x5d'),_0x12d8('0x67'),{'module':_0x12d8('0x66')});}return null;})[_0x12d8('0x2c')](function(_0x320e0f){if(_0x320e0f){return _0x33bb4f;}return null;});})[_0x12d8('0x2c')](respondWithResult(_0x51cfd1,null))[_0x12d8('0x23')](handleError(_0x51cfd1,null));};exports[_0x12d8('0x2d')]=function(_0x2a472c,_0x4e09e0,_0x53f516){var _0x5ccb4e;return db[_0x12d8('0x33')][_0x12d8('0x51')]({'where':{'id':_0x2a472c['params']['id']}})[_0x12d8('0x2c')](function(_0xf9bb6e){_0x5ccb4e=_0xf9bb6e;return _0xf9bb6e;})[_0x12d8('0x2c')](handleEntityNotFound(_0x4e09e0,null))[_0x12d8('0x2c')](removeEntity(_0x4e09e0,null))[_0x12d8('0x2c')](function(){if(_0x5ccb4e){return db[_0x12d8('0x33')][_0x12d8('0x4c')]({'where':{'type':_0x5ccb4e[_0x12d8('0x36')]},'raw':!![]});}})['then'](function(_0x2255da){if(_0x5ccb4e['type']['toUpperCase']()=='STUN'){var _0x1912d6=fs['readFileSync'](path[_0x12d8('0x60')](config['root'],_0x12d8('0x59')),_0x12d8('0x5a'));var _0x43624d=ejs[_0x12d8('0x5b')](_0x1912d6,{'networks':_0x2255da||[]});fs[_0x12d8('0x5c')]('/etc/asterisk/stun_xcally.conf',_0x43624d);return respondWithRpcPromise(_0x12d8('0x5d'),_0x12d8('0x2d'),{'module':'res_stun_monitor.so'});}else if(_0x5ccb4e[_0x12d8('0x36')][_0x12d8('0x55')]()==_0x12d8('0x5f')){var _0x3b1d55=fs[_0x12d8('0x57')](path[_0x12d8('0x60')](config['root'],'server/files/templates/turn_multiple.ejs'),_0x12d8('0x5a'));var _0xef08de=ejs[_0x12d8('0x5b')](_0x3b1d55,{'networks':_0x2255da||[]});fs['writeFileSync']('/etc/asterisk/turn_xcally.conf',_0xef08de);return respondWithRpcPromise(_0x12d8('0x5d'),_0x12d8('0x2d'),{'module':_0x12d8('0x5e')});}else{var _0x1b79ce=fs[_0x12d8('0x57')](path[_0x12d8('0x60')](config[_0x12d8('0x58')],_0x12d8('0x62')),_0x12d8('0x5a'));var _0x3e91f6=ejs[_0x12d8('0x5b')](_0x1b79ce,{'networks':_0x2255da||[]});fs['writeFileSync'](util[_0x12d8('0x69')]('/etc/asterisk/sip_xcally_%s.conf',_0x2a472c[_0x12d8('0x64')][_0x12d8('0x36')][_0x12d8('0x65')]()),_0x3e91f6);return respondWithRpcPromise(_0x12d8('0x5d'),_0x12d8('0x2d'),{'module':_0x12d8('0x66')});}return null;})['catch'](handleError(_0x4e09e0,null));};