893c284893e86c0d66d5c4497a52ef615b69e904
[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 _0x89e8=['length','hasOwnProperty','offset','sort','where','filters','filter','merge','VIRTUAL','options','Network','includeAll','include','findAll','show','params','fields','find','create','sequelize','transaction','body','STUN','root','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','toUpperCase','TURN','readFileSync','join','server/files/templates/network.ejs','render','format','/etc/asterisk/sip_xcally_%s.conf','chan_sip.so','update','server/files/templates/stun_multiple.ejs','server/files/templates/turn_multiple.ejs','utf8','/etc/asterisk/turn_xcally.conf','toLowerCase','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','jayson/promise','client','http','test','ValidationError','request','info','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','Network,\x20%s,\x20%s','message','result','catch','sendStatus','end','json','count','limit','status','set','apply','reject','then','destroy','name','send','rawAttributes','fieldName','type','key','model','map','keys','query','intersection','attributes'];(function(_0x7a112,_0x2eb4a0){var _0x136dc5=function(_0x437650){while(--_0x437650){_0x7a112['push'](_0x7a112['shift']());}};_0x136dc5(++_0x2eb4a0);}(_0x89e8,0x96));var _0x889e=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x89e8[_0xbca1b1];return _0x4e1686;};'use strict';var pdf=require(_0x889e('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x889e('0x1'));var zipdir=require(_0x889e('0x2'));var jsonpatch=require(_0x889e('0x3'));var rp=require(_0x889e('0x4'));var moment=require(_0x889e('0x5'));var BPromise=require(_0x889e('0x6'));var Mustache=require('mustache');var util=require(_0x889e('0x7'));var path=require(_0x889e('0x8'));var sox=require('sox');var csv=require(_0x889e('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x889e('0xa'));var squel=require(_0x889e('0xb'));var crypto=require(_0x889e('0xc'));var jsforce=require(_0x889e('0xd'));var deskjs=require(_0x889e('0xe'));var toCsv=require(_0x889e('0x9'));var querystring=require(_0x889e('0xf'));var Papa=require(_0x889e('0x10'));var Redis=require(_0x889e('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x889e('0x12'));var as=require(_0x889e('0x13'));var hardwareService=require(_0x889e('0x14'));var logger=require(_0x889e('0x15'))('api');var utils=require(_0x889e('0x16'));var config=require('../../config/environment');var db=require(_0x889e('0x17'))['db'];var jayson=require(_0x889e('0x18'));var client=jayson[_0x889e('0x19')][_0x889e('0x1a')]({'port':0x232a});function checkPasswordPattern(_0x1aa08e,_0x53993f,_0x5ecceb){if(_0x5ecceb){var _0x66494c=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x66494c[_0x889e('0x1b')](_0x53993f)){return _0x1aa08e;}else{throw new db['Sequelize'][(_0x889e('0x1c'))]('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 _0x1aa08e;}}function respondWithRpcPromise(_0x17397b,_0x4868e5,_0xe53cbd,_0x3cb1eb){return new BPromise(function(_0x565ac9,_0x32cda0){var _0x51d128=_0x3cb1eb||client;return _0x51d128[_0x889e('0x1d')](_0x17397b,_0xe53cbd)['then'](function(_0x3b24b1){logger[_0x889e('0x1e')]('Network,\x20%s,\x20%s',_0x4868e5,_0x889e('0x1f'));logger[_0x889e('0x20')](_0x889e('0x21'),_0x4868e5,_0x889e('0x1f'),JSON[_0x889e('0x22')](_0x3b24b1));if(_0x3b24b1[_0x889e('0x23')]){if(_0x3b24b1[_0x889e('0x23')][_0x889e('0x24')]===0x1f4){logger['error'](_0x889e('0x25'),_0x4868e5,_0x3b24b1['error'][_0x889e('0x26')]);return _0x32cda0(_0x3b24b1[_0x889e('0x23')]['message']);}logger['error'](_0x889e('0x25'),_0x4868e5,_0x3b24b1[_0x889e('0x23')]['message']);return _0x565ac9(_0x3b24b1[_0x889e('0x23')]['message']);}else{logger[_0x889e('0x1e')](_0x889e('0x25'),_0x4868e5,_0x889e('0x1f'));_0x565ac9(_0x3b24b1[_0x889e('0x27')][_0x889e('0x26')]);}})[_0x889e('0x28')](function(_0x2b5539){logger[_0x889e('0x23')](_0x889e('0x25'),_0x4868e5,_0x2b5539);_0x32cda0(_0x2b5539);});});}function respondWithStatusCode(_0x48a5be,_0x24322b){_0x24322b=_0x24322b||0xcc;return function(_0x2609e7){if(_0x2609e7){return _0x48a5be[_0x889e('0x29')](_0x24322b);}return _0x48a5be['status'](_0x24322b)[_0x889e('0x2a')]();};}function respondWithResult(_0x4f69f3,_0xb5e193){_0xb5e193=_0xb5e193||0xc8;return function(_0x5429dc){if(_0x5429dc){return _0x4f69f3['status'](_0xb5e193)[_0x889e('0x2b')](_0x5429dc);}};}function respondWithFilteredResult(_0x2246d7,_0x2d5250){return function(_0x216507){if(_0x216507){var _0x49a58d=_0x216507[_0x889e('0x2c')],_0x53408f=_0x2d5250['offset'],_0x4ccd1f=_0x2d5250['offset']+_0x2d5250[_0x889e('0x2d')],_0x114376;if(_0x4ccd1f>=_0x49a58d){_0x4ccd1f=_0x49a58d;_0x114376=0xc8;}else{_0x114376=0xce;}_0x2246d7[_0x889e('0x2e')](_0x114376);return _0x2246d7[_0x889e('0x2f')]('Content-Range',_0x53408f+'-'+_0x4ccd1f+'/'+_0x49a58d)[_0x889e('0x2b')](_0x216507);}return null;};}function patchUpdates(_0x135f9f){return function(_0x1f2cd3){try{jsonpatch[_0x889e('0x30')](_0x1f2cd3,_0x135f9f,!![]);}catch(_0x19d754){return BPromise[_0x889e('0x31')](_0x19d754);}return _0x1f2cd3['save']();};}function saveUpdates(_0xd0aa36,_0x46892e){return function(_0x1e7191){if(_0x1e7191){return _0x1e7191['update'](_0xd0aa36)[_0x889e('0x32')](function(_0x4b52e6){return _0x4b52e6;});}return null;};}function removeEntity(_0x2249de,_0x5e936b){return function(_0x453172){if(_0x453172){return _0x453172[_0x889e('0x33')]()[_0x889e('0x32')](function(){_0x2249de[_0x889e('0x2e')](0xcc)[_0x889e('0x2a')]();});}};}function handleEntityNotFound(_0x2f962f,_0x17a523){return function(_0x6e4c87){if(!_0x6e4c87){_0x2f962f[_0x889e('0x29')](0x194);}return _0x6e4c87;};}function handleError(_0x145aa8,_0x3d7880){_0x3d7880=_0x3d7880||0x1f4;return function(_0x3d3ca4){logger[_0x889e('0x23')](_0x3d3ca4['stack']);if(_0x3d3ca4[_0x889e('0x34')]){delete _0x3d3ca4['name'];}_0x145aa8['status'](_0x3d7880)[_0x889e('0x35')](_0x3d3ca4);};}exports['index']=function(_0x256849,_0x4d70e8){var _0x2a0512={},_0x5c0ff4={},_0x478937={'count':0x0,'rows':[]};var _0x159a96=_['map'](db['Network'][_0x889e('0x36')],function(_0x56101d){return{'name':_0x56101d[_0x889e('0x37')],'type':_0x56101d[_0x889e('0x38')][_0x889e('0x39')]};});_0x5c0ff4[_0x889e('0x3a')]=_[_0x889e('0x3b')](_0x159a96,'name');_0x5c0ff4['query']=_[_0x889e('0x3c')](_0x256849[_0x889e('0x3d')]);_0x5c0ff4['filters']=_[_0x889e('0x3e')](_0x5c0ff4[_0x889e('0x3a')],_0x5c0ff4[_0x889e('0x3d')]);_0x2a0512['attributes']=_[_0x889e('0x3e')](_0x5c0ff4[_0x889e('0x3a')],qs['fields'](_0x256849[_0x889e('0x3d')]['fields']));_0x2a0512[_0x889e('0x3f')]=_0x2a0512[_0x889e('0x3f')][_0x889e('0x40')]?_0x2a0512[_0x889e('0x3f')]:_0x5c0ff4[_0x889e('0x3a')];if(!_0x256849['query'][_0x889e('0x41')]('nolimit')){_0x2a0512['limit']=qs['limit'](_0x256849[_0x889e('0x3d')][_0x889e('0x2d')]);_0x2a0512[_0x889e('0x42')]=qs[_0x889e('0x42')](_0x256849[_0x889e('0x3d')][_0x889e('0x42')]);}_0x2a0512['order']=qs[_0x889e('0x43')](_0x256849[_0x889e('0x3d')][_0x889e('0x43')]);_0x2a0512[_0x889e('0x44')]=qs['filters'](_['pick'](_0x256849['query'],_0x5c0ff4[_0x889e('0x45')]));if(_0x256849[_0x889e('0x3d')][_0x889e('0x46')]){_0x2a0512[_0x889e('0x44')]=_[_0x889e('0x47')](_0x2a0512[_0x889e('0x44')],{'$or':_['map'](_0x159a96,function(_0x2f958a){if(_0x2f958a[_0x889e('0x38')]!==_0x889e('0x48')){var _0xf440e5={};_0xf440e5[_0x2f958a['name']]={'$like':'%'+_0x256849[_0x889e('0x3d')][_0x889e('0x46')]+'%'};return _0xf440e5;}})});}_0x2a0512=_[_0x889e('0x47')]({},_0x2a0512,_0x256849[_0x889e('0x49')]);var _0x20ea1d={'where':_0x2a0512[_0x889e('0x44')]};return db[_0x889e('0x4a')][_0x889e('0x2c')](_0x20ea1d)[_0x889e('0x32')](function(_0x502cdb){_0x478937[_0x889e('0x2c')]=_0x502cdb;if(_0x256849['query'][_0x889e('0x4b')]){_0x2a0512[_0x889e('0x4c')]=[{'all':!![]}];}return db[_0x889e('0x4a')][_0x889e('0x4d')](_0x2a0512);})[_0x889e('0x32')](function(_0x36a191){_0x478937['rows']=_0x36a191;return _0x478937;})[_0x889e('0x32')](respondWithFilteredResult(_0x4d70e8,_0x2a0512))[_0x889e('0x28')](handleError(_0x4d70e8,null));};exports[_0x889e('0x4e')]=function(_0x4122e1,_0x1ff0d8){var _0x1ee591={'raw':!![],'where':{'id':_0x4122e1[_0x889e('0x4f')]['id']}},_0x432b78={};_0x432b78[_0x889e('0x3a')]=_[_0x889e('0x3c')](db['Network']['rawAttributes']);_0x432b78[_0x889e('0x3d')]=_[_0x889e('0x3c')](_0x4122e1[_0x889e('0x3d')]);_0x432b78['filters']=_[_0x889e('0x3e')](_0x432b78[_0x889e('0x3a')],_0x432b78[_0x889e('0x3d')]);_0x1ee591[_0x889e('0x3f')]=_[_0x889e('0x3e')](_0x432b78[_0x889e('0x3a')],qs[_0x889e('0x50')](_0x4122e1[_0x889e('0x3d')][_0x889e('0x50')]));_0x1ee591[_0x889e('0x3f')]=_0x1ee591[_0x889e('0x3f')]['length']?_0x1ee591['attributes']:_0x432b78[_0x889e('0x3a')];if(_0x4122e1['query'][_0x889e('0x4b')]){_0x1ee591[_0x889e('0x4c')]=[{'all':!![]}];}_0x1ee591=_[_0x889e('0x47')]({},_0x1ee591,_0x4122e1[_0x889e('0x49')]);return db[_0x889e('0x4a')][_0x889e('0x51')](_0x1ee591)['then'](handleEntityNotFound(_0x1ff0d8,null))[_0x889e('0x32')](respondWithResult(_0x1ff0d8,null))[_0x889e('0x28')](handleError(_0x1ff0d8,null));};exports[_0x889e('0x52')]=function(_0x3539ee,_0xc94455,_0x253ae9){var _0x1b4216;return db[_0x889e('0x53')][_0x889e('0x54')](function(_0x5d63e3){return db[_0x889e('0x4a')]['create'](_0x3539ee[_0x889e('0x55')],{'raw':!![]})[_0x889e('0x32')](function(_0x480aaf){_0x1b4216=_0x480aaf;return db[_0x889e('0x4a')]['findAll']({'where':{'type':_0x3539ee[_0x889e('0x55')]['type']},'raw':!![]});})['then'](function(_0x441bc5){if(_0x1b4216[_0x889e('0x38')]['toUpperCase']()==_0x889e('0x56')){var _0x33b657=fs['readFileSync'](path['join'](config[_0x889e('0x57')],'server/files/templates/stun_multiple.ejs'),'utf8');var _0x5944eb=ejs['render'](_0x33b657,{'networks':_0x441bc5||[]});fs[_0x889e('0x58')](_0x889e('0x59'),_0x5944eb);return respondWithRpcPromise(_0x889e('0x5a'),'create',{'module':_0x889e('0x5b')});}else if(_0x1b4216[_0x889e('0x38')][_0x889e('0x5c')]()==_0x889e('0x5d')){var _0x1153b0=fs[_0x889e('0x5e')](path[_0x889e('0x5f')](config[_0x889e('0x57')],'server/files/templates/turn_multiple.ejs'),'utf8');var _0x23d9aa=ejs['render'](_0x1153b0,{'networks':_0x441bc5||[]});fs[_0x889e('0x58')]('/etc/asterisk/turn_xcally.conf',_0x23d9aa);return respondWithRpcPromise('Reload',_0x889e('0x52'),{'module':_0x889e('0x5b')});}else{var _0x13387c=fs[_0x889e('0x5e')](path[_0x889e('0x5f')](config['root'],_0x889e('0x60')),'utf8');var _0x505241=ejs[_0x889e('0x61')](_0x13387c,{'networks':_0x441bc5||[]});fs[_0x889e('0x58')](util[_0x889e('0x62')](_0x889e('0x63'),_0x3539ee[_0x889e('0x55')][_0x889e('0x38')]['toLowerCase']()),_0x505241);return respondWithRpcPromise('Reload',_0x889e('0x52'),{'module':_0x889e('0x64')});}return null;})[_0x889e('0x32')](function(){return _0x1b4216;});})['then'](respondWithResult(_0xc94455,0xc9))[_0x889e('0x28')](handleError(_0xc94455,null));};exports[_0x889e('0x65')]=function(_0x24071d,_0xf59a80,_0x4ca2aa){var _0x440e5a;return db[_0x889e('0x53')][_0x889e('0x54')](function(_0x2b5428){return db[_0x889e('0x4a')][_0x889e('0x51')]({'where':{'id':_0x24071d[_0x889e('0x4f')]['id']}})[_0x889e('0x32')](handleEntityNotFound(_0xf59a80,null))[_0x889e('0x32')](saveUpdates(_0x24071d['body'],null))[_0x889e('0x32')](function(_0x4b6f2d){if(_0x4b6f2d){_0x440e5a=_0x4b6f2d;return db[_0x889e('0x4a')][_0x889e('0x4d')]({'where':{'type':_0x440e5a['type']},'raw':!![]});}return null;})[_0x889e('0x32')](function(_0x3db91e){if(_0x440e5a[_0x889e('0x38')][_0x889e('0x5c')]()==_0x889e('0x56')){var _0x38c801=fs['readFileSync'](path['join'](config[_0x889e('0x57')],_0x889e('0x66')),'utf8');var _0x2079a2=ejs['render'](_0x38c801,{'networks':_0x3db91e||[]});fs[_0x889e('0x58')](_0x889e('0x59'),_0x2079a2);return respondWithRpcPromise(_0x889e('0x5a'),_0x889e('0x65'),{'module':'res_stun_monitor.so'});}else if(_0x440e5a[_0x889e('0x38')][_0x889e('0x5c')]()==_0x889e('0x5d')){var _0x3bd050=fs[_0x889e('0x5e')](path['join'](config['root'],_0x889e('0x67')),_0x889e('0x68'));var _0x3e1a5=ejs['render'](_0x3bd050,{'networks':_0x3db91e||[]});fs[_0x889e('0x58')](_0x889e('0x69'),_0x3e1a5);return respondWithRpcPromise(_0x889e('0x5a'),'update',{'module':_0x889e('0x5b')});}else{var _0x5a2e15=fs[_0x889e('0x5e')](path[_0x889e('0x5f')](config[_0x889e('0x57')],_0x889e('0x60')),_0x889e('0x68'));var _0x34d659=ejs['render'](_0x5a2e15,{'networks':_0x3db91e||[]});fs['writeFileSync'](util['format'](_0x889e('0x63'),_0x24071d[_0x889e('0x55')][_0x889e('0x38')][_0x889e('0x6a')]()),_0x34d659);return respondWithRpcPromise(_0x889e('0x5a'),_0x889e('0x65'),{'module':_0x889e('0x64')});}return null;})[_0x889e('0x32')](function(_0x5f4a9f){if(_0x5f4a9f){return _0x440e5a;}return null;});})[_0x889e('0x32')](respondWithResult(_0xf59a80,null))[_0x889e('0x28')](handleError(_0xf59a80,null));};exports[_0x889e('0x33')]=function(_0x7da045,_0x572c1b,_0x4d5cc7){var _0x4a9718;return db[_0x889e('0x4a')][_0x889e('0x51')]({'where':{'id':_0x7da045[_0x889e('0x4f')]['id']}})['then'](function(_0x24f69e){_0x4a9718=_0x24f69e;return _0x24f69e;})[_0x889e('0x32')](handleEntityNotFound(_0x572c1b,null))[_0x889e('0x32')](removeEntity(_0x572c1b,null))['then'](function(){if(_0x4a9718){return db['Network'][_0x889e('0x4d')]({'where':{'type':_0x4a9718[_0x889e('0x38')]},'raw':!![]});}})[_0x889e('0x32')](function(_0x345bc4){if(_0x4a9718['type'][_0x889e('0x5c')]()==_0x889e('0x56')){var _0x29829d=fs['readFileSync'](path[_0x889e('0x5f')](config['root'],_0x889e('0x66')),_0x889e('0x68'));var _0x534771=ejs[_0x889e('0x61')](_0x29829d,{'networks':_0x345bc4||[]});fs[_0x889e('0x58')](_0x889e('0x59'),_0x534771);return respondWithRpcPromise('Reload','destroy',{'module':'res_stun_monitor.so'});}else if(_0x4a9718[_0x889e('0x38')][_0x889e('0x5c')]()=='TURN'){var _0x45f1c6=fs[_0x889e('0x5e')](path['join'](config[_0x889e('0x57')],_0x889e('0x67')),_0x889e('0x68'));var _0x2cfb79=ejs[_0x889e('0x61')](_0x45f1c6,{'networks':_0x345bc4||[]});fs[_0x889e('0x58')](_0x889e('0x69'),_0x2cfb79);return respondWithRpcPromise(_0x889e('0x5a'),_0x889e('0x33'),{'module':'res_stun_monitor.so'});}else{var _0x441155=fs[_0x889e('0x5e')](path['join'](config[_0x889e('0x57')],_0x889e('0x60')),_0x889e('0x68'));var _0x129456=ejs['render'](_0x441155,{'networks':_0x345bc4||[]});fs[_0x889e('0x58')](util[_0x889e('0x62')]('/etc/asterisk/sip_xcally_%s.conf',_0x7da045[_0x889e('0x55')][_0x889e('0x38')]['toLowerCase']()),_0x129456);return respondWithRpcPromise(_0x889e('0x5a'),_0x889e('0x33'),{'module':_0x889e('0x64')});}return null;})[_0x889e('0x28')](handleError(_0x572c1b,null));};