Built motion from commit (unavailable).|2.5.2
[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 _0xb0e4=['pick','filter','where','merge','map','options','include','findAll','catch','show','params','find','create','transaction','body','toUpperCase','STUN','readFileSync','join','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','root','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','server/files/templates/network.ejs','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','jayson/promise','client','http','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','reject','update','destroy','stack','name','Network','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort'];(function(_0x16e9de,_0x242608){var _0x3afb64=function(_0x372d65){while(--_0x372d65){_0x16e9de['push'](_0x16e9de['shift']());}};_0x3afb64(++_0x242608);}(_0xb0e4,0x15e));var _0x4b0e=function(_0x243b59,_0x3f9495){_0x243b59=_0x243b59-0x0;var _0x3e1676=_0xb0e4[_0x243b59];return _0x3e1676;};'use strict';var pdf=require(_0x4b0e('0x0'));var emlformat=require(_0x4b0e('0x1'));var rimraf=require(_0x4b0e('0x2'));var zipdir=require(_0x4b0e('0x3'));var jsonpatch=require(_0x4b0e('0x4'));var rp=require('request-promise');var moment=require(_0x4b0e('0x5'));var BPromise=require(_0x4b0e('0x6'));var Mustache=require(_0x4b0e('0x7'));var util=require('util');var path=require(_0x4b0e('0x8'));var sox=require(_0x4b0e('0x9'));var csv=require(_0x4b0e('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x4b0e('0xb'));var crypto=require(_0x4b0e('0xc'));var jsforce=require(_0x4b0e('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x4b0e('0xe'));var Papa=require('papaparse');var Redis=require(_0x4b0e('0xf'));var authService=require(_0x4b0e('0x10'));var qs=require(_0x4b0e('0x11'));var as=require(_0x4b0e('0x12'));var hardwareService=require(_0x4b0e('0x13'));var logger=require(_0x4b0e('0x14'))(_0x4b0e('0x15'));var utils=require(_0x4b0e('0x16'));var config=require(_0x4b0e('0x17'));var db=require('../../mysqldb')['db'];var jayson=require(_0x4b0e('0x18'));var client=jayson[_0x4b0e('0x19')][_0x4b0e('0x1a')]({'port':0x232a});function checkPasswordPattern(_0x1c7bd7,_0x1b5556,_0x2e336a){if(_0x2e336a){var _0x5962e7=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x5962e7['test'](_0x1b5556)){return _0x1c7bd7;}else{throw new db['Sequelize']['ValidationError'](_0x4b0e('0x1b'));}}else{return _0x1c7bd7;}}function respondWithRpcPromise(_0x44454e,_0x274d41,_0x5c3fa9,_0x291cc8){return new BPromise(function(_0x3dc98d,_0x272d9d){var _0x1a109d=_0x291cc8||client;return _0x1a109d[_0x4b0e('0x1c')](_0x44454e,_0x5c3fa9)[_0x4b0e('0x1d')](function(_0x1cdde9){logger[_0x4b0e('0x1e')](_0x4b0e('0x1f'),_0x274d41,_0x4b0e('0x20'));logger[_0x4b0e('0x21')](_0x4b0e('0x22'),_0x274d41,_0x4b0e('0x20'),JSON[_0x4b0e('0x23')](_0x1cdde9));if(_0x1cdde9[_0x4b0e('0x24')]){if(_0x1cdde9['error'][_0x4b0e('0x25')]===0x1f4){logger[_0x4b0e('0x24')]('Network,\x20%s,\x20%s',_0x274d41,_0x1cdde9[_0x4b0e('0x24')][_0x4b0e('0x26')]);return _0x272d9d(_0x1cdde9[_0x4b0e('0x24')][_0x4b0e('0x26')]);}logger[_0x4b0e('0x24')]('Network,\x20%s,\x20%s',_0x274d41,_0x1cdde9[_0x4b0e('0x24')][_0x4b0e('0x26')]);return _0x3dc98d(_0x1cdde9['error']['message']);}else{logger[_0x4b0e('0x1e')]('Network,\x20%s,\x20%s',_0x274d41,_0x4b0e('0x20'));_0x3dc98d(_0x1cdde9[_0x4b0e('0x27')][_0x4b0e('0x26')]);}})['catch'](function(_0x432244){logger[_0x4b0e('0x24')](_0x4b0e('0x1f'),_0x274d41,_0x432244);_0x272d9d(_0x432244);});});}function respondWithStatusCode(_0x3117d9,_0x5fd605){_0x5fd605=_0x5fd605||0xcc;return function(_0x45dcfa){if(_0x45dcfa){return _0x3117d9[_0x4b0e('0x28')](_0x5fd605);}return _0x3117d9[_0x4b0e('0x29')](_0x5fd605)[_0x4b0e('0x2a')]();};}function respondWithResult(_0x3b87d1,_0x3a27c7){_0x3a27c7=_0x3a27c7||0xc8;return function(_0x128a99){if(_0x128a99){return _0x3b87d1[_0x4b0e('0x29')](_0x3a27c7)['json'](_0x128a99);}};}function respondWithFilteredResult(_0x42620e,_0x3f731d){return function(_0x4ef091){if(_0x4ef091){var _0x19f9e3=_0x4ef091[_0x4b0e('0x2b')],_0x166626=_0x3f731d[_0x4b0e('0x2c')],_0x1cbd18=_0x3f731d[_0x4b0e('0x2c')]+_0x3f731d[_0x4b0e('0x2d')],_0x510df5;if(_0x1cbd18>=_0x19f9e3){_0x1cbd18=_0x19f9e3;_0x510df5=0xc8;}else{_0x510df5=0xce;}_0x42620e[_0x4b0e('0x29')](_0x510df5);return _0x42620e[_0x4b0e('0x2e')](_0x4b0e('0x2f'),_0x166626+'-'+_0x1cbd18+'/'+_0x19f9e3)[_0x4b0e('0x30')](_0x4ef091);}return null;};}function patchUpdates(_0xb0c67d){return function(_0x1b24bf){try{jsonpatch[_0x4b0e('0x31')](_0x1b24bf,_0xb0c67d,!![]);}catch(_0x4b080b){return BPromise[_0x4b0e('0x32')](_0x4b080b);}return _0x1b24bf['save']();};}function saveUpdates(_0x2cfacf,_0x369b49){return function(_0x5ae30b){if(_0x5ae30b){return _0x5ae30b[_0x4b0e('0x33')](_0x2cfacf)['then'](function(_0x2ac118){return _0x2ac118;});}return null;};}function removeEntity(_0x16b9b6,_0x5eab87){return function(_0x2f98e2){if(_0x2f98e2){return _0x2f98e2[_0x4b0e('0x34')]()[_0x4b0e('0x1d')](function(){_0x16b9b6[_0x4b0e('0x29')](0xcc)[_0x4b0e('0x2a')]();});}};}function handleEntityNotFound(_0x1d49f9,_0x2bda0c){return function(_0x520194){if(!_0x520194){_0x1d49f9['sendStatus'](0x194);}return _0x520194;};}function handleError(_0x5f0218,_0xf88b2){_0xf88b2=_0xf88b2||0x1f4;return function(_0x3edb86){logger[_0x4b0e('0x24')](_0x3edb86[_0x4b0e('0x35')]);if(_0x3edb86[_0x4b0e('0x36')]){delete _0x3edb86[_0x4b0e('0x36')];}_0x5f0218[_0x4b0e('0x29')](_0xf88b2)['send'](_0x3edb86);};}exports['index']=function(_0x55ab4a,_0x6a7d01){var _0x580ff7={},_0x9935a={},_0x491d10={'count':0x0,'rows':[]};var _0x434ab8=_['map'](db[_0x4b0e('0x37')][_0x4b0e('0x38')],function(_0x1e0284){return{'name':_0x1e0284[_0x4b0e('0x39')],'type':_0x1e0284[_0x4b0e('0x3a')]['key']};});_0x9935a[_0x4b0e('0x3b')]=_['map'](_0x434ab8,_0x4b0e('0x36'));_0x9935a[_0x4b0e('0x3c')]=_[_0x4b0e('0x3d')](_0x55ab4a[_0x4b0e('0x3c')]);_0x9935a[_0x4b0e('0x3e')]=_[_0x4b0e('0x3f')](_0x9935a[_0x4b0e('0x3b')],_0x9935a[_0x4b0e('0x3c')]);_0x580ff7[_0x4b0e('0x40')]=_['intersection'](_0x9935a[_0x4b0e('0x3b')],qs['fields'](_0x55ab4a[_0x4b0e('0x3c')][_0x4b0e('0x41')]));_0x580ff7[_0x4b0e('0x40')]=_0x580ff7[_0x4b0e('0x40')][_0x4b0e('0x42')]?_0x580ff7[_0x4b0e('0x40')]:_0x9935a[_0x4b0e('0x3b')];if(!_0x55ab4a[_0x4b0e('0x3c')]['hasOwnProperty'](_0x4b0e('0x43'))){_0x580ff7[_0x4b0e('0x2d')]=qs[_0x4b0e('0x2d')](_0x55ab4a[_0x4b0e('0x3c')][_0x4b0e('0x2d')]);_0x580ff7['offset']=qs[_0x4b0e('0x2c')](_0x55ab4a[_0x4b0e('0x3c')][_0x4b0e('0x2c')]);}_0x580ff7[_0x4b0e('0x44')]=qs['sort'](_0x55ab4a['query'][_0x4b0e('0x45')]);_0x580ff7['where']=qs['filters'](_[_0x4b0e('0x46')](_0x55ab4a[_0x4b0e('0x3c')],_0x9935a['filters']),_0x434ab8);if(_0x55ab4a['query'][_0x4b0e('0x47')]){_0x580ff7[_0x4b0e('0x48')]=_[_0x4b0e('0x49')](_0x580ff7[_0x4b0e('0x48')],{'$or':_[_0x4b0e('0x4a')](_0x434ab8,function(_0x41c4ca){if(_0x41c4ca[_0x4b0e('0x3a')]!=='VIRTUAL'){var _0x4b9b26={};_0x4b9b26[_0x41c4ca['name']]={'$like':'%'+_0x55ab4a[_0x4b0e('0x3c')][_0x4b0e('0x47')]+'%'};return _0x4b9b26;}})});}_0x580ff7=_[_0x4b0e('0x49')]({},_0x580ff7,_0x55ab4a[_0x4b0e('0x4b')]);var _0x4166ac={'where':_0x580ff7[_0x4b0e('0x48')]};return db[_0x4b0e('0x37')][_0x4b0e('0x2b')](_0x4166ac)[_0x4b0e('0x1d')](function(_0x5cbd28){_0x491d10[_0x4b0e('0x2b')]=_0x5cbd28;if(_0x55ab4a[_0x4b0e('0x3c')]['includeAll']){_0x580ff7[_0x4b0e('0x4c')]=[{'all':!![]}];}return db[_0x4b0e('0x37')][_0x4b0e('0x4d')](_0x580ff7);})[_0x4b0e('0x1d')](function(_0xa3a8bf){_0x491d10['rows']=_0xa3a8bf;return _0x491d10;})[_0x4b0e('0x1d')](respondWithFilteredResult(_0x6a7d01,_0x580ff7))[_0x4b0e('0x4e')](handleError(_0x6a7d01,null));};exports[_0x4b0e('0x4f')]=function(_0x2ce212,_0x590381){var _0x5d1361={'raw':!![],'where':{'id':_0x2ce212[_0x4b0e('0x50')]['id']}},_0x224055={};_0x224055[_0x4b0e('0x3b')]=_[_0x4b0e('0x3d')](db[_0x4b0e('0x37')][_0x4b0e('0x38')]);_0x224055[_0x4b0e('0x3c')]=_[_0x4b0e('0x3d')](_0x2ce212[_0x4b0e('0x3c')]);_0x224055[_0x4b0e('0x3e')]=_[_0x4b0e('0x3f')](_0x224055['model'],_0x224055['query']);_0x5d1361[_0x4b0e('0x40')]=_[_0x4b0e('0x3f')](_0x224055[_0x4b0e('0x3b')],qs[_0x4b0e('0x41')](_0x2ce212['query'][_0x4b0e('0x41')]));_0x5d1361[_0x4b0e('0x40')]=_0x5d1361[_0x4b0e('0x40')][_0x4b0e('0x42')]?_0x5d1361['attributes']:_0x224055[_0x4b0e('0x3b')];if(_0x2ce212['query']['includeAll']){_0x5d1361['include']=[{'all':!![]}];}_0x5d1361=_['merge']({},_0x5d1361,_0x2ce212[_0x4b0e('0x4b')]);return db['Network'][_0x4b0e('0x51')](_0x5d1361)[_0x4b0e('0x1d')](handleEntityNotFound(_0x590381,null))[_0x4b0e('0x1d')](respondWithResult(_0x590381,null))[_0x4b0e('0x4e')](handleError(_0x590381,null));};exports[_0x4b0e('0x52')]=function(_0x1f4757,_0x166630,_0x380335){var _0x474e93;return db['sequelize'][_0x4b0e('0x53')](function(_0x20fd3e){return db[_0x4b0e('0x37')]['create'](_0x1f4757[_0x4b0e('0x54')],{'raw':!![]})['then'](function(_0x462e23){_0x474e93=_0x462e23;return db[_0x4b0e('0x37')][_0x4b0e('0x4d')]({'where':{'type':_0x1f4757['body']['type']},'raw':!![]});})['then'](function(_0x5b1157){if(_0x474e93[_0x4b0e('0x3a')][_0x4b0e('0x55')]()==_0x4b0e('0x56')){var _0x176512=fs[_0x4b0e('0x57')](path[_0x4b0e('0x58')](config['root'],_0x4b0e('0x59')),_0x4b0e('0x5a'));var _0x39395f=ejs[_0x4b0e('0x5b')](_0x176512,{'networks':_0x5b1157||[]});fs[_0x4b0e('0x5c')](_0x4b0e('0x5d'),_0x39395f);return respondWithRpcPromise(_0x4b0e('0x5e'),'create',{'module':_0x4b0e('0x5f')});}else if(_0x474e93[_0x4b0e('0x3a')][_0x4b0e('0x55')]()==_0x4b0e('0x60')){var _0x2a8fe8=fs['readFileSync'](path['join'](config[_0x4b0e('0x61')],_0x4b0e('0x62')),_0x4b0e('0x5a'));var _0x47ff6d=ejs[_0x4b0e('0x5b')](_0x2a8fe8,{'networks':_0x5b1157||[]});fs[_0x4b0e('0x5c')](_0x4b0e('0x63'),_0x47ff6d);return respondWithRpcPromise(_0x4b0e('0x5e'),'create',{'module':_0x4b0e('0x5f')});}else{var _0x3da12f=fs[_0x4b0e('0x57')](path[_0x4b0e('0x58')](config[_0x4b0e('0x61')],'server/files/templates/network.ejs'),_0x4b0e('0x5a'));var _0x5771de=ejs[_0x4b0e('0x5b')](_0x3da12f,{'networks':_0x5b1157||[]});fs[_0x4b0e('0x5c')](util[_0x4b0e('0x64')](_0x4b0e('0x65'),_0x1f4757[_0x4b0e('0x54')][_0x4b0e('0x3a')][_0x4b0e('0x66')]()),_0x5771de);return respondWithRpcPromise(_0x4b0e('0x5e'),'create',{'module':_0x4b0e('0x67')});}return null;})['then'](function(){return _0x474e93;});})[_0x4b0e('0x1d')](respondWithResult(_0x166630,0xc9))['catch'](handleError(_0x166630,null));};exports['update']=function(_0x1f556f,_0x3e22e4,_0x7c8e2b){var _0x5568e8;return db['sequelize']['transaction'](function(_0x5a50b3){return db[_0x4b0e('0x37')][_0x4b0e('0x51')]({'where':{'id':_0x1f556f['params']['id']}})[_0x4b0e('0x1d')](handleEntityNotFound(_0x3e22e4,null))[_0x4b0e('0x1d')](saveUpdates(_0x1f556f['body'],null))[_0x4b0e('0x1d')](function(_0x51597a){if(_0x51597a){_0x5568e8=_0x51597a;return db[_0x4b0e('0x37')]['findAll']({'where':{'type':_0x5568e8[_0x4b0e('0x3a')]},'raw':!![]});}return null;})[_0x4b0e('0x1d')](function(_0x1000e7){if(_0x5568e8[_0x4b0e('0x3a')][_0x4b0e('0x55')]()=='STUN'){var _0x146f75=fs[_0x4b0e('0x57')](path['join'](config[_0x4b0e('0x61')],_0x4b0e('0x59')),_0x4b0e('0x5a'));var _0x562398=ejs[_0x4b0e('0x5b')](_0x146f75,{'networks':_0x1000e7||[]});fs[_0x4b0e('0x5c')](_0x4b0e('0x5d'),_0x562398);return respondWithRpcPromise('Reload','update',{'module':_0x4b0e('0x5f')});}else if(_0x5568e8['type'][_0x4b0e('0x55')]()==_0x4b0e('0x60')){var _0x230163=fs['readFileSync'](path['join'](config[_0x4b0e('0x61')],_0x4b0e('0x62')),_0x4b0e('0x5a'));var _0x329a83=ejs[_0x4b0e('0x5b')](_0x230163,{'networks':_0x1000e7||[]});fs['writeFileSync']('/etc/asterisk/turn_xcally.conf',_0x329a83);return respondWithRpcPromise(_0x4b0e('0x5e'),_0x4b0e('0x33'),{'module':_0x4b0e('0x5f')});}else{var _0x4da503=fs[_0x4b0e('0x57')](path[_0x4b0e('0x58')](config['root'],_0x4b0e('0x68')),_0x4b0e('0x5a'));var _0x457af=ejs[_0x4b0e('0x5b')](_0x4da503,{'networks':_0x1000e7||[]});fs[_0x4b0e('0x5c')](util['format'](_0x4b0e('0x65'),_0x1f556f[_0x4b0e('0x54')]['type']['toLowerCase']()),_0x457af);return respondWithRpcPromise('Reload','update',{'module':_0x4b0e('0x67')});}return null;})['then'](function(_0x3973db){if(_0x3973db){return _0x5568e8;}return null;});})[_0x4b0e('0x1d')](respondWithResult(_0x3e22e4,null))[_0x4b0e('0x4e')](handleError(_0x3e22e4,null));};exports[_0x4b0e('0x34')]=function(_0x2b839b,_0x2157cc,_0x255727){var _0x4fff52;return db['Network'][_0x4b0e('0x51')]({'where':{'id':_0x2b839b[_0x4b0e('0x50')]['id']}})[_0x4b0e('0x1d')](function(_0x1ca7ac){_0x4fff52=_0x1ca7ac;return _0x1ca7ac;})['then'](handleEntityNotFound(_0x2157cc,null))[_0x4b0e('0x1d')](removeEntity(_0x2157cc,null))[_0x4b0e('0x1d')](function(){if(_0x4fff52){return db[_0x4b0e('0x37')][_0x4b0e('0x4d')]({'where':{'type':_0x4fff52['type']},'raw':!![]});}})[_0x4b0e('0x1d')](function(_0x10c097){if(_0x4fff52['type'][_0x4b0e('0x55')]()==_0x4b0e('0x56')){var _0x599f8a=fs[_0x4b0e('0x57')](path['join'](config[_0x4b0e('0x61')],_0x4b0e('0x59')),'utf8');var _0x5ef2c1=ejs[_0x4b0e('0x5b')](_0x599f8a,{'networks':_0x10c097||[]});fs['writeFileSync'](_0x4b0e('0x5d'),_0x5ef2c1);return respondWithRpcPromise('Reload',_0x4b0e('0x34'),{'module':_0x4b0e('0x5f')});}else if(_0x4fff52['type']['toUpperCase']()==_0x4b0e('0x60')){var _0x5aa76d=fs['readFileSync'](path['join'](config[_0x4b0e('0x61')],_0x4b0e('0x62')),_0x4b0e('0x5a'));var _0x2816ed=ejs[_0x4b0e('0x5b')](_0x5aa76d,{'networks':_0x10c097||[]});fs[_0x4b0e('0x5c')]('/etc/asterisk/turn_xcally.conf',_0x2816ed);return respondWithRpcPromise(_0x4b0e('0x5e'),_0x4b0e('0x34'),{'module':_0x4b0e('0x5f')});}else{var _0x18fb27=fs['readFileSync'](path[_0x4b0e('0x58')](config[_0x4b0e('0x61')],'server/files/templates/network.ejs'),_0x4b0e('0x5a'));var _0x1cd8a5=ejs['render'](_0x18fb27,{'networks':_0x10c097||[]});fs[_0x4b0e('0x5c')](util[_0x4b0e('0x64')](_0x4b0e('0x65'),_0x2b839b['body'][_0x4b0e('0x3a')]['toLowerCase']()),_0x1cd8a5);return respondWithRpcPromise('Reload','destroy',{'module':'chan_sip.so'});}return null;})['catch'](handleError(_0x2157cc,null));};