Built motion from commit (unavailable).|2.4.20
[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 _0xd37c=['then','request\x20sent','Network,\x20%s,\x20%s,\x20%s','stringify','error','Network,\x20%s,\x20%s','message','info','result','catch','status','end','json','count','offset','limit','apply','reject','save','update','destroy','sendStatus','stack','name','index','map','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','sort','pick','filter','where','merge','type','VIRTUAL','includeAll','include','Network','findAll','rows','show','params','keys','options','find','sequelize','transaction','create','body','toUpperCase','readFileSync','join','root','server/files/templates/stun_multiple.ejs','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','server/files/templates/turn_multiple.ejs','utf8','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','toLowerCase','chan_sip.so','STUN','/etc/asterisk/sip_xcally_%s.conf','html-pdf','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','ejs','lodash','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','jayson/promise','client','test','request'];(function(_0x4cc25c,_0x224d27){var _0x115a98=function(_0x279664){while(--_0x279664){_0x4cc25c['push'](_0x4cc25c['shift']());}};_0x115a98(++_0x224d27);}(_0xd37c,0x122));var _0xcd37=function(_0xfaacaa,_0x3bee7f){_0xfaacaa=_0xfaacaa-0x0;var _0x39dc54=_0xd37c[_0xfaacaa];return _0x39dc54;};'use strict';var pdf=require(_0xcd37('0x0'));var emlformat=require(_0xcd37('0x1'));var rimraf=require(_0xcd37('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xcd37('0x3'));var rp=require('request-promise');var moment=require(_0xcd37('0x4'));var BPromise=require(_0xcd37('0x5'));var Mustache=require(_0xcd37('0x6'));var util=require(_0xcd37('0x7'));var path=require(_0xcd37('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xcd37('0x9'));var fs=require('fs');var _=require(_0xcd37('0xa'));var squel=require('squel');var crypto=require(_0xcd37('0xb'));var jsforce=require(_0xcd37('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xcd37('0xd'));var querystring=require(_0xcd37('0xe'));var Papa=require(_0xcd37('0xf'));var Redis=require(_0xcd37('0x10'));var authService=require(_0xcd37('0x11'));var qs=require(_0xcd37('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xcd37('0x13'));var logger=require(_0xcd37('0x14'))(_0xcd37('0x15'));var utils=require(_0xcd37('0x16'));var config=require(_0xcd37('0x17'));var db=require('../../mysqldb')['db'];var jayson=require(_0xcd37('0x18'));var client=jayson[_0xcd37('0x19')]['http']({'port':0x232a});function checkPasswordPattern(_0x2f9192,_0x552d8a,_0x31ed10){if(_0x31ed10){var _0x112970=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x112970[_0xcd37('0x1a')](_0x552d8a)){return _0x2f9192;}else{throw new db['Sequelize']['ValidationError']('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 _0x2f9192;}}function respondWithRpcPromise(_0x5816ca,_0x7b4e2f,_0x5e9485,_0x183a25){return new BPromise(function(_0x4e891d,_0x2ad8e4){var _0x442e41=_0x183a25||client;return _0x442e41[_0xcd37('0x1b')](_0x5816ca,_0x5e9485)[_0xcd37('0x1c')](function(_0x34e410){logger['info']('Network,\x20%s,\x20%s',_0x7b4e2f,_0xcd37('0x1d'));logger['debug'](_0xcd37('0x1e'),_0x7b4e2f,_0xcd37('0x1d'),JSON[_0xcd37('0x1f')](_0x34e410));if(_0x34e410['error']){if(_0x34e410[_0xcd37('0x20')]['code']===0x1f4){logger[_0xcd37('0x20')](_0xcd37('0x21'),_0x7b4e2f,_0x34e410['error'][_0xcd37('0x22')]);return _0x2ad8e4(_0x34e410[_0xcd37('0x20')][_0xcd37('0x22')]);}logger[_0xcd37('0x20')](_0xcd37('0x21'),_0x7b4e2f,_0x34e410[_0xcd37('0x20')][_0xcd37('0x22')]);return _0x4e891d(_0x34e410[_0xcd37('0x20')][_0xcd37('0x22')]);}else{logger[_0xcd37('0x23')]('Network,\x20%s,\x20%s',_0x7b4e2f,_0xcd37('0x1d'));_0x4e891d(_0x34e410[_0xcd37('0x24')][_0xcd37('0x22')]);}})[_0xcd37('0x25')](function(_0x1f1d52){logger[_0xcd37('0x20')](_0xcd37('0x21'),_0x7b4e2f,_0x1f1d52);_0x2ad8e4(_0x1f1d52);});});}function respondWithStatusCode(_0x167230,_0x515587){_0x515587=_0x515587||0xcc;return function(_0x12f16a){if(_0x12f16a){return _0x167230['sendStatus'](_0x515587);}return _0x167230[_0xcd37('0x26')](_0x515587)[_0xcd37('0x27')]();};}function respondWithResult(_0x552dd2,_0x5709eb){_0x5709eb=_0x5709eb||0xc8;return function(_0x2651e1){if(_0x2651e1){return _0x552dd2[_0xcd37('0x26')](_0x5709eb)[_0xcd37('0x28')](_0x2651e1);}};}function respondWithFilteredResult(_0x2d06bd,_0x375a40){return function(_0x82a90b){if(_0x82a90b){var _0x3421df=_0x82a90b[_0xcd37('0x29')],_0x420d37=_0x375a40[_0xcd37('0x2a')],_0x5e0bd7=_0x375a40[_0xcd37('0x2a')]+_0x375a40[_0xcd37('0x2b')],_0x259f29;if(_0x5e0bd7>=_0x3421df){_0x5e0bd7=_0x3421df;_0x259f29=0xc8;}else{_0x259f29=0xce;}_0x2d06bd[_0xcd37('0x26')](_0x259f29);return _0x2d06bd['set']('Content-Range',_0x420d37+'-'+_0x5e0bd7+'/'+_0x3421df)[_0xcd37('0x28')](_0x82a90b);}return null;};}function patchUpdates(_0x2b1ef0){return function(_0x5c2900){try{jsonpatch[_0xcd37('0x2c')](_0x5c2900,_0x2b1ef0,!![]);}catch(_0x22138b){return BPromise[_0xcd37('0x2d')](_0x22138b);}return _0x5c2900[_0xcd37('0x2e')]();};}function saveUpdates(_0x22b07f,_0x5c5254){return function(_0x3859a5){if(_0x3859a5){return _0x3859a5[_0xcd37('0x2f')](_0x22b07f)[_0xcd37('0x1c')](function(_0x5241fa){return _0x5241fa;});}return null;};}function removeEntity(_0x297ad3,_0x524eb0){return function(_0x5c5e5d){if(_0x5c5e5d){return _0x5c5e5d[_0xcd37('0x30')]()['then'](function(){_0x297ad3[_0xcd37('0x26')](0xcc)[_0xcd37('0x27')]();});}};}function handleEntityNotFound(_0x131e38,_0x33c898){return function(_0x329281){if(!_0x329281){_0x131e38[_0xcd37('0x31')](0x194);}return _0x329281;};}function handleError(_0x21b339,_0x52a67f){_0x52a67f=_0x52a67f||0x1f4;return function(_0x510ef5){logger[_0xcd37('0x20')](_0x510ef5[_0xcd37('0x32')]);if(_0x510ef5[_0xcd37('0x33')]){delete _0x510ef5[_0xcd37('0x33')];}_0x21b339['status'](_0x52a67f)['send'](_0x510ef5);};}exports[_0xcd37('0x34')]=function(_0x5e8829,_0x326c1a){var _0x434e8a={},_0x3f2612={},_0x2e5054={'count':0x0,'rows':[]};var _0x1ab496=_[_0xcd37('0x35')](db['Network'][_0xcd37('0x36')],function(_0x1be587){return{'name':_0x1be587[_0xcd37('0x37')],'type':_0x1be587['type'][_0xcd37('0x38')]};});_0x3f2612[_0xcd37('0x39')]=_[_0xcd37('0x35')](_0x1ab496,_0xcd37('0x33'));_0x3f2612[_0xcd37('0x3a')]=_['keys'](_0x5e8829['query']);_0x3f2612[_0xcd37('0x3b')]=_[_0xcd37('0x3c')](_0x3f2612[_0xcd37('0x39')],_0x3f2612[_0xcd37('0x3a')]);_0x434e8a[_0xcd37('0x3d')]=_[_0xcd37('0x3c')](_0x3f2612[_0xcd37('0x39')],qs[_0xcd37('0x3e')](_0x5e8829[_0xcd37('0x3a')][_0xcd37('0x3e')]));_0x434e8a['attributes']=_0x434e8a[_0xcd37('0x3d')][_0xcd37('0x3f')]?_0x434e8a['attributes']:_0x3f2612[_0xcd37('0x39')];if(!_0x5e8829['query'][_0xcd37('0x40')]('nolimit')){_0x434e8a[_0xcd37('0x2b')]=qs[_0xcd37('0x2b')](_0x5e8829[_0xcd37('0x3a')][_0xcd37('0x2b')]);_0x434e8a[_0xcd37('0x2a')]=qs[_0xcd37('0x2a')](_0x5e8829[_0xcd37('0x3a')]['offset']);}_0x434e8a['order']=qs['sort'](_0x5e8829[_0xcd37('0x3a')][_0xcd37('0x41')]);_0x434e8a['where']=qs[_0xcd37('0x3b')](_[_0xcd37('0x42')](_0x5e8829[_0xcd37('0x3a')],_0x3f2612[_0xcd37('0x3b')]));if(_0x5e8829['query'][_0xcd37('0x43')]){_0x434e8a[_0xcd37('0x44')]=_[_0xcd37('0x45')](_0x434e8a[_0xcd37('0x44')],{'$or':_[_0xcd37('0x35')](_0x1ab496,function(_0x42774a){if(_0x42774a[_0xcd37('0x46')]!==_0xcd37('0x47')){var _0x3f2c8a={};_0x3f2c8a[_0x42774a[_0xcd37('0x33')]]={'$like':'%'+_0x5e8829['query'][_0xcd37('0x43')]+'%'};return _0x3f2c8a;}})});}_0x434e8a=_[_0xcd37('0x45')]({},_0x434e8a,_0x5e8829['options']);var _0x4fb732={'where':_0x434e8a[_0xcd37('0x44')]};return db['Network'][_0xcd37('0x29')](_0x4fb732)[_0xcd37('0x1c')](function(_0x1420fb){_0x2e5054[_0xcd37('0x29')]=_0x1420fb;if(_0x5e8829[_0xcd37('0x3a')][_0xcd37('0x48')]){_0x434e8a[_0xcd37('0x49')]=[{'all':!![]}];}return db[_0xcd37('0x4a')][_0xcd37('0x4b')](_0x434e8a);})[_0xcd37('0x1c')](function(_0xeaaf34){_0x2e5054[_0xcd37('0x4c')]=_0xeaaf34;return _0x2e5054;})[_0xcd37('0x1c')](respondWithFilteredResult(_0x326c1a,_0x434e8a))['catch'](handleError(_0x326c1a,null));};exports[_0xcd37('0x4d')]=function(_0x8847c1,_0x25d2a3){var _0x2272e6={'raw':!![],'where':{'id':_0x8847c1[_0xcd37('0x4e')]['id']}},_0x2f1a56={};_0x2f1a56[_0xcd37('0x39')]=_[_0xcd37('0x4f')](db[_0xcd37('0x4a')]['rawAttributes']);_0x2f1a56[_0xcd37('0x3a')]=_['keys'](_0x8847c1['query']);_0x2f1a56[_0xcd37('0x3b')]=_['intersection'](_0x2f1a56['model'],_0x2f1a56['query']);_0x2272e6[_0xcd37('0x3d')]=_[_0xcd37('0x3c')](_0x2f1a56['model'],qs['fields'](_0x8847c1[_0xcd37('0x3a')][_0xcd37('0x3e')]));_0x2272e6[_0xcd37('0x3d')]=_0x2272e6[_0xcd37('0x3d')][_0xcd37('0x3f')]?_0x2272e6[_0xcd37('0x3d')]:_0x2f1a56[_0xcd37('0x39')];if(_0x8847c1[_0xcd37('0x3a')][_0xcd37('0x48')]){_0x2272e6[_0xcd37('0x49')]=[{'all':!![]}];}_0x2272e6=_[_0xcd37('0x45')]({},_0x2272e6,_0x8847c1[_0xcd37('0x50')]);return db[_0xcd37('0x4a')][_0xcd37('0x51')](_0x2272e6)[_0xcd37('0x1c')](handleEntityNotFound(_0x25d2a3,null))[_0xcd37('0x1c')](respondWithResult(_0x25d2a3,null))[_0xcd37('0x25')](handleError(_0x25d2a3,null));};exports['create']=function(_0x1a722c,_0x3db315,_0x1c128f){var _0x30b50f;return db[_0xcd37('0x52')][_0xcd37('0x53')](function(_0x58d623){return db['Network'][_0xcd37('0x54')](_0x1a722c[_0xcd37('0x55')],{'raw':!![]})['then'](function(_0x42c6a8){_0x30b50f=_0x42c6a8;return db[_0xcd37('0x4a')][_0xcd37('0x4b')]({'where':{'type':_0x1a722c['body']['type']},'raw':!![]});})['then'](function(_0x4fc838){if(_0x30b50f[_0xcd37('0x46')][_0xcd37('0x56')]()=='STUN'){var _0x1fbaf0=fs[_0xcd37('0x57')](path[_0xcd37('0x58')](config[_0xcd37('0x59')],_0xcd37('0x5a')),'utf8');var _0x367563=ejs[_0xcd37('0x5b')](_0x1fbaf0,{'networks':_0x4fc838||[]});fs[_0xcd37('0x5c')](_0xcd37('0x5d'),_0x367563);return respondWithRpcPromise(_0xcd37('0x5e'),_0xcd37('0x54'),{'module':_0xcd37('0x5f')});}else if(_0x30b50f[_0xcd37('0x46')][_0xcd37('0x56')]()==_0xcd37('0x60')){var _0x123f76=fs['readFileSync'](path['join'](config[_0xcd37('0x59')],_0xcd37('0x61')),_0xcd37('0x62'));var _0x2c0aa0=ejs[_0xcd37('0x5b')](_0x123f76,{'networks':_0x4fc838||[]});fs[_0xcd37('0x5c')](_0xcd37('0x63'),_0x2c0aa0);return respondWithRpcPromise(_0xcd37('0x5e'),'create',{'module':_0xcd37('0x5f')});}else{var _0x41f103=fs[_0xcd37('0x57')](path['join'](config[_0xcd37('0x59')],_0xcd37('0x64')),_0xcd37('0x62'));var _0x1e87a8=ejs[_0xcd37('0x5b')](_0x41f103,{'networks':_0x4fc838||[]});fs[_0xcd37('0x5c')](util[_0xcd37('0x65')]('/etc/asterisk/sip_xcally_%s.conf',_0x1a722c[_0xcd37('0x55')][_0xcd37('0x46')][_0xcd37('0x66')]()),_0x1e87a8);return respondWithRpcPromise(_0xcd37('0x5e'),'create',{'module':_0xcd37('0x67')});}return null;})[_0xcd37('0x1c')](function(){return _0x30b50f;});})['then'](respondWithResult(_0x3db315,0xc9))[_0xcd37('0x25')](handleError(_0x3db315,null));};exports[_0xcd37('0x2f')]=function(_0x37275c,_0x40e6da,_0x2548e6){var _0x4e528a;return db[_0xcd37('0x52')][_0xcd37('0x53')](function(_0x2959b0){return db[_0xcd37('0x4a')][_0xcd37('0x51')]({'where':{'id':_0x37275c[_0xcd37('0x4e')]['id']}})[_0xcd37('0x1c')](handleEntityNotFound(_0x40e6da,null))[_0xcd37('0x1c')](saveUpdates(_0x37275c[_0xcd37('0x55')],null))[_0xcd37('0x1c')](function(_0x5dd001){if(_0x5dd001){_0x4e528a=_0x5dd001;return db[_0xcd37('0x4a')][_0xcd37('0x4b')]({'where':{'type':_0x4e528a[_0xcd37('0x46')]},'raw':!![]});}return null;})[_0xcd37('0x1c')](function(_0x5a0e7f){if(_0x4e528a[_0xcd37('0x46')][_0xcd37('0x56')]()==_0xcd37('0x68')){var _0x537ee6=fs[_0xcd37('0x57')](path['join'](config[_0xcd37('0x59')],'server/files/templates/stun_multiple.ejs'),_0xcd37('0x62'));var _0x519a03=ejs['render'](_0x537ee6,{'networks':_0x5a0e7f||[]});fs[_0xcd37('0x5c')](_0xcd37('0x5d'),_0x519a03);return respondWithRpcPromise(_0xcd37('0x5e'),_0xcd37('0x2f'),{'module':_0xcd37('0x5f')});}else if(_0x4e528a[_0xcd37('0x46')]['toUpperCase']()=='TURN'){var _0x105278=fs['readFileSync'](path[_0xcd37('0x58')](config[_0xcd37('0x59')],_0xcd37('0x61')),_0xcd37('0x62'));var _0x264ca6=ejs[_0xcd37('0x5b')](_0x105278,{'networks':_0x5a0e7f||[]});fs[_0xcd37('0x5c')](_0xcd37('0x63'),_0x264ca6);return respondWithRpcPromise(_0xcd37('0x5e'),_0xcd37('0x2f'),{'module':_0xcd37('0x5f')});}else{var _0x532a8f=fs[_0xcd37('0x57')](path['join'](config['root'],'server/files/templates/network.ejs'),_0xcd37('0x62'));var _0x35987d=ejs[_0xcd37('0x5b')](_0x532a8f,{'networks':_0x5a0e7f||[]});fs[_0xcd37('0x5c')](util[_0xcd37('0x65')](_0xcd37('0x69'),_0x37275c[_0xcd37('0x55')]['type'][_0xcd37('0x66')]()),_0x35987d);return respondWithRpcPromise('Reload',_0xcd37('0x2f'),{'module':'chan_sip.so'});}return null;})['then'](function(_0x413b1c){if(_0x413b1c){return _0x4e528a;}return null;});})[_0xcd37('0x1c')](respondWithResult(_0x40e6da,null))[_0xcd37('0x25')](handleError(_0x40e6da,null));};exports['destroy']=function(_0x5155f2,_0x30e5a7,_0x5c3868){var _0x33fab3;return db['Network'][_0xcd37('0x51')]({'where':{'id':_0x5155f2[_0xcd37('0x4e')]['id']}})['then'](function(_0x4b1f71){_0x33fab3=_0x4b1f71;return _0x4b1f71;})[_0xcd37('0x1c')](handleEntityNotFound(_0x30e5a7,null))[_0xcd37('0x1c')](removeEntity(_0x30e5a7,null))[_0xcd37('0x1c')](function(){if(_0x33fab3){return db[_0xcd37('0x4a')][_0xcd37('0x4b')]({'where':{'type':_0x33fab3[_0xcd37('0x46')]},'raw':!![]});}})['then'](function(_0x24b450){if(_0x33fab3[_0xcd37('0x46')][_0xcd37('0x56')]()=='STUN'){var _0x1be2c7=fs[_0xcd37('0x57')](path[_0xcd37('0x58')](config[_0xcd37('0x59')],_0xcd37('0x5a')),_0xcd37('0x62'));var _0xa90a55=ejs['render'](_0x1be2c7,{'networks':_0x24b450||[]});fs[_0xcd37('0x5c')](_0xcd37('0x5d'),_0xa90a55);return respondWithRpcPromise(_0xcd37('0x5e'),'destroy',{'module':'res_stun_monitor.so'});}else if(_0x33fab3['type'][_0xcd37('0x56')]()==_0xcd37('0x60')){var _0x4a5ce9=fs[_0xcd37('0x57')](path[_0xcd37('0x58')](config[_0xcd37('0x59')],_0xcd37('0x61')),'utf8');var _0x1e27ac=ejs[_0xcd37('0x5b')](_0x4a5ce9,{'networks':_0x24b450||[]});fs[_0xcd37('0x5c')](_0xcd37('0x63'),_0x1e27ac);return respondWithRpcPromise(_0xcd37('0x5e'),_0xcd37('0x30'),{'module':_0xcd37('0x5f')});}else{var _0x487b31=fs[_0xcd37('0x57')](path[_0xcd37('0x58')](config[_0xcd37('0x59')],_0xcd37('0x64')),_0xcd37('0x62'));var _0xcf4c1b=ejs['render'](_0x487b31,{'networks':_0x24b450||[]});fs[_0xcd37('0x5c')](util[_0xcd37('0x65')]('/etc/asterisk/sip_xcally_%s.conf',_0x5155f2[_0xcd37('0x55')]['type']['toLowerCase']()),_0xcf4c1b);return respondWithRpcPromise(_0xcd37('0x5e'),'destroy',{'module':'chan_sip.so'});}return null;})['catch'](handleError(_0x30e5a7,null));};