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 _0x525e=['format','chan_sip.so','sequelize','server/files/templates/stun_multiple.ejs','res_stun_monitor.so','/etc/asterisk/sip_xcally_%s.conf','server/files/templates/turn_multiple.ejs','server/files/templates/network.ejs','toLowerCase','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','jayson/promise','client','http','test','Sequelize','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','info','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','message','Network,\x20%s,\x20%s','result','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','then','destroy','name','send','index','map','Network','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','sort','pick','filter','where','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','keys','find','transaction','body','toUpperCase','STUN','readFileSync','utf8','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','create','TURN','join','root','render','/etc/asterisk/turn_xcally.conf'];(function(_0xbe18c1,_0x4c0bb3){var _0xcaaf01=function(_0x27d071){while(--_0x27d071){_0xbe18c1['push'](_0xbe18c1['shift']());}};_0xcaaf01(++_0x4c0bb3);}(_0x525e,0x78));var _0xe525=function(_0x2fceed,_0xd983dc){_0x2fceed=_0x2fceed-0x0;var _0x28f0f3=_0x525e[_0x2fceed];return _0x28f0f3;};'use strict';var pdf=require(_0xe525('0x0'));var emlformat=require(_0xe525('0x1'));var rimraf=require(_0xe525('0x2'));var zipdir=require(_0xe525('0x3'));var jsonpatch=require(_0xe525('0x4'));var rp=require(_0xe525('0x5'));var moment=require(_0xe525('0x6'));var BPromise=require(_0xe525('0x7'));var Mustache=require('mustache');var util=require(_0xe525('0x8'));var path=require(_0xe525('0x9'));var sox=require(_0xe525('0xa'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0xe525('0xb'));var squel=require('squel');var crypto=require(_0xe525('0xc'));var jsforce=require(_0xe525('0xd'));var deskjs=require(_0xe525('0xe'));var toCsv=require(_0xe525('0xf'));var querystring=require(_0xe525('0x10'));var Papa=require(_0xe525('0x11'));var Redis=require(_0xe525('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xe525('0x13'));var as=require(_0xe525('0x14'));var hardwareService=require(_0xe525('0x15'));var logger=require(_0xe525('0x16'))(_0xe525('0x17'));var utils=require('../../config/utils');var config=require(_0xe525('0x18'));var db=require(_0xe525('0x19'))['db'];var jayson=require(_0xe525('0x1a'));var client=jayson[_0xe525('0x1b')][_0xe525('0x1c')]({'port':0x232a});function checkPasswordPattern(_0x1faf27,_0x348915,_0x222d90){if(_0x222d90){var _0xa275c4=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0xa275c4[_0xe525('0x1d')](_0x348915)){return _0x1faf27;}else{throw new db[(_0xe525('0x1e'))]['ValidationError'](_0xe525('0x1f'));}}else{return _0x1faf27;}}function respondWithRpcPromise(_0x31e108,_0x1d7f16,_0x4ef025,_0x2488b7){return new BPromise(function(_0x2ded1c,_0x23d220){var _0x107f40=_0x2488b7||client;return _0x107f40[_0xe525('0x20')](_0x31e108,_0x4ef025)['then'](function(_0x5558d9){logger[_0xe525('0x21')]('Network,\x20%s,\x20%s',_0x1d7f16,_0xe525('0x22'));logger[_0xe525('0x23')](_0xe525('0x24'),_0x1d7f16,_0xe525('0x22'),JSON[_0xe525('0x25')](_0x5558d9));if(_0x5558d9[_0xe525('0x26')]){if(_0x5558d9[_0xe525('0x26')]['code']===0x1f4){logger['error']('Network,\x20%s,\x20%s',_0x1d7f16,_0x5558d9['error'][_0xe525('0x27')]);return _0x23d220(_0x5558d9[_0xe525('0x26')][_0xe525('0x27')]);}logger[_0xe525('0x26')](_0xe525('0x28'),_0x1d7f16,_0x5558d9[_0xe525('0x26')][_0xe525('0x27')]);return _0x2ded1c(_0x5558d9['error'][_0xe525('0x27')]);}else{logger[_0xe525('0x21')]('Network,\x20%s,\x20%s',_0x1d7f16,_0xe525('0x22'));_0x2ded1c(_0x5558d9[_0xe525('0x29')][_0xe525('0x27')]);}})['catch'](function(_0x6fc035){logger[_0xe525('0x26')](_0xe525('0x28'),_0x1d7f16,_0x6fc035);_0x23d220(_0x6fc035);});});}function respondWithStatusCode(_0x121980,_0x42a428){_0x42a428=_0x42a428||0xcc;return function(_0x4d5226){if(_0x4d5226){return _0x121980[_0xe525('0x2a')](_0x42a428);}return _0x121980[_0xe525('0x2b')](_0x42a428)[_0xe525('0x2c')]();};}function respondWithResult(_0x2872b9,_0x44098a){_0x44098a=_0x44098a||0xc8;return function(_0x517849){if(_0x517849){return _0x2872b9[_0xe525('0x2b')](_0x44098a)[_0xe525('0x2d')](_0x517849);}};}function respondWithFilteredResult(_0x3facd4,_0x43a4da){return function(_0x537728){if(_0x537728){var _0x1112a8=_0x537728[_0xe525('0x2e')],_0x2d2623=_0x43a4da['offset'],_0xc75d0f=_0x43a4da[_0xe525('0x2f')]+_0x43a4da[_0xe525('0x30')],_0x4bccb3;if(_0xc75d0f>=_0x1112a8){_0xc75d0f=_0x1112a8;_0x4bccb3=0xc8;}else{_0x4bccb3=0xce;}_0x3facd4['status'](_0x4bccb3);return _0x3facd4[_0xe525('0x31')]('Content-Range',_0x2d2623+'-'+_0xc75d0f+'/'+_0x1112a8)[_0xe525('0x2d')](_0x537728);}return null;};}function patchUpdates(_0x2c4a12){return function(_0x534545){try{jsonpatch[_0xe525('0x32')](_0x534545,_0x2c4a12,!![]);}catch(_0x57dafc){return BPromise[_0xe525('0x33')](_0x57dafc);}return _0x534545[_0xe525('0x34')]();};}function saveUpdates(_0x1af210,_0x263ef4){return function(_0x1ef0ba){if(_0x1ef0ba){return _0x1ef0ba[_0xe525('0x35')](_0x1af210)[_0xe525('0x36')](function(_0x8bdb8){return _0x8bdb8;});}return null;};}function removeEntity(_0xf645,_0x3f3964){return function(_0x1f28a7){if(_0x1f28a7){return _0x1f28a7[_0xe525('0x37')]()[_0xe525('0x36')](function(){_0xf645[_0xe525('0x2b')](0xcc)[_0xe525('0x2c')]();});}};}function handleEntityNotFound(_0x38ac7a,_0x4e386b){return function(_0x37fc67){if(!_0x37fc67){_0x38ac7a[_0xe525('0x2a')](0x194);}return _0x37fc67;};}function handleError(_0x35833e,_0x4e6e5f){_0x4e6e5f=_0x4e6e5f||0x1f4;return function(_0x18f322){logger['error'](_0x18f322['stack']);if(_0x18f322[_0xe525('0x38')]){delete _0x18f322['name'];}_0x35833e['status'](_0x4e6e5f)[_0xe525('0x39')](_0x18f322);};}exports[_0xe525('0x3a')]=function(_0x2e85b6,_0x573191){var _0x27b3af={},_0x5a2c57={},_0x47fea5={'count':0x0,'rows':[]};var _0x27b2a1=_[_0xe525('0x3b')](db[_0xe525('0x3c')][_0xe525('0x3d')],function(_0x332f47){return{'name':_0x332f47[_0xe525('0x3e')],'type':_0x332f47[_0xe525('0x3f')][_0xe525('0x40')]};});_0x5a2c57[_0xe525('0x41')]=_[_0xe525('0x3b')](_0x27b2a1,_0xe525('0x38'));_0x5a2c57[_0xe525('0x42')]=_['keys'](_0x2e85b6[_0xe525('0x42')]);_0x5a2c57[_0xe525('0x43')]=_[_0xe525('0x44')](_0x5a2c57['model'],_0x5a2c57[_0xe525('0x42')]);_0x27b3af[_0xe525('0x45')]=_['intersection'](_0x5a2c57[_0xe525('0x41')],qs['fields'](_0x2e85b6[_0xe525('0x42')][_0xe525('0x46')]));_0x27b3af[_0xe525('0x45')]=_0x27b3af[_0xe525('0x45')][_0xe525('0x47')]?_0x27b3af[_0xe525('0x45')]:_0x5a2c57[_0xe525('0x41')];if(!_0x2e85b6[_0xe525('0x42')]['hasOwnProperty']('nolimit')){_0x27b3af[_0xe525('0x30')]=qs['limit'](_0x2e85b6[_0xe525('0x42')]['limit']);_0x27b3af[_0xe525('0x2f')]=qs['offset'](_0x2e85b6[_0xe525('0x42')][_0xe525('0x2f')]);}_0x27b3af['order']=qs['sort'](_0x2e85b6[_0xe525('0x42')][_0xe525('0x48')]);_0x27b3af['where']=qs[_0xe525('0x43')](_[_0xe525('0x49')](_0x2e85b6[_0xe525('0x42')],_0x5a2c57[_0xe525('0x43')]),_0x27b2a1);if(_0x2e85b6['query'][_0xe525('0x4a')]){_0x27b3af[_0xe525('0x4b')]=_[_0xe525('0x4c')](_0x27b3af[_0xe525('0x4b')],{'$or':_[_0xe525('0x3b')](_0x27b2a1,function(_0x4efddf){if(_0x4efddf[_0xe525('0x3f')]!==_0xe525('0x4d')){var _0x964541={};_0x964541[_0x4efddf[_0xe525('0x38')]]={'$like':'%'+_0x2e85b6[_0xe525('0x42')]['filter']+'%'};return _0x964541;}})});}_0x27b3af=_['merge']({},_0x27b3af,_0x2e85b6[_0xe525('0x4e')]);var _0x3d2c0f={'where':_0x27b3af['where']};return db[_0xe525('0x3c')][_0xe525('0x2e')](_0x3d2c0f)[_0xe525('0x36')](function(_0x12fb48){_0x47fea5[_0xe525('0x2e')]=_0x12fb48;if(_0x2e85b6[_0xe525('0x42')]['includeAll']){_0x27b3af[_0xe525('0x4f')]=[{'all':!![]}];}return db[_0xe525('0x3c')][_0xe525('0x50')](_0x27b3af);})[_0xe525('0x36')](function(_0x2211dd){_0x47fea5[_0xe525('0x51')]=_0x2211dd;return _0x47fea5;})[_0xe525('0x36')](respondWithFilteredResult(_0x573191,_0x27b3af))[_0xe525('0x52')](handleError(_0x573191,null));};exports[_0xe525('0x53')]=function(_0x368fd7,_0x380601){var _0x365194={'raw':!![],'where':{'id':_0x368fd7[_0xe525('0x54')]['id']}},_0x59c6e5={};_0x59c6e5['model']=_[_0xe525('0x55')](db[_0xe525('0x3c')]['rawAttributes']);_0x59c6e5[_0xe525('0x42')]=_[_0xe525('0x55')](_0x368fd7[_0xe525('0x42')]);_0x59c6e5[_0xe525('0x43')]=_[_0xe525('0x44')](_0x59c6e5[_0xe525('0x41')],_0x59c6e5[_0xe525('0x42')]);_0x365194[_0xe525('0x45')]=_[_0xe525('0x44')](_0x59c6e5[_0xe525('0x41')],qs[_0xe525('0x46')](_0x368fd7[_0xe525('0x42')][_0xe525('0x46')]));_0x365194[_0xe525('0x45')]=_0x365194[_0xe525('0x45')][_0xe525('0x47')]?_0x365194[_0xe525('0x45')]:_0x59c6e5[_0xe525('0x41')];if(_0x368fd7[_0xe525('0x42')]['includeAll']){_0x365194[_0xe525('0x4f')]=[{'all':!![]}];}_0x365194=_[_0xe525('0x4c')]({},_0x365194,_0x368fd7[_0xe525('0x4e')]);return db[_0xe525('0x3c')][_0xe525('0x56')](_0x365194)[_0xe525('0x36')](handleEntityNotFound(_0x380601,null))[_0xe525('0x36')](respondWithResult(_0x380601,null))[_0xe525('0x52')](handleError(_0x380601,null));};exports['create']=function(_0x3efdc6,_0x3189c9,_0x5de3b7){var _0x5b046d;return db['sequelize'][_0xe525('0x57')](function(_0x3466c3){return db[_0xe525('0x3c')]['create'](_0x3efdc6[_0xe525('0x58')],{'raw':!![]})[_0xe525('0x36')](function(_0x46aa56){_0x5b046d=_0x46aa56;return db['Network'][_0xe525('0x50')]({'where':{'type':_0x3efdc6['body'][_0xe525('0x3f')]},'raw':!![]});})[_0xe525('0x36')](function(_0x36f0b8){if(_0x5b046d[_0xe525('0x3f')][_0xe525('0x59')]()==_0xe525('0x5a')){var _0x5e150c=fs[_0xe525('0x5b')](path['join'](config['root'],'server/files/templates/stun_multiple.ejs'),_0xe525('0x5c'));var _0x10b71b=ejs['render'](_0x5e150c,{'networks':_0x36f0b8||[]});fs[_0xe525('0x5d')](_0xe525('0x5e'),_0x10b71b);return respondWithRpcPromise(_0xe525('0x5f'),_0xe525('0x60'),{'module':'res_stun_monitor.so'});}else if(_0x5b046d['type'][_0xe525('0x59')]()==_0xe525('0x61')){var _0x157015=fs[_0xe525('0x5b')](path[_0xe525('0x62')](config[_0xe525('0x63')],'server/files/templates/turn_multiple.ejs'),_0xe525('0x5c'));var _0x43815b=ejs[_0xe525('0x64')](_0x157015,{'networks':_0x36f0b8||[]});fs[_0xe525('0x5d')](_0xe525('0x65'),_0x43815b);return respondWithRpcPromise(_0xe525('0x5f'),_0xe525('0x60'),{'module':'res_stun_monitor.so'});}else{var _0x3a04a0=fs[_0xe525('0x5b')](path['join'](config['root'],'server/files/templates/network.ejs'),_0xe525('0x5c'));var _0x311cf7=ejs['render'](_0x3a04a0,{'networks':_0x36f0b8||[]});fs['writeFileSync'](util[_0xe525('0x66')]('/etc/asterisk/sip_xcally_%s.conf',_0x3efdc6['body'][_0xe525('0x3f')]['toLowerCase']()),_0x311cf7);return respondWithRpcPromise(_0xe525('0x5f'),_0xe525('0x60'),{'module':_0xe525('0x67')});}return null;})['then'](function(){return _0x5b046d;});})[_0xe525('0x36')](respondWithResult(_0x3189c9,0xc9))[_0xe525('0x52')](handleError(_0x3189c9,null));};exports[_0xe525('0x35')]=function(_0x42a095,_0x3c5918,_0x4ba1ab){var _0x3dd6d7;return db[_0xe525('0x68')]['transaction'](function(_0x350d97){return db['Network']['find']({'where':{'id':_0x42a095[_0xe525('0x54')]['id']}})[_0xe525('0x36')](handleEntityNotFound(_0x3c5918,null))[_0xe525('0x36')](saveUpdates(_0x42a095['body'],null))[_0xe525('0x36')](function(_0x42a930){if(_0x42a930){_0x3dd6d7=_0x42a930;return db['Network'][_0xe525('0x50')]({'where':{'type':_0x3dd6d7[_0xe525('0x3f')]},'raw':!![]});}return null;})[_0xe525('0x36')](function(_0x5a5269){if(_0x3dd6d7[_0xe525('0x3f')]['toUpperCase']()=='STUN'){var _0x3b8477=fs[_0xe525('0x5b')](path[_0xe525('0x62')](config[_0xe525('0x63')],_0xe525('0x69')),_0xe525('0x5c'));var _0xdb08ac=ejs[_0xe525('0x64')](_0x3b8477,{'networks':_0x5a5269||[]});fs['writeFileSync'](_0xe525('0x5e'),_0xdb08ac);return respondWithRpcPromise(_0xe525('0x5f'),'update',{'module':_0xe525('0x6a')});}else if(_0x3dd6d7[_0xe525('0x3f')][_0xe525('0x59')]()==_0xe525('0x61')){var _0x1706c2=fs['readFileSync'](path[_0xe525('0x62')](config['root'],'server/files/templates/turn_multiple.ejs'),_0xe525('0x5c'));var _0x23bae9=ejs['render'](_0x1706c2,{'networks':_0x5a5269||[]});fs[_0xe525('0x5d')](_0xe525('0x65'),_0x23bae9);return respondWithRpcPromise(_0xe525('0x5f'),_0xe525('0x35'),{'module':_0xe525('0x6a')});}else{var _0x2cf4f8=fs[_0xe525('0x5b')](path[_0xe525('0x62')](config['root'],'server/files/templates/network.ejs'),_0xe525('0x5c'));var _0x57fc0e=ejs[_0xe525('0x64')](_0x2cf4f8,{'networks':_0x5a5269||[]});fs[_0xe525('0x5d')](util[_0xe525('0x66')](_0xe525('0x6b'),_0x42a095[_0xe525('0x58')][_0xe525('0x3f')]['toLowerCase']()),_0x57fc0e);return respondWithRpcPromise(_0xe525('0x5f'),_0xe525('0x35'),{'module':_0xe525('0x67')});}return null;})[_0xe525('0x36')](function(_0x184266){if(_0x184266){return _0x3dd6d7;}return null;});})[_0xe525('0x36')](respondWithResult(_0x3c5918,null))['catch'](handleError(_0x3c5918,null));};exports[_0xe525('0x37')]=function(_0x317100,_0x38e7a4,_0x21ce8c){var _0x20480b;return db[_0xe525('0x3c')][_0xe525('0x56')]({'where':{'id':_0x317100[_0xe525('0x54')]['id']}})[_0xe525('0x36')](function(_0x4e1529){_0x20480b=_0x4e1529;return _0x4e1529;})[_0xe525('0x36')](handleEntityNotFound(_0x38e7a4,null))[_0xe525('0x36')](removeEntity(_0x38e7a4,null))[_0xe525('0x36')](function(){if(_0x20480b){return db['Network'][_0xe525('0x50')]({'where':{'type':_0x20480b[_0xe525('0x3f')]},'raw':!![]});}})[_0xe525('0x36')](function(_0x492438){if(_0x20480b[_0xe525('0x3f')][_0xe525('0x59')]()==_0xe525('0x5a')){var _0x4258bb=fs[_0xe525('0x5b')](path[_0xe525('0x62')](config[_0xe525('0x63')],'server/files/templates/stun_multiple.ejs'),_0xe525('0x5c'));var _0x99a41c=ejs[_0xe525('0x64')](_0x4258bb,{'networks':_0x492438||[]});fs[_0xe525('0x5d')]('/etc/asterisk/stun_xcally.conf',_0x99a41c);return respondWithRpcPromise(_0xe525('0x5f'),'destroy',{'module':_0xe525('0x6a')});}else if(_0x20480b['type'][_0xe525('0x59')]()==_0xe525('0x61')){var _0xedf15c=fs[_0xe525('0x5b')](path[_0xe525('0x62')](config['root'],_0xe525('0x6c')),_0xe525('0x5c'));var _0x163288=ejs[_0xe525('0x64')](_0xedf15c,{'networks':_0x492438||[]});fs[_0xe525('0x5d')](_0xe525('0x65'),_0x163288);return respondWithRpcPromise(_0xe525('0x5f'),_0xe525('0x37'),{'module':'res_stun_monitor.so'});}else{var _0x1ca5c5=fs[_0xe525('0x5b')](path[_0xe525('0x62')](config[_0xe525('0x63')],_0xe525('0x6d')),_0xe525('0x5c'));var _0x21915a=ejs[_0xe525('0x64')](_0x1ca5c5,{'networks':_0x492438||[]});fs[_0xe525('0x5d')](util[_0xe525('0x66')](_0xe525('0x6b'),_0x317100[_0xe525('0x58')][_0xe525('0x3f')][_0xe525('0x6e')]()),_0x21915a);return respondWithRpcPromise(_0xe525('0x5f'),_0xe525('0x37'),{'module':_0xe525('0x67')});}return null;})[_0xe525('0x52')](handleError(_0x38e7a4,null));};