Built motion from commit (unavailable).|2.5.22
[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 _0x285d=['eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','then','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','Network,\x20%s,\x20%s','info','result','end','status','json','offset','set','Content-Range','apply','reject','save','update','sendStatus','stack','name','send','index','map','Network','rawAttributes','type','key','keys','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order','sort','pick','where','merge','VIRTUAL','filter','count','includeAll','include','catch','show','params','options','sequelize','transaction','create','body','toUpperCase','STUN','readFileSync','root','utf8','writeFileSync','Reload','res_stun_monitor.so','TURN','join','server/files/templates/turn_multiple.ejs','render','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','findAll','server/files/templates/stun_multiple.ejs','/etc/asterisk/stun_xcally.conf','chan_sip.so','find','destroy','html-pdf'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0x285d,0x6d));var _0xd285=function(_0x42245d,_0x51758f){_0x42245d=_0x42245d-0x0;var _0x4b211a=_0x285d[_0x42245d];return _0x4b211a;};'use strict';var pdf=require(_0xd285('0x0'));var emlformat=require(_0xd285('0x1'));var rimraf=require(_0xd285('0x2'));var zipdir=require(_0xd285('0x3'));var jsonpatch=require(_0xd285('0x4'));var rp=require(_0xd285('0x5'));var moment=require(_0xd285('0x6'));var BPromise=require(_0xd285('0x7'));var Mustache=require('mustache');var util=require('util');var path=require(_0xd285('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xd285('0x9'));var fs=require('fs');var _=require(_0xd285('0xa'));var squel=require('squel');var crypto=require(_0xd285('0xb'));var jsforce=require(_0xd285('0xc'));var deskjs=require(_0xd285('0xd'));var toCsv=require(_0xd285('0xe'));var querystring=require(_0xd285('0xf'));var Papa=require(_0xd285('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xd285('0x11'));var as=require(_0xd285('0x12'));var hardwareService=require(_0xd285('0x13'));var logger=require(_0xd285('0x14'))(_0xd285('0x15'));var utils=require(_0xd285('0x16'));var config=require(_0xd285('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xd285('0x18'))['db'];var jayson=require(_0xd285('0x19'));var client=jayson[_0xd285('0x1a')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4e0c99,_0x2fc2a3,_0x5c65d2,_0x2a7b29){return new BPromise(function(_0x1aad04,_0x546032){var _0x2bb519=_0x2a7b29||client;return _0x2bb519['request'](_0x4e0c99,_0x5c65d2)[_0xd285('0x1b')](function(_0x257245){logger['info']('Network,\x20%s,\x20%s',_0x2fc2a3,_0xd285('0x1c'));logger[_0xd285('0x1d')](_0xd285('0x1e'),_0x2fc2a3,_0xd285('0x1c'),JSON[_0xd285('0x1f')](_0x257245));if(_0x257245['error']){if(_0x257245[_0xd285('0x20')][_0xd285('0x21')]===0x1f4){logger['error']('Network,\x20%s,\x20%s',_0x2fc2a3,_0x257245[_0xd285('0x20')][_0xd285('0x22')]);return _0x546032(_0x257245[_0xd285('0x20')]['message']);}logger[_0xd285('0x20')](_0xd285('0x23'),_0x2fc2a3,_0x257245[_0xd285('0x20')][_0xd285('0x22')]);return _0x1aad04(_0x257245[_0xd285('0x20')][_0xd285('0x22')]);}else{logger[_0xd285('0x24')]('Network,\x20%s,\x20%s',_0x2fc2a3,_0xd285('0x1c'));_0x1aad04(_0x257245[_0xd285('0x25')]['message']);}})['catch'](function(_0x549534){logger[_0xd285('0x20')](_0xd285('0x23'),_0x2fc2a3,_0x549534);_0x546032(_0x549534);});});}function respondWithStatusCode(_0x334ba3,_0x510241){_0x510241=_0x510241||0xcc;return function(_0x5ed5dd){if(_0x5ed5dd){return _0x334ba3['sendStatus'](_0x510241);}return _0x334ba3['status'](_0x510241)[_0xd285('0x26')]();};}function respondWithResult(_0x3c9772,_0x4dfac0){_0x4dfac0=_0x4dfac0||0xc8;return function(_0xc38241){if(_0xc38241){return _0x3c9772[_0xd285('0x27')](_0x4dfac0)[_0xd285('0x28')](_0xc38241);}};}function respondWithFilteredResult(_0x3ba8ae,_0x39cf24){return function(_0x5e66b5){if(_0x5e66b5){var _0x269c11=_0x5e66b5['count'],_0x18dd21=_0x39cf24[_0xd285('0x29')],_0x5255d4=_0x39cf24[_0xd285('0x29')]+_0x39cf24['limit'],_0x2d36f7;if(_0x5255d4>=_0x269c11){_0x5255d4=_0x269c11;_0x2d36f7=0xc8;}else{_0x2d36f7=0xce;}_0x3ba8ae[_0xd285('0x27')](_0x2d36f7);return _0x3ba8ae[_0xd285('0x2a')](_0xd285('0x2b'),_0x18dd21+'-'+_0x5255d4+'/'+_0x269c11)['json'](_0x5e66b5);}return null;};}function patchUpdates(_0x3f70db){return function(_0x12ace3){try{jsonpatch[_0xd285('0x2c')](_0x12ace3,_0x3f70db,!![]);}catch(_0xb03a00){return BPromise[_0xd285('0x2d')](_0xb03a00);}return _0x12ace3[_0xd285('0x2e')]();};}function saveUpdates(_0x34be49,_0x21ae12){return function(_0x11b633){if(_0x11b633){return _0x11b633[_0xd285('0x2f')](_0x34be49)['then'](function(_0x495531){return _0x495531;});}return null;};}function removeEntity(_0x58cc05,_0x5c4e0a){return function(_0x339f88){if(_0x339f88){return _0x339f88['destroy']()[_0xd285('0x1b')](function(){_0x58cc05['status'](0xcc)[_0xd285('0x26')]();});}};}function handleEntityNotFound(_0x1d036c,_0x26f55b){return function(_0x5531f5){if(!_0x5531f5){_0x1d036c[_0xd285('0x30')](0x194);}return _0x5531f5;};}function handleError(_0x4a24bc,_0x40dcfd){_0x40dcfd=_0x40dcfd||0x1f4;return function(_0x3fb339){logger['error'](_0x3fb339[_0xd285('0x31')]);if(_0x3fb339[_0xd285('0x32')]){delete _0x3fb339['name'];}_0x4a24bc['status'](_0x40dcfd)[_0xd285('0x33')](_0x3fb339);};}exports[_0xd285('0x34')]=function(_0x4cdbaa,_0x1eee85){var _0x578b5b={},_0x2cc450={},_0x45c99f={'count':0x0,'rows':[]};var _0x3a0da8=_[_0xd285('0x35')](db[_0xd285('0x36')][_0xd285('0x37')],function(_0x3391c5){return{'name':_0x3391c5['fieldName'],'type':_0x3391c5[_0xd285('0x38')][_0xd285('0x39')]};});_0x2cc450['model']=_[_0xd285('0x35')](_0x3a0da8,_0xd285('0x32'));_0x2cc450['query']=_[_0xd285('0x3a')](_0x4cdbaa[_0xd285('0x3b')]);_0x2cc450[_0xd285('0x3c')]=_['intersection'](_0x2cc450[_0xd285('0x3d')],_0x2cc450[_0xd285('0x3b')]);_0x578b5b[_0xd285('0x3e')]=_[_0xd285('0x3f')](_0x2cc450['model'],qs[_0xd285('0x40')](_0x4cdbaa[_0xd285('0x3b')][_0xd285('0x40')]));_0x578b5b['attributes']=_0x578b5b[_0xd285('0x3e')][_0xd285('0x41')]?_0x578b5b[_0xd285('0x3e')]:_0x2cc450[_0xd285('0x3d')];if(!_0x4cdbaa['query'][_0xd285('0x42')](_0xd285('0x43'))){_0x578b5b[_0xd285('0x44')]=qs['limit'](_0x4cdbaa[_0xd285('0x3b')]['limit']);_0x578b5b[_0xd285('0x29')]=qs[_0xd285('0x29')](_0x4cdbaa[_0xd285('0x3b')][_0xd285('0x29')]);}_0x578b5b[_0xd285('0x45')]=qs[_0xd285('0x46')](_0x4cdbaa['query'][_0xd285('0x46')]);_0x578b5b['where']=qs['filters'](_[_0xd285('0x47')](_0x4cdbaa[_0xd285('0x3b')],_0x2cc450[_0xd285('0x3c')]),_0x3a0da8);if(_0x4cdbaa[_0xd285('0x3b')]['filter']){_0x578b5b[_0xd285('0x48')]=_[_0xd285('0x49')](_0x578b5b[_0xd285('0x48')],{'$or':_[_0xd285('0x35')](_0x3a0da8,function(_0x2e50c7){if(_0x2e50c7['type']!==_0xd285('0x4a')){var _0x14a93e={};_0x14a93e[_0x2e50c7[_0xd285('0x32')]]={'$like':'%'+_0x4cdbaa['query'][_0xd285('0x4b')]+'%'};return _0x14a93e;}})});}_0x578b5b=_[_0xd285('0x49')]({},_0x578b5b,_0x4cdbaa['options']);var _0x2506f9={'where':_0x578b5b[_0xd285('0x48')]};return db[_0xd285('0x36')][_0xd285('0x4c')](_0x2506f9)[_0xd285('0x1b')](function(_0x4b3a30){_0x45c99f[_0xd285('0x4c')]=_0x4b3a30;if(_0x4cdbaa['query'][_0xd285('0x4d')]){_0x578b5b[_0xd285('0x4e')]=[{'all':!![]}];}return db['Network']['findAll'](_0x578b5b);})[_0xd285('0x1b')](function(_0x2262f8){_0x45c99f['rows']=_0x2262f8;return _0x45c99f;})[_0xd285('0x1b')](respondWithFilteredResult(_0x1eee85,_0x578b5b))[_0xd285('0x4f')](handleError(_0x1eee85,null));};exports[_0xd285('0x50')]=function(_0x2eb923,_0x3f721f){var _0x174bee={'raw':!![],'where':{'id':_0x2eb923[_0xd285('0x51')]['id']}},_0x3136da={};_0x3136da[_0xd285('0x3d')]=_[_0xd285('0x3a')](db[_0xd285('0x36')][_0xd285('0x37')]);_0x3136da[_0xd285('0x3b')]=_[_0xd285('0x3a')](_0x2eb923['query']);_0x3136da['filters']=_[_0xd285('0x3f')](_0x3136da[_0xd285('0x3d')],_0x3136da[_0xd285('0x3b')]);_0x174bee['attributes']=_[_0xd285('0x3f')](_0x3136da['model'],qs[_0xd285('0x40')](_0x2eb923[_0xd285('0x3b')][_0xd285('0x40')]));_0x174bee[_0xd285('0x3e')]=_0x174bee[_0xd285('0x3e')]['length']?_0x174bee[_0xd285('0x3e')]:_0x3136da[_0xd285('0x3d')];if(_0x2eb923[_0xd285('0x3b')][_0xd285('0x4d')]){_0x174bee['include']=[{'all':!![]}];}_0x174bee=_['merge']({},_0x174bee,_0x2eb923[_0xd285('0x52')]);return db['Network']['find'](_0x174bee)[_0xd285('0x1b')](handleEntityNotFound(_0x3f721f,null))['then'](respondWithResult(_0x3f721f,null))['catch'](handleError(_0x3f721f,null));};exports['create']=function(_0x4926a3,_0x2d6024,_0x588224){var _0x3f86ae;return db[_0xd285('0x53')][_0xd285('0x54')](function(_0x346148){return db[_0xd285('0x36')][_0xd285('0x55')](_0x4926a3[_0xd285('0x56')],{'raw':!![]})[_0xd285('0x1b')](function(_0x17bf62){_0x3f86ae=_0x17bf62;return db[_0xd285('0x36')]['findAll']({'where':{'type':_0x4926a3[_0xd285('0x56')][_0xd285('0x38')]},'raw':!![]});})['then'](function(_0x50e5bf){if(_0x3f86ae['type'][_0xd285('0x57')]()==_0xd285('0x58')){var _0xb15e33=fs[_0xd285('0x59')](path['join'](config[_0xd285('0x5a')],'server/files/templates/stun_multiple.ejs'),_0xd285('0x5b'));var _0x305072=ejs['render'](_0xb15e33,{'networks':_0x50e5bf||[]});fs[_0xd285('0x5c')]('/etc/asterisk/stun_xcally.conf',_0x305072);return respondWithRpcPromise(_0xd285('0x5d'),_0xd285('0x55'),{'module':_0xd285('0x5e')});}else if(_0x3f86ae[_0xd285('0x38')]['toUpperCase']()==_0xd285('0x5f')){var _0x16bfa5=fs['readFileSync'](path[_0xd285('0x60')](config[_0xd285('0x5a')],_0xd285('0x61')),_0xd285('0x5b'));var _0x3a6b9e=ejs[_0xd285('0x62')](_0x16bfa5,{'networks':_0x50e5bf||[]});fs['writeFileSync'](_0xd285('0x63'),_0x3a6b9e);return respondWithRpcPromise('Reload',_0xd285('0x55'),{'module':_0xd285('0x5e')});}else{var _0x2cb231=fs[_0xd285('0x59')](path[_0xd285('0x60')](config['root'],_0xd285('0x64')),_0xd285('0x5b'));var _0x16b1bf=ejs[_0xd285('0x62')](_0x2cb231,{'networks':_0x50e5bf||[]});fs['writeFileSync'](util[_0xd285('0x65')](_0xd285('0x66'),_0x4926a3[_0xd285('0x56')][_0xd285('0x38')][_0xd285('0x67')]()),_0x16b1bf);return respondWithRpcPromise(_0xd285('0x5d'),_0xd285('0x55'),{'module':'chan_sip.so'});}return null;})['then'](function(){return _0x3f86ae;});})[_0xd285('0x1b')](respondWithResult(_0x2d6024,0xc9))['catch'](handleError(_0x2d6024,null));};exports['update']=function(_0x1d741e,_0x597367,_0x2d0030){var _0x410159;return db[_0xd285('0x53')][_0xd285('0x54')](function(_0x39df99){return db['Network']['find']({'where':{'id':_0x1d741e['params']['id']}})[_0xd285('0x1b')](handleEntityNotFound(_0x597367,null))['then'](saveUpdates(_0x1d741e['body'],null))[_0xd285('0x1b')](function(_0x1fabcc){if(_0x1fabcc){_0x410159=_0x1fabcc;return db[_0xd285('0x36')][_0xd285('0x68')]({'where':{'type':_0x410159[_0xd285('0x38')]},'raw':!![]});}return null;})[_0xd285('0x1b')](function(_0x3099a3){if(_0x410159[_0xd285('0x38')][_0xd285('0x57')]()==_0xd285('0x58')){var _0x35a70e=fs[_0xd285('0x59')](path[_0xd285('0x60')](config['root'],_0xd285('0x69')),_0xd285('0x5b'));var _0x2b6447=ejs[_0xd285('0x62')](_0x35a70e,{'networks':_0x3099a3||[]});fs['writeFileSync'](_0xd285('0x6a'),_0x2b6447);return respondWithRpcPromise('Reload',_0xd285('0x2f'),{'module':_0xd285('0x5e')});}else if(_0x410159[_0xd285('0x38')][_0xd285('0x57')]()==_0xd285('0x5f')){var _0x43d912=fs[_0xd285('0x59')](path['join'](config['root'],_0xd285('0x61')),_0xd285('0x5b'));var _0xc0e641=ejs[_0xd285('0x62')](_0x43d912,{'networks':_0x3099a3||[]});fs[_0xd285('0x5c')]('/etc/asterisk/turn_xcally.conf',_0xc0e641);return respondWithRpcPromise(_0xd285('0x5d'),_0xd285('0x2f'),{'module':_0xd285('0x5e')});}else{var _0x29ff99=fs['readFileSync'](path[_0xd285('0x60')](config['root'],'server/files/templates/network.ejs'),_0xd285('0x5b'));var _0x3c84c6=ejs['render'](_0x29ff99,{'networks':_0x3099a3||[]});fs[_0xd285('0x5c')](util[_0xd285('0x65')](_0xd285('0x66'),_0x1d741e[_0xd285('0x56')][_0xd285('0x38')]['toLowerCase']()),_0x3c84c6);return respondWithRpcPromise(_0xd285('0x5d'),'update',{'module':_0xd285('0x6b')});}return null;})[_0xd285('0x1b')](function(_0x377d4b){if(_0x377d4b){return _0x410159;}return null;});})[_0xd285('0x1b')](respondWithResult(_0x597367,null))[_0xd285('0x4f')](handleError(_0x597367,null));};exports['destroy']=function(_0x1d738a,_0x4ed846,_0x4b1955){var _0x28d955;return db[_0xd285('0x36')][_0xd285('0x6c')]({'where':{'id':_0x1d738a[_0xd285('0x51')]['id']}})[_0xd285('0x1b')](function(_0x265334){_0x28d955=_0x265334;return _0x265334;})[_0xd285('0x1b')](handleEntityNotFound(_0x4ed846,null))['then'](removeEntity(_0x4ed846,null))['then'](function(){if(_0x28d955){return db[_0xd285('0x36')][_0xd285('0x68')]({'where':{'type':_0x28d955[_0xd285('0x38')]},'raw':!![]});}})[_0xd285('0x1b')](function(_0x8b3ed8){if(_0x28d955[_0xd285('0x38')][_0xd285('0x57')]()==_0xd285('0x58')){var _0x29ba36=fs[_0xd285('0x59')](path['join'](config[_0xd285('0x5a')],_0xd285('0x69')),_0xd285('0x5b'));var _0x27f267=ejs['render'](_0x29ba36,{'networks':_0x8b3ed8||[]});fs[_0xd285('0x5c')](_0xd285('0x6a'),_0x27f267);return respondWithRpcPromise(_0xd285('0x5d'),_0xd285('0x6d'),{'module':_0xd285('0x5e')});}else if(_0x28d955[_0xd285('0x38')]['toUpperCase']()=='TURN'){var _0x2227d2=fs['readFileSync'](path[_0xd285('0x60')](config[_0xd285('0x5a')],_0xd285('0x61')),_0xd285('0x5b'));var _0x360d5b=ejs[_0xd285('0x62')](_0x2227d2,{'networks':_0x8b3ed8||[]});fs[_0xd285('0x5c')]('/etc/asterisk/turn_xcally.conf',_0x360d5b);return respondWithRpcPromise(_0xd285('0x5d'),_0xd285('0x6d'),{'module':_0xd285('0x5e')});}else{var _0x151ce8=fs['readFileSync'](path[_0xd285('0x60')](config[_0xd285('0x5a')],_0xd285('0x64')),_0xd285('0x5b'));var _0x1b5b74=ejs[_0xd285('0x62')](_0x151ce8,{'networks':_0x8b3ed8||[]});fs[_0xd285('0x5c')](util[_0xd285('0x65')](_0xd285('0x66'),_0x1d738a[_0xd285('0x56')][_0xd285('0x38')][_0xd285('0x67')]()),_0x1b5b74);return respondWithRpcPromise(_0xd285('0x5d'),_0xd285('0x6d'),{'module':'chan_sip.so'});}return null;})[_0xd285('0x4f')](handleError(_0x4ed846,null));};