Built motion from commit (unavailable).|2.5.6
[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 _0xc077=['filter','VIRTUAL','merge','options','includeAll','include','Network','findAll','rows','show','params','keys','find','create','sequelize','transaction','body','toUpperCase','STUN','join','root','utf8','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','readFileSync','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','render','format','/etc/asterisk/sip_xcally_%s.conf','chan_sip.so','server/files/templates/stun_multiple.ejs','server/files/templates/turn_multiple.ejs','toLowerCase','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','ejs','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','jayson/promise','client','http','request','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','end','json','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','index','map','rawAttributes','fieldName','type','key','filters','intersection','query','model','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick'];(function(_0x3c88fd,_0x30cb9e){var _0x1d8426=function(_0x291362){while(--_0x291362){_0x3c88fd['push'](_0x3c88fd['shift']());}};_0x1d8426(++_0x30cb9e);}(_0xc077,0x109));var _0x7c07=function(_0x177cc9,_0x3f6fdd){_0x177cc9=_0x177cc9-0x0;var _0x2fe577=_0xc077[_0x177cc9];return _0x2fe577;};'use strict';var pdf=require(_0x7c07('0x0'));var emlformat=require(_0x7c07('0x1'));var rimraf=require(_0x7c07('0x2'));var zipdir=require(_0x7c07('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7c07('0x4'));var moment=require(_0x7c07('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x7c07('0x6'));var util=require(_0x7c07('0x7'));var path=require(_0x7c07('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x7c07('0x9'));var fs=require('fs');var _=require(_0x7c07('0xa'));var squel=require(_0x7c07('0xb'));var crypto=require('crypto');var jsforce=require(_0x7c07('0xc'));var deskjs=require(_0x7c07('0xd'));var toCsv=require(_0x7c07('0xe'));var querystring=require(_0x7c07('0xf'));var Papa=require(_0x7c07('0x10'));var Redis=require(_0x7c07('0x11'));var authService=require(_0x7c07('0x12'));var qs=require(_0x7c07('0x13'));var as=require(_0x7c07('0x14'));var hardwareService=require(_0x7c07('0x15'));var logger=require(_0x7c07('0x16'))('api');var utils=require(_0x7c07('0x17'));var config=require(_0x7c07('0x18'));var licenseUtil=require(_0x7c07('0x19'));var db=require('../../mysqldb')['db'];var jayson=require(_0x7c07('0x1a'));var client=jayson[_0x7c07('0x1b')][_0x7c07('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x5c234c,_0x2e57d3,_0x3811d3,_0x215efb){return new BPromise(function(_0x591c84,_0x343fb3){var _0x4d19f9=_0x215efb||client;return _0x4d19f9[_0x7c07('0x1d')](_0x5c234c,_0x3811d3)['then'](function(_0x301be1){logger[_0x7c07('0x1e')](_0x7c07('0x1f'),_0x2e57d3,_0x7c07('0x20'));logger[_0x7c07('0x21')](_0x7c07('0x22'),_0x2e57d3,'request\x20sent',JSON[_0x7c07('0x23')](_0x301be1));if(_0x301be1[_0x7c07('0x24')]){if(_0x301be1['error'][_0x7c07('0x25')]===0x1f4){logger['error'](_0x7c07('0x1f'),_0x2e57d3,_0x301be1[_0x7c07('0x24')][_0x7c07('0x26')]);return _0x343fb3(_0x301be1[_0x7c07('0x24')][_0x7c07('0x26')]);}logger[_0x7c07('0x24')](_0x7c07('0x1f'),_0x2e57d3,_0x301be1['error'][_0x7c07('0x26')]);return _0x591c84(_0x301be1[_0x7c07('0x24')]['message']);}else{logger[_0x7c07('0x1e')](_0x7c07('0x1f'),_0x2e57d3,'request\x20sent');_0x591c84(_0x301be1[_0x7c07('0x27')][_0x7c07('0x26')]);}})[_0x7c07('0x28')](function(_0x5033cd){logger[_0x7c07('0x24')](_0x7c07('0x1f'),_0x2e57d3,_0x5033cd);_0x343fb3(_0x5033cd);});});}function respondWithStatusCode(_0x5c0165,_0x9dc061){_0x9dc061=_0x9dc061||0xcc;return function(_0x495574){if(_0x495574){return _0x5c0165['sendStatus'](_0x9dc061);}return _0x5c0165[_0x7c07('0x29')](_0x9dc061)[_0x7c07('0x2a')]();};}function respondWithResult(_0x43ee8f,_0x5be254){_0x5be254=_0x5be254||0xc8;return function(_0x212435){if(_0x212435){return _0x43ee8f[_0x7c07('0x29')](_0x5be254)[_0x7c07('0x2b')](_0x212435);}};}function respondWithFilteredResult(_0x2e24a5,_0x4a8e43){return function(_0x58c032){if(_0x58c032){var _0x101453=_0x58c032[_0x7c07('0x2c')],_0x36ba11=_0x4a8e43['offset'],_0x28cb30=_0x4a8e43[_0x7c07('0x2d')]+_0x4a8e43['limit'],_0x48cf94;if(_0x28cb30>=_0x101453){_0x28cb30=_0x101453;_0x48cf94=0xc8;}else{_0x48cf94=0xce;}_0x2e24a5['status'](_0x48cf94);return _0x2e24a5[_0x7c07('0x2e')](_0x7c07('0x2f'),_0x36ba11+'-'+_0x28cb30+'/'+_0x101453)[_0x7c07('0x2b')](_0x58c032);}return null;};}function patchUpdates(_0x53824d){return function(_0x4ace46){try{jsonpatch[_0x7c07('0x30')](_0x4ace46,_0x53824d,!![]);}catch(_0x21d556){return BPromise[_0x7c07('0x31')](_0x21d556);}return _0x4ace46[_0x7c07('0x32')]();};}function saveUpdates(_0x5c0d58,_0x3f0d2f){return function(_0x326f3c){if(_0x326f3c){return _0x326f3c[_0x7c07('0x33')](_0x5c0d58)[_0x7c07('0x34')](function(_0xe11a9b){return _0xe11a9b;});}return null;};}function removeEntity(_0x463272,_0x115dbe){return function(_0xb95c0){if(_0xb95c0){return _0xb95c0[_0x7c07('0x35')]()[_0x7c07('0x34')](function(){_0x463272['status'](0xcc)[_0x7c07('0x2a')]();});}};}function handleEntityNotFound(_0x596665,_0x5aa22f){return function(_0x5db9c7){if(!_0x5db9c7){_0x596665['sendStatus'](0x194);}return _0x5db9c7;};}function handleError(_0x1192cc,_0x595570){_0x595570=_0x595570||0x1f4;return function(_0x2e2bf9){logger['error'](_0x2e2bf9[_0x7c07('0x36')]);if(_0x2e2bf9[_0x7c07('0x37')]){delete _0x2e2bf9[_0x7c07('0x37')];}_0x1192cc['status'](_0x595570)[_0x7c07('0x38')](_0x2e2bf9);};}exports[_0x7c07('0x39')]=function(_0x5a044f,_0x2d687c){var _0x3aef53={},_0x45bf0c={},_0x24cf02={'count':0x0,'rows':[]};var _0x17f32b=_[_0x7c07('0x3a')](db['Network'][_0x7c07('0x3b')],function(_0x45f75a){return{'name':_0x45f75a[_0x7c07('0x3c')],'type':_0x45f75a[_0x7c07('0x3d')][_0x7c07('0x3e')]};});_0x45bf0c['model']=_['map'](_0x17f32b,_0x7c07('0x37'));_0x45bf0c['query']=_['keys'](_0x5a044f['query']);_0x45bf0c[_0x7c07('0x3f')]=_[_0x7c07('0x40')](_0x45bf0c['model'],_0x45bf0c[_0x7c07('0x41')]);_0x3aef53['attributes']=_[_0x7c07('0x40')](_0x45bf0c[_0x7c07('0x42')],qs['fields'](_0x5a044f[_0x7c07('0x41')][_0x7c07('0x43')]));_0x3aef53[_0x7c07('0x44')]=_0x3aef53['attributes'][_0x7c07('0x45')]?_0x3aef53['attributes']:_0x45bf0c['model'];if(!_0x5a044f[_0x7c07('0x41')][_0x7c07('0x46')](_0x7c07('0x47'))){_0x3aef53[_0x7c07('0x48')]=qs[_0x7c07('0x48')](_0x5a044f[_0x7c07('0x41')][_0x7c07('0x48')]);_0x3aef53[_0x7c07('0x2d')]=qs[_0x7c07('0x2d')](_0x5a044f[_0x7c07('0x41')][_0x7c07('0x2d')]);}_0x3aef53[_0x7c07('0x49')]=qs['sort'](_0x5a044f[_0x7c07('0x41')][_0x7c07('0x4a')]);_0x3aef53[_0x7c07('0x4b')]=qs['filters'](_[_0x7c07('0x4c')](_0x5a044f[_0x7c07('0x41')],_0x45bf0c[_0x7c07('0x3f')]),_0x17f32b);if(_0x5a044f[_0x7c07('0x41')][_0x7c07('0x4d')]){_0x3aef53[_0x7c07('0x4b')]=_['merge'](_0x3aef53[_0x7c07('0x4b')],{'$or':_[_0x7c07('0x3a')](_0x17f32b,function(_0x49e5ca){if(_0x49e5ca['type']!==_0x7c07('0x4e')){var _0x44fa2e={};_0x44fa2e[_0x49e5ca[_0x7c07('0x37')]]={'$like':'%'+_0x5a044f[_0x7c07('0x41')][_0x7c07('0x4d')]+'%'};return _0x44fa2e;}})});}_0x3aef53=_[_0x7c07('0x4f')]({},_0x3aef53,_0x5a044f[_0x7c07('0x50')]);var _0x323356={'where':_0x3aef53['where']};return db['Network'][_0x7c07('0x2c')](_0x323356)[_0x7c07('0x34')](function(_0x2c7335){_0x24cf02[_0x7c07('0x2c')]=_0x2c7335;if(_0x5a044f[_0x7c07('0x41')][_0x7c07('0x51')]){_0x3aef53[_0x7c07('0x52')]=[{'all':!![]}];}return db[_0x7c07('0x53')][_0x7c07('0x54')](_0x3aef53);})['then'](function(_0x2be6e3){_0x24cf02[_0x7c07('0x55')]=_0x2be6e3;return _0x24cf02;})[_0x7c07('0x34')](respondWithFilteredResult(_0x2d687c,_0x3aef53))[_0x7c07('0x28')](handleError(_0x2d687c,null));};exports[_0x7c07('0x56')]=function(_0x30a7b6,_0xf78111){var _0x5a326d={'raw':!![],'where':{'id':_0x30a7b6[_0x7c07('0x57')]['id']}},_0x50edb7={};_0x50edb7[_0x7c07('0x42')]=_[_0x7c07('0x58')](db[_0x7c07('0x53')]['rawAttributes']);_0x50edb7[_0x7c07('0x41')]=_['keys'](_0x30a7b6['query']);_0x50edb7[_0x7c07('0x3f')]=_['intersection'](_0x50edb7[_0x7c07('0x42')],_0x50edb7[_0x7c07('0x41')]);_0x5a326d[_0x7c07('0x44')]=_['intersection'](_0x50edb7['model'],qs[_0x7c07('0x43')](_0x30a7b6['query'][_0x7c07('0x43')]));_0x5a326d[_0x7c07('0x44')]=_0x5a326d[_0x7c07('0x44')][_0x7c07('0x45')]?_0x5a326d['attributes']:_0x50edb7[_0x7c07('0x42')];if(_0x30a7b6[_0x7c07('0x41')][_0x7c07('0x51')]){_0x5a326d[_0x7c07('0x52')]=[{'all':!![]}];}_0x5a326d=_[_0x7c07('0x4f')]({},_0x5a326d,_0x30a7b6[_0x7c07('0x50')]);return db[_0x7c07('0x53')][_0x7c07('0x59')](_0x5a326d)[_0x7c07('0x34')](handleEntityNotFound(_0xf78111,null))[_0x7c07('0x34')](respondWithResult(_0xf78111,null))['catch'](handleError(_0xf78111,null));};exports[_0x7c07('0x5a')]=function(_0x32eb5c,_0x25ce67,_0x2880e6){var _0x2a1bb3;return db[_0x7c07('0x5b')][_0x7c07('0x5c')](function(_0xd6cd1b){return db[_0x7c07('0x53')]['create'](_0x32eb5c[_0x7c07('0x5d')],{'raw':!![]})[_0x7c07('0x34')](function(_0x16b41e){_0x2a1bb3=_0x16b41e;return db[_0x7c07('0x53')][_0x7c07('0x54')]({'where':{'type':_0x32eb5c[_0x7c07('0x5d')][_0x7c07('0x3d')]},'raw':!![]});})['then'](function(_0x545d2a){if(_0x2a1bb3['type'][_0x7c07('0x5e')]()==_0x7c07('0x5f')){var _0x17698a=fs['readFileSync'](path[_0x7c07('0x60')](config[_0x7c07('0x61')],'server/files/templates/stun_multiple.ejs'),_0x7c07('0x62'));var _0x4310d4=ejs['render'](_0x17698a,{'networks':_0x545d2a||[]});fs[_0x7c07('0x63')](_0x7c07('0x64'),_0x4310d4);return respondWithRpcPromise(_0x7c07('0x65'),_0x7c07('0x5a'),{'module':_0x7c07('0x66')});}else if(_0x2a1bb3[_0x7c07('0x3d')]['toUpperCase']()==_0x7c07('0x67')){var _0x523d55=fs[_0x7c07('0x68')](path[_0x7c07('0x60')](config[_0x7c07('0x61')],'server/files/templates/turn_multiple.ejs'),_0x7c07('0x62'));var _0x57ffdd=ejs['render'](_0x523d55,{'networks':_0x545d2a||[]});fs[_0x7c07('0x63')](_0x7c07('0x69'),_0x57ffdd);return respondWithRpcPromise(_0x7c07('0x65'),_0x7c07('0x5a'),{'module':_0x7c07('0x66')});}else{var _0x28567e=fs['readFileSync'](path[_0x7c07('0x60')](config[_0x7c07('0x61')],_0x7c07('0x6a')),_0x7c07('0x62'));var _0x4728d5=ejs[_0x7c07('0x6b')](_0x28567e,{'networks':_0x545d2a||[]});fs[_0x7c07('0x63')](util[_0x7c07('0x6c')](_0x7c07('0x6d'),_0x32eb5c[_0x7c07('0x5d')][_0x7c07('0x3d')]['toLowerCase']()),_0x4728d5);return respondWithRpcPromise(_0x7c07('0x65'),_0x7c07('0x5a'),{'module':_0x7c07('0x6e')});}return null;})[_0x7c07('0x34')](function(){return _0x2a1bb3;});})[_0x7c07('0x34')](respondWithResult(_0x25ce67,0xc9))['catch'](handleError(_0x25ce67,null));};exports[_0x7c07('0x33')]=function(_0x214688,_0xd65298,_0x19f471){var _0x2e4559;return db[_0x7c07('0x5b')][_0x7c07('0x5c')](function(_0x403f11){return db[_0x7c07('0x53')][_0x7c07('0x59')]({'where':{'id':_0x214688['params']['id']}})[_0x7c07('0x34')](handleEntityNotFound(_0xd65298,null))['then'](saveUpdates(_0x214688[_0x7c07('0x5d')],null))[_0x7c07('0x34')](function(_0x1d576a){if(_0x1d576a){_0x2e4559=_0x1d576a;return db['Network'][_0x7c07('0x54')]({'where':{'type':_0x2e4559['type']},'raw':!![]});}return null;})[_0x7c07('0x34')](function(_0x1a2677){if(_0x2e4559[_0x7c07('0x3d')]['toUpperCase']()=='STUN'){var _0x3848ac=fs[_0x7c07('0x68')](path[_0x7c07('0x60')](config[_0x7c07('0x61')],_0x7c07('0x6f')),'utf8');var _0x1032b9=ejs[_0x7c07('0x6b')](_0x3848ac,{'networks':_0x1a2677||[]});fs[_0x7c07('0x63')](_0x7c07('0x64'),_0x1032b9);return respondWithRpcPromise(_0x7c07('0x65'),'update',{'module':_0x7c07('0x66')});}else if(_0x2e4559[_0x7c07('0x3d')]['toUpperCase']()==_0x7c07('0x67')){var _0x16e5f3=fs[_0x7c07('0x68')](path[_0x7c07('0x60')](config[_0x7c07('0x61')],_0x7c07('0x70')),_0x7c07('0x62'));var _0x422b84=ejs[_0x7c07('0x6b')](_0x16e5f3,{'networks':_0x1a2677||[]});fs[_0x7c07('0x63')](_0x7c07('0x69'),_0x422b84);return respondWithRpcPromise('Reload',_0x7c07('0x33'),{'module':'res_stun_monitor.so'});}else{var _0x7875cc=fs['readFileSync'](path[_0x7c07('0x60')](config[_0x7c07('0x61')],'server/files/templates/network.ejs'),_0x7c07('0x62'));var _0x262309=ejs[_0x7c07('0x6b')](_0x7875cc,{'networks':_0x1a2677||[]});fs['writeFileSync'](util[_0x7c07('0x6c')](_0x7c07('0x6d'),_0x214688[_0x7c07('0x5d')][_0x7c07('0x3d')][_0x7c07('0x71')]()),_0x262309);return respondWithRpcPromise(_0x7c07('0x65'),_0x7c07('0x33'),{'module':_0x7c07('0x6e')});}return null;})['then'](function(_0x29446a){if(_0x29446a){return _0x2e4559;}return null;});})[_0x7c07('0x34')](respondWithResult(_0xd65298,null))[_0x7c07('0x28')](handleError(_0xd65298,null));};exports[_0x7c07('0x35')]=function(_0x16aa6c,_0x1c665d,_0x5327d7){var _0x268c43;return db[_0x7c07('0x53')][_0x7c07('0x59')]({'where':{'id':_0x16aa6c['params']['id']}})[_0x7c07('0x34')](function(_0x38787c){_0x268c43=_0x38787c;return _0x38787c;})[_0x7c07('0x34')](handleEntityNotFound(_0x1c665d,null))[_0x7c07('0x34')](removeEntity(_0x1c665d,null))[_0x7c07('0x34')](function(){if(_0x268c43){return db[_0x7c07('0x53')]['findAll']({'where':{'type':_0x268c43[_0x7c07('0x3d')]},'raw':!![]});}})[_0x7c07('0x34')](function(_0x13a00e){if(_0x268c43['type'][_0x7c07('0x5e')]()==_0x7c07('0x5f')){var _0x25570e=fs[_0x7c07('0x68')](path[_0x7c07('0x60')](config[_0x7c07('0x61')],_0x7c07('0x6f')),'utf8');var _0x27fb13=ejs[_0x7c07('0x6b')](_0x25570e,{'networks':_0x13a00e||[]});fs[_0x7c07('0x63')]('/etc/asterisk/stun_xcally.conf',_0x27fb13);return respondWithRpcPromise('Reload',_0x7c07('0x35'),{'module':_0x7c07('0x66')});}else if(_0x268c43[_0x7c07('0x3d')][_0x7c07('0x5e')]()==_0x7c07('0x67')){var _0x13874f=fs[_0x7c07('0x68')](path[_0x7c07('0x60')](config[_0x7c07('0x61')],_0x7c07('0x70')),'utf8');var _0xdf7f18=ejs[_0x7c07('0x6b')](_0x13874f,{'networks':_0x13a00e||[]});fs[_0x7c07('0x63')](_0x7c07('0x69'),_0xdf7f18);return respondWithRpcPromise('Reload',_0x7c07('0x35'),{'module':_0x7c07('0x66')});}else{var _0x2cd875=fs[_0x7c07('0x68')](path[_0x7c07('0x60')](config[_0x7c07('0x61')],'server/files/templates/network.ejs'),_0x7c07('0x62'));var _0x506917=ejs[_0x7c07('0x6b')](_0x2cd875,{'networks':_0x13a00e||[]});fs['writeFileSync'](util['format'](_0x7c07('0x6d'),_0x16aa6c[_0x7c07('0x5d')][_0x7c07('0x3d')]['toLowerCase']()),_0x506917);return respondWithRpcPromise(_0x7c07('0x65'),'destroy',{'module':_0x7c07('0x6e')});}return null;})[_0x7c07('0x28')](handleError(_0x1c665d,null));};