Built motion from commit (unavailable).|2.5.30
[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 _0xf27d=['message','result','sendStatus','status','json','offset','undefined','limit','count','set','reject','save','update','destroy','end','stack','name','index','Network','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','create','body','toUpperCase','STUN','readFileSync','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','Reload','res_stun_monitor.so','join','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','sequelize','transaction','find','params','/etc/asterisk/stun_xcally.conf','TURN','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','Network,\x20%s,\x20%s','debug','Network,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code'];(function(_0x3e9af3,_0x3a672d){var _0x2bfa4f=function(_0x48a3e8){while(--_0x48a3e8){_0x3e9af3['push'](_0x3e9af3['shift']());}};_0x2bfa4f(++_0x3a672d);}(_0xf27d,0x19f));var _0xdf27=function(_0x2554a4,_0x185d58){_0x2554a4=_0x2554a4-0x0;var _0x74360=_0xf27d[_0x2554a4];return _0x74360;};'use strict';var emlformat=require(_0xdf27('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xdf27('0x1'));var jsonpatch=require(_0xdf27('0x2'));var rp=require(_0xdf27('0x3'));var moment=require(_0xdf27('0x4'));var BPromise=require(_0xdf27('0x5'));var Mustache=require(_0xdf27('0x6'));var util=require(_0xdf27('0x7'));var path=require(_0xdf27('0x8'));var sox=require(_0xdf27('0x9'));var csv=require(_0xdf27('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xdf27('0xb'));var _=require(_0xdf27('0xc'));var squel=require(_0xdf27('0xd'));var crypto=require(_0xdf27('0xe'));var jsforce=require(_0xdf27('0xf'));var deskjs=require(_0xdf27('0x10'));var toCsv=require(_0xdf27('0xa'));var querystring=require('querystring');var Papa=require(_0xdf27('0x11'));var Redis=require('ioredis');var authService=require(_0xdf27('0x12'));var qs=require(_0xdf27('0x13'));var as=require(_0xdf27('0x14'));var hardwareService=require(_0xdf27('0x15'));var logger=require(_0xdf27('0x16'))(_0xdf27('0x17'));var utils=require(_0xdf27('0x18'));var config=require(_0xdf27('0x19'));var licenseUtil=require(_0xdf27('0x1a'));var db=require(_0xdf27('0x1b'))['db'];var jayson=require(_0xdf27('0x1c'));var client=jayson[_0xdf27('0x1d')][_0xdf27('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x34ef11,_0x4877d3,_0x47dc5b,_0x29b1ba){return new BPromise(function(_0x4b2979,_0xbac124){var _0x5381cf=_0x29b1ba||client;return _0x5381cf[_0xdf27('0x1f')](_0x34ef11,_0x47dc5b)[_0xdf27('0x20')](function(_0x3ab69b){logger[_0xdf27('0x21')](_0xdf27('0x22'),_0x4877d3,'request\x20sent');logger[_0xdf27('0x23')](_0xdf27('0x24'),_0x4877d3,_0xdf27('0x25'),JSON[_0xdf27('0x26')](_0x3ab69b));if(_0x3ab69b['error']){if(_0x3ab69b[_0xdf27('0x27')][_0xdf27('0x28')]===0x1f4){logger['error'](_0xdf27('0x22'),_0x4877d3,_0x3ab69b['error'][_0xdf27('0x29')]);return _0xbac124(_0x3ab69b['error'][_0xdf27('0x29')]);}logger[_0xdf27('0x27')](_0xdf27('0x22'),_0x4877d3,_0x3ab69b[_0xdf27('0x27')][_0xdf27('0x29')]);return _0x4b2979(_0x3ab69b[_0xdf27('0x27')]['message']);}else{logger[_0xdf27('0x21')](_0xdf27('0x22'),_0x4877d3,_0xdf27('0x25'));_0x4b2979(_0x3ab69b[_0xdf27('0x2a')]['message']);}})['catch'](function(_0xa0ec6d){logger['error']('Network,\x20%s,\x20%s',_0x4877d3,_0xa0ec6d);_0xbac124(_0xa0ec6d);});});}function respondWithStatusCode(_0x547292,_0x1b45f7){_0x1b45f7=_0x1b45f7||0xcc;return function(_0x10dbac){if(_0x10dbac){return _0x547292[_0xdf27('0x2b')](_0x1b45f7);}return _0x547292[_0xdf27('0x2c')](_0x1b45f7)['end']();};}function respondWithResult(_0x1adea0,_0x276cd4){_0x276cd4=_0x276cd4||0xc8;return function(_0x645c23){if(_0x645c23){return _0x1adea0['status'](_0x276cd4)[_0xdf27('0x2d')](_0x645c23);}};}function respondWithFilteredResult(_0x4c46fa,_0x22963){return function(_0xd572b4){if(_0xd572b4){var _0x652e2=typeof _0x22963[_0xdf27('0x2e')]===_0xdf27('0x2f')&&typeof _0x22963[_0xdf27('0x30')]===_0xdf27('0x2f');var _0x5a5272=_0xd572b4[_0xdf27('0x31')];var _0x50dae8=_0x652e2?0x0:_0x22963['offset'];var _0xd6d247=_0x652e2?_0xd572b4[_0xdf27('0x31')]:_0x22963[_0xdf27('0x2e')]+_0x22963[_0xdf27('0x30')];var _0x3f1069;if(_0xd6d247>=_0x5a5272){_0xd6d247=_0x5a5272;_0x3f1069=0xc8;}else{_0x3f1069=0xce;}_0x4c46fa['status'](_0x3f1069);return _0x4c46fa[_0xdf27('0x32')]('Content-Range',_0x50dae8+'-'+_0xd6d247+'/'+_0x5a5272)['json'](_0xd572b4);}return null;};}function patchUpdates(_0x12a2a2){return function(_0x283a0a){try{jsonpatch['apply'](_0x283a0a,_0x12a2a2,!![]);}catch(_0x2c4050){return BPromise[_0xdf27('0x33')](_0x2c4050);}return _0x283a0a[_0xdf27('0x34')]();};}function saveUpdates(_0x113f52,_0x526e62){return function(_0x49d5ed){if(_0x49d5ed){return _0x49d5ed[_0xdf27('0x35')](_0x113f52)['then'](function(_0x50c82b){return _0x50c82b;});}return null;};}function removeEntity(_0x11dcf7,_0xf9df8d){return function(_0x5ca8aa){if(_0x5ca8aa){return _0x5ca8aa[_0xdf27('0x36')]()[_0xdf27('0x20')](function(){_0x11dcf7[_0xdf27('0x2c')](0xcc)[_0xdf27('0x37')]();});}};}function handleEntityNotFound(_0x1d9a65,_0x2b6f65){return function(_0x19a265){if(!_0x19a265){_0x1d9a65['sendStatus'](0x194);}return _0x19a265;};}function handleError(_0x5b2921,_0x22c19a){_0x22c19a=_0x22c19a||0x1f4;return function(_0x528c48){logger[_0xdf27('0x27')](_0x528c48[_0xdf27('0x38')]);if(_0x528c48[_0xdf27('0x39')]){delete _0x528c48[_0xdf27('0x39')];}_0x5b2921[_0xdf27('0x2c')](_0x22c19a)['send'](_0x528c48);};}exports[_0xdf27('0x3a')]=function(_0x565eb9,_0x5cf6cf){var _0x5cfef3={},_0x443425={},_0x2a3fe0={'count':0x0,'rows':[]};var _0x17df95=_['map'](db[_0xdf27('0x3b')][_0xdf27('0x3c')],function(_0x283c8f){return{'name':_0x283c8f[_0xdf27('0x3d')],'type':_0x283c8f[_0xdf27('0x3e')][_0xdf27('0x3f')]};});_0x443425[_0xdf27('0x40')]=_[_0xdf27('0x41')](_0x17df95,'name');_0x443425[_0xdf27('0x42')]=_[_0xdf27('0x43')](_0x565eb9[_0xdf27('0x42')]);_0x443425[_0xdf27('0x44')]=_[_0xdf27('0x45')](_0x443425[_0xdf27('0x40')],_0x443425['query']);_0x5cfef3[_0xdf27('0x46')]=_['intersection'](_0x443425[_0xdf27('0x40')],qs['fields'](_0x565eb9[_0xdf27('0x42')][_0xdf27('0x47')]));_0x5cfef3[_0xdf27('0x46')]=_0x5cfef3[_0xdf27('0x46')][_0xdf27('0x48')]?_0x5cfef3[_0xdf27('0x46')]:_0x443425[_0xdf27('0x40')];if(!_0x565eb9[_0xdf27('0x42')][_0xdf27('0x49')](_0xdf27('0x4a'))){_0x5cfef3[_0xdf27('0x30')]=qs[_0xdf27('0x30')](_0x565eb9['query'][_0xdf27('0x30')]);_0x5cfef3['offset']=qs['offset'](_0x565eb9[_0xdf27('0x42')][_0xdf27('0x2e')]);}_0x5cfef3[_0xdf27('0x4b')]=qs[_0xdf27('0x4c')](_0x565eb9[_0xdf27('0x42')]['sort']);_0x5cfef3[_0xdf27('0x4d')]=qs[_0xdf27('0x44')](_[_0xdf27('0x4e')](_0x565eb9[_0xdf27('0x42')],_0x443425[_0xdf27('0x44')]),_0x17df95);if(_0x565eb9[_0xdf27('0x42')]['filter']){_0x5cfef3[_0xdf27('0x4d')]=_[_0xdf27('0x4f')](_0x5cfef3['where'],{'$or':_[_0xdf27('0x41')](_0x17df95,function(_0x21e97c){if(_0x21e97c[_0xdf27('0x3e')]!==_0xdf27('0x50')){var _0x851969={};_0x851969[_0x21e97c['name']]={'$like':'%'+_0x565eb9[_0xdf27('0x42')]['filter']+'%'};return _0x851969;}})});}_0x5cfef3=_['merge']({},_0x5cfef3,_0x565eb9[_0xdf27('0x51')]);var _0x22f9c2={'where':_0x5cfef3[_0xdf27('0x4d')]};return db[_0xdf27('0x3b')]['count'](_0x22f9c2)[_0xdf27('0x20')](function(_0x8b59b5){_0x2a3fe0[_0xdf27('0x31')]=_0x8b59b5;if(_0x565eb9[_0xdf27('0x42')][_0xdf27('0x52')]){_0x5cfef3[_0xdf27('0x53')]=[{'all':!![]}];}return db['Network'][_0xdf27('0x54')](_0x5cfef3);})[_0xdf27('0x20')](function(_0x804379){_0x2a3fe0[_0xdf27('0x55')]=_0x804379;return _0x2a3fe0;})[_0xdf27('0x20')](respondWithFilteredResult(_0x5cf6cf,_0x5cfef3))[_0xdf27('0x56')](handleError(_0x5cf6cf,null));};exports[_0xdf27('0x57')]=function(_0x9b387,_0x1978d9){var _0x3bf62a={'raw':!![],'where':{'id':_0x9b387['params']['id']}},_0x155bf4={};_0x155bf4[_0xdf27('0x40')]=_[_0xdf27('0x43')](db[_0xdf27('0x3b')][_0xdf27('0x3c')]);_0x155bf4['query']=_[_0xdf27('0x43')](_0x9b387[_0xdf27('0x42')]);_0x155bf4['filters']=_[_0xdf27('0x45')](_0x155bf4[_0xdf27('0x40')],_0x155bf4[_0xdf27('0x42')]);_0x3bf62a[_0xdf27('0x46')]=_[_0xdf27('0x45')](_0x155bf4['model'],qs['fields'](_0x9b387[_0xdf27('0x42')][_0xdf27('0x47')]));_0x3bf62a[_0xdf27('0x46')]=_0x3bf62a[_0xdf27('0x46')][_0xdf27('0x48')]?_0x3bf62a[_0xdf27('0x46')]:_0x155bf4['model'];if(_0x9b387['query'][_0xdf27('0x52')]){_0x3bf62a[_0xdf27('0x53')]=[{'all':!![]}];}_0x3bf62a=_[_0xdf27('0x4f')]({},_0x3bf62a,_0x9b387[_0xdf27('0x51')]);return db[_0xdf27('0x3b')]['find'](_0x3bf62a)[_0xdf27('0x20')](handleEntityNotFound(_0x1978d9,null))['then'](respondWithResult(_0x1978d9,null))[_0xdf27('0x56')](handleError(_0x1978d9,null));};exports[_0xdf27('0x58')]=function(_0x2f79a1,_0x3fe74b,_0x315fea){var _0x52a08b;return db['sequelize']['transaction'](function(_0x4840c2){return db[_0xdf27('0x3b')][_0xdf27('0x58')](_0x2f79a1[_0xdf27('0x59')],{'raw':!![]})[_0xdf27('0x20')](function(_0x417c8f){_0x52a08b=_0x417c8f;return db[_0xdf27('0x3b')]['findAll']({'where':{'type':_0x2f79a1[_0xdf27('0x59')][_0xdf27('0x3e')]},'raw':!![]});})[_0xdf27('0x20')](function(_0x45f246){if(_0x52a08b['type'][_0xdf27('0x5a')]()==_0xdf27('0x5b')){var _0x222ce7=fs[_0xdf27('0x5c')](path['join'](config[_0xdf27('0x5d')],_0xdf27('0x5e')),_0xdf27('0x5f'));var _0x9baac7=ejs[_0xdf27('0x60')](_0x222ce7,{'networks':_0x45f246||[]});fs[_0xdf27('0x61')]('/etc/asterisk/stun_xcally.conf',_0x9baac7);return respondWithRpcPromise(_0xdf27('0x62'),_0xdf27('0x58'),{'module':_0xdf27('0x63')});}else if(_0x52a08b[_0xdf27('0x3e')][_0xdf27('0x5a')]()=='TURN'){var _0x41d1fe=fs[_0xdf27('0x5c')](path[_0xdf27('0x64')](config[_0xdf27('0x5d')],_0xdf27('0x65')),_0xdf27('0x5f'));var _0x49a01c=ejs[_0xdf27('0x60')](_0x41d1fe,{'networks':_0x45f246||[]});fs[_0xdf27('0x61')](_0xdf27('0x66'),_0x49a01c);return respondWithRpcPromise(_0xdf27('0x62'),_0xdf27('0x58'),{'module':_0xdf27('0x63')});}else{var _0x41da4f=fs[_0xdf27('0x5c')](path[_0xdf27('0x64')](config[_0xdf27('0x5d')],_0xdf27('0x67')),_0xdf27('0x5f'));var _0x5bf6f0=ejs[_0xdf27('0x60')](_0x41da4f,{'networks':_0x45f246||[]});fs[_0xdf27('0x61')](util[_0xdf27('0x68')](_0xdf27('0x69'),_0x2f79a1['body'][_0xdf27('0x3e')][_0xdf27('0x6a')]()),_0x5bf6f0);return respondWithRpcPromise(_0xdf27('0x62'),_0xdf27('0x58'),{'module':_0xdf27('0x6b')});}return null;})[_0xdf27('0x20')](function(){return _0x52a08b;});})['then'](respondWithResult(_0x3fe74b,0xc9))[_0xdf27('0x56')](handleError(_0x3fe74b,null));};exports['update']=function(_0x5d5884,_0x4f9317,_0x48061c){var _0x5e70d2;return db[_0xdf27('0x6c')][_0xdf27('0x6d')](function(_0x30f48c){return db[_0xdf27('0x3b')][_0xdf27('0x6e')]({'where':{'id':_0x5d5884[_0xdf27('0x6f')]['id']}})[_0xdf27('0x20')](handleEntityNotFound(_0x4f9317,null))[_0xdf27('0x20')](saveUpdates(_0x5d5884['body'],null))[_0xdf27('0x20')](function(_0xd13f80){if(_0xd13f80){_0x5e70d2=_0xd13f80;return db[_0xdf27('0x3b')]['findAll']({'where':{'type':_0x5e70d2[_0xdf27('0x3e')]},'raw':!![]});}return null;})['then'](function(_0x387caf){if(_0x5e70d2[_0xdf27('0x3e')][_0xdf27('0x5a')]()==_0xdf27('0x5b')){var _0x337387=fs['readFileSync'](path[_0xdf27('0x64')](config['root'],_0xdf27('0x5e')),_0xdf27('0x5f'));var _0x2eff1e=ejs[_0xdf27('0x60')](_0x337387,{'networks':_0x387caf||[]});fs['writeFileSync'](_0xdf27('0x70'),_0x2eff1e);return respondWithRpcPromise('Reload',_0xdf27('0x35'),{'module':_0xdf27('0x63')});}else if(_0x5e70d2['type'][_0xdf27('0x5a')]()==_0xdf27('0x71')){var _0x418329=fs[_0xdf27('0x5c')](path[_0xdf27('0x64')](config[_0xdf27('0x5d')],_0xdf27('0x65')),_0xdf27('0x5f'));var _0x1c3a34=ejs['render'](_0x418329,{'networks':_0x387caf||[]});fs[_0xdf27('0x61')](_0xdf27('0x66'),_0x1c3a34);return respondWithRpcPromise(_0xdf27('0x62'),_0xdf27('0x35'),{'module':_0xdf27('0x63')});}else{var _0x531451=fs[_0xdf27('0x5c')](path[_0xdf27('0x64')](config['root'],'server/files/templates/network.ejs'),_0xdf27('0x5f'));var _0x418254=ejs[_0xdf27('0x60')](_0x531451,{'networks':_0x387caf||[]});fs[_0xdf27('0x61')](util[_0xdf27('0x68')](_0xdf27('0x69'),_0x5d5884[_0xdf27('0x59')][_0xdf27('0x3e')][_0xdf27('0x6a')]()),_0x418254);return respondWithRpcPromise(_0xdf27('0x62'),_0xdf27('0x35'),{'module':_0xdf27('0x6b')});}return null;})[_0xdf27('0x20')](function(_0x3fb45a){if(_0x3fb45a){return _0x5e70d2;}return null;});})[_0xdf27('0x20')](respondWithResult(_0x4f9317,null))[_0xdf27('0x56')](handleError(_0x4f9317,null));};exports[_0xdf27('0x36')]=function(_0x4f5d3a,_0x550efe,_0x491697){var _0x32e979;return db[_0xdf27('0x3b')][_0xdf27('0x6e')]({'where':{'id':_0x4f5d3a[_0xdf27('0x6f')]['id']}})[_0xdf27('0x20')](function(_0x17ae21){_0x32e979=_0x17ae21;return _0x17ae21;})[_0xdf27('0x20')](handleEntityNotFound(_0x550efe,null))['then'](removeEntity(_0x550efe,null))[_0xdf27('0x20')](function(){if(_0x32e979){return db[_0xdf27('0x3b')]['findAll']({'where':{'type':_0x32e979[_0xdf27('0x3e')]},'raw':!![]});}})[_0xdf27('0x20')](function(_0x583f38){if(_0x32e979[_0xdf27('0x3e')][_0xdf27('0x5a')]()==_0xdf27('0x5b')){var _0x5c8695=fs[_0xdf27('0x5c')](path[_0xdf27('0x64')](config[_0xdf27('0x5d')],'server/files/templates/stun_multiple.ejs'),_0xdf27('0x5f'));var _0x3dc597=ejs[_0xdf27('0x60')](_0x5c8695,{'networks':_0x583f38||[]});fs['writeFileSync'](_0xdf27('0x70'),_0x3dc597);return respondWithRpcPromise(_0xdf27('0x62'),'destroy',{'module':_0xdf27('0x63')});}else if(_0x32e979[_0xdf27('0x3e')]['toUpperCase']()==_0xdf27('0x71')){var _0x8454ae=fs[_0xdf27('0x5c')](path['join'](config[_0xdf27('0x5d')],'server/files/templates/turn_multiple.ejs'),'utf8');var _0x338236=ejs[_0xdf27('0x60')](_0x8454ae,{'networks':_0x583f38||[]});fs['writeFileSync'](_0xdf27('0x66'),_0x338236);return respondWithRpcPromise('Reload',_0xdf27('0x36'),{'module':_0xdf27('0x63')});}else{var _0x24eb7c=fs[_0xdf27('0x5c')](path[_0xdf27('0x64')](config[_0xdf27('0x5d')],_0xdf27('0x67')),_0xdf27('0x5f'));var _0x535423=ejs[_0xdf27('0x60')](_0x24eb7c,{'networks':_0x583f38||[]});fs[_0xdf27('0x61')](util[_0xdf27('0x68')]('/etc/asterisk/sip_xcally_%s.conf',_0x4f5d3a[_0xdf27('0x59')][_0xdf27('0x3e')][_0xdf27('0x6a')]()),_0x535423);return respondWithRpcPromise(_0xdf27('0x62'),_0xdf27('0x36'),{'module':_0xdf27('0x6b')});}return null;})[_0xdf27('0x56')](handleError(_0x550efe,null));};