Built motion from commit (unavailable).|2.5.31
[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 _0xfe76=['/etc/asterisk/stun_xcally.conf','res_stun_monitor.so','TURN','server/files/templates/turn_multiple.ejs','render','/etc/asterisk/turn_xcally.conf','Reload','writeFileSync','format','/etc/asterisk/sip_xcally_%s.conf','chan_sip.so','server/files/templates/network.ejs','toLowerCase','destroy','fast-json-patch','moment','bluebird','util','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','jayson/promise','client','http','request','then','info','debug','Network,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','Network,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','undefined','limit','count','offset','Content-Range','json','apply','reject','update','stack','name','send','index','map','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','options','Network','include','findAll','show','params','rawAttributes','length','includeAll','merge','find','sequelize','transaction','create','body','toUpperCase','STUN','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8'];(function(_0x507444,_0x5c430f){var _0x5b3ac2=function(_0x25430f){while(--_0x25430f){_0x507444['push'](_0x507444['shift']());}};_0x5b3ac2(++_0x5c430f);}(_0xfe76,0xe2));var _0x6fe7=function(_0x4bb581,_0x6f7037){_0x4bb581=_0x4bb581-0x0;var _0x316bf5=_0xfe76[_0x4bb581];return _0x316bf5;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x6fe7('0x0'));var rp=require('request-promise');var moment=require(_0x6fe7('0x1'));var BPromise=require(_0x6fe7('0x2'));var Mustache=require('mustache');var util=require(_0x6fe7('0x3'));var path=require('path');var sox=require(_0x6fe7('0x4'));var csv=require(_0x6fe7('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6fe7('0x6'));var _=require(_0x6fe7('0x7'));var squel=require('squel');var crypto=require(_0x6fe7('0x8'));var jsforce=require(_0x6fe7('0x9'));var deskjs=require(_0x6fe7('0xa'));var toCsv=require(_0x6fe7('0x5'));var querystring=require('querystring');var Papa=require(_0x6fe7('0xb'));var Redis=require('ioredis');var authService=require(_0x6fe7('0xc'));var qs=require(_0x6fe7('0xd'));var as=require(_0x6fe7('0xe'));var hardwareService=require(_0x6fe7('0xf'));var logger=require(_0x6fe7('0x10'))(_0x6fe7('0x11'));var utils=require('../../config/utils');var config=require(_0x6fe7('0x12'));var licenseUtil=require(_0x6fe7('0x13'));var db=require('../../mysqldb')['db'];var jayson=require(_0x6fe7('0x14'));var client=jayson[_0x6fe7('0x15')][_0x6fe7('0x16')]({'port':0x232a});function respondWithRpcPromise(_0x1ebe1e,_0x4b3786,_0x4150f4,_0x174d04){return new BPromise(function(_0x153b4f,_0x3279c9){var _0x3289f6=_0x174d04||client;return _0x3289f6[_0x6fe7('0x17')](_0x1ebe1e,_0x4150f4)[_0x6fe7('0x18')](function(_0x5127c6){logger[_0x6fe7('0x19')]('Network,\x20%s,\x20%s',_0x4b3786,'request\x20sent');logger[_0x6fe7('0x1a')](_0x6fe7('0x1b'),_0x4b3786,_0x6fe7('0x1c'),JSON[_0x6fe7('0x1d')](_0x5127c6));if(_0x5127c6[_0x6fe7('0x1e')]){if(_0x5127c6[_0x6fe7('0x1e')]['code']===0x1f4){logger['error'](_0x6fe7('0x1f'),_0x4b3786,_0x5127c6[_0x6fe7('0x1e')]['message']);return _0x3279c9(_0x5127c6[_0x6fe7('0x1e')]['message']);}logger[_0x6fe7('0x1e')](_0x6fe7('0x1f'),_0x4b3786,_0x5127c6[_0x6fe7('0x1e')][_0x6fe7('0x20')]);return _0x153b4f(_0x5127c6['error'][_0x6fe7('0x20')]);}else{logger[_0x6fe7('0x19')]('Network,\x20%s,\x20%s',_0x4b3786,_0x6fe7('0x1c'));_0x153b4f(_0x5127c6[_0x6fe7('0x21')][_0x6fe7('0x20')]);}})[_0x6fe7('0x22')](function(_0x3dd626){logger[_0x6fe7('0x1e')](_0x6fe7('0x1f'),_0x4b3786,_0x3dd626);_0x3279c9(_0x3dd626);});});}function respondWithStatusCode(_0xfc3bd8,_0x5a2b54){_0x5a2b54=_0x5a2b54||0xcc;return function(_0x5c4503){if(_0x5c4503){return _0xfc3bd8[_0x6fe7('0x23')](_0x5a2b54);}return _0xfc3bd8[_0x6fe7('0x24')](_0x5a2b54)[_0x6fe7('0x25')]();};}function respondWithResult(_0x12ba0e,_0x48bfa7){_0x48bfa7=_0x48bfa7||0xc8;return function(_0x56db9f){if(_0x56db9f){return _0x12ba0e[_0x6fe7('0x24')](_0x48bfa7)['json'](_0x56db9f);}};}function respondWithFilteredResult(_0x265cdb,_0x507797){return function(_0x491238){if(_0x491238){var _0x414d38=typeof _0x507797['offset']===_0x6fe7('0x26')&&typeof _0x507797[_0x6fe7('0x27')]===_0x6fe7('0x26');var _0x18ade6=_0x491238[_0x6fe7('0x28')];var _0x4441ca=_0x414d38?0x0:_0x507797[_0x6fe7('0x29')];var _0x440aff=_0x414d38?_0x491238[_0x6fe7('0x28')]:_0x507797[_0x6fe7('0x29')]+_0x507797[_0x6fe7('0x27')];var _0xf0e6ee;if(_0x440aff>=_0x18ade6){_0x440aff=_0x18ade6;_0xf0e6ee=0xc8;}else{_0xf0e6ee=0xce;}_0x265cdb[_0x6fe7('0x24')](_0xf0e6ee);return _0x265cdb['set'](_0x6fe7('0x2a'),_0x4441ca+'-'+_0x440aff+'/'+_0x18ade6)[_0x6fe7('0x2b')](_0x491238);}return null;};}function patchUpdates(_0x3b8db6){return function(_0xaaa88e){try{jsonpatch[_0x6fe7('0x2c')](_0xaaa88e,_0x3b8db6,!![]);}catch(_0x2d01c1){return BPromise[_0x6fe7('0x2d')](_0x2d01c1);}return _0xaaa88e['save']();};}function saveUpdates(_0x2b4529,_0x51ba11){return function(_0x39c015){if(_0x39c015){return _0x39c015[_0x6fe7('0x2e')](_0x2b4529)[_0x6fe7('0x18')](function(_0x139436){return _0x139436;});}return null;};}function removeEntity(_0xa09899,_0x4eb7d0){return function(_0x5a6411){if(_0x5a6411){return _0x5a6411['destroy']()[_0x6fe7('0x18')](function(){_0xa09899[_0x6fe7('0x24')](0xcc)['end']();});}};}function handleEntityNotFound(_0x53d2cb,_0x15bbc4){return function(_0x13d410){if(!_0x13d410){_0x53d2cb[_0x6fe7('0x23')](0x194);}return _0x13d410;};}function handleError(_0x3b0519,_0x3e27e2){_0x3e27e2=_0x3e27e2||0x1f4;return function(_0x5ecb96){logger[_0x6fe7('0x1e')](_0x5ecb96[_0x6fe7('0x2f')]);if(_0x5ecb96[_0x6fe7('0x30')]){delete _0x5ecb96['name'];}_0x3b0519['status'](_0x3e27e2)[_0x6fe7('0x31')](_0x5ecb96);};}exports[_0x6fe7('0x32')]=function(_0x2f71f7,_0x3be753){var _0x2c3345={},_0x5e8965={},_0xcbfc0b={'count':0x0,'rows':[]};var _0x153b72=_[_0x6fe7('0x33')](db['Network']['rawAttributes'],function(_0x21331c){return{'name':_0x21331c[_0x6fe7('0x34')],'type':_0x21331c[_0x6fe7('0x35')][_0x6fe7('0x36')]};});_0x5e8965[_0x6fe7('0x37')]=_[_0x6fe7('0x33')](_0x153b72,_0x6fe7('0x30'));_0x5e8965[_0x6fe7('0x38')]=_[_0x6fe7('0x39')](_0x2f71f7[_0x6fe7('0x38')]);_0x5e8965[_0x6fe7('0x3a')]=_[_0x6fe7('0x3b')](_0x5e8965['model'],_0x5e8965[_0x6fe7('0x38')]);_0x2c3345[_0x6fe7('0x3c')]=_[_0x6fe7('0x3b')](_0x5e8965[_0x6fe7('0x37')],qs[_0x6fe7('0x3d')](_0x2f71f7[_0x6fe7('0x38')][_0x6fe7('0x3d')]));_0x2c3345[_0x6fe7('0x3c')]=_0x2c3345[_0x6fe7('0x3c')]['length']?_0x2c3345['attributes']:_0x5e8965[_0x6fe7('0x37')];if(!_0x2f71f7[_0x6fe7('0x38')][_0x6fe7('0x3e')](_0x6fe7('0x3f'))){_0x2c3345[_0x6fe7('0x27')]=qs[_0x6fe7('0x27')](_0x2f71f7[_0x6fe7('0x38')][_0x6fe7('0x27')]);_0x2c3345[_0x6fe7('0x29')]=qs[_0x6fe7('0x29')](_0x2f71f7[_0x6fe7('0x38')]['offset']);}_0x2c3345[_0x6fe7('0x40')]=qs['sort'](_0x2f71f7['query'][_0x6fe7('0x41')]);_0x2c3345[_0x6fe7('0x42')]=qs[_0x6fe7('0x3a')](_[_0x6fe7('0x43')](_0x2f71f7[_0x6fe7('0x38')],_0x5e8965[_0x6fe7('0x3a')]),_0x153b72);if(_0x2f71f7['query'][_0x6fe7('0x44')]){_0x2c3345[_0x6fe7('0x42')]=_['merge'](_0x2c3345[_0x6fe7('0x42')],{'$or':_[_0x6fe7('0x33')](_0x153b72,function(_0x1092f0){if(_0x1092f0[_0x6fe7('0x35')]!==_0x6fe7('0x45')){var _0x423ea9={};_0x423ea9[_0x1092f0[_0x6fe7('0x30')]]={'$like':'%'+_0x2f71f7['query'][_0x6fe7('0x44')]+'%'};return _0x423ea9;}})});}_0x2c3345=_['merge']({},_0x2c3345,_0x2f71f7[_0x6fe7('0x46')]);var _0x66b66e={'where':_0x2c3345[_0x6fe7('0x42')]};return db[_0x6fe7('0x47')][_0x6fe7('0x28')](_0x66b66e)[_0x6fe7('0x18')](function(_0x295109){_0xcbfc0b[_0x6fe7('0x28')]=_0x295109;if(_0x2f71f7['query']['includeAll']){_0x2c3345[_0x6fe7('0x48')]=[{'all':!![]}];}return db[_0x6fe7('0x47')][_0x6fe7('0x49')](_0x2c3345);})[_0x6fe7('0x18')](function(_0x53f8ce){_0xcbfc0b['rows']=_0x53f8ce;return _0xcbfc0b;})[_0x6fe7('0x18')](respondWithFilteredResult(_0x3be753,_0x2c3345))['catch'](handleError(_0x3be753,null));};exports[_0x6fe7('0x4a')]=function(_0x44d43d,_0x55d09f){var _0x1f253a={'raw':!![],'where':{'id':_0x44d43d[_0x6fe7('0x4b')]['id']}},_0x320fc2={};_0x320fc2[_0x6fe7('0x37')]=_[_0x6fe7('0x39')](db[_0x6fe7('0x47')][_0x6fe7('0x4c')]);_0x320fc2[_0x6fe7('0x38')]=_[_0x6fe7('0x39')](_0x44d43d[_0x6fe7('0x38')]);_0x320fc2[_0x6fe7('0x3a')]=_['intersection'](_0x320fc2[_0x6fe7('0x37')],_0x320fc2['query']);_0x1f253a[_0x6fe7('0x3c')]=_[_0x6fe7('0x3b')](_0x320fc2[_0x6fe7('0x37')],qs[_0x6fe7('0x3d')](_0x44d43d['query'][_0x6fe7('0x3d')]));_0x1f253a[_0x6fe7('0x3c')]=_0x1f253a[_0x6fe7('0x3c')][_0x6fe7('0x4d')]?_0x1f253a[_0x6fe7('0x3c')]:_0x320fc2[_0x6fe7('0x37')];if(_0x44d43d[_0x6fe7('0x38')][_0x6fe7('0x4e')]){_0x1f253a[_0x6fe7('0x48')]=[{'all':!![]}];}_0x1f253a=_[_0x6fe7('0x4f')]({},_0x1f253a,_0x44d43d[_0x6fe7('0x46')]);return db[_0x6fe7('0x47')][_0x6fe7('0x50')](_0x1f253a)['then'](handleEntityNotFound(_0x55d09f,null))['then'](respondWithResult(_0x55d09f,null))[_0x6fe7('0x22')](handleError(_0x55d09f,null));};exports['create']=function(_0x487894,_0x111d3e,_0x22a4f8){var _0xedaa4f;return db[_0x6fe7('0x51')][_0x6fe7('0x52')](function(_0x396a9f){return db[_0x6fe7('0x47')][_0x6fe7('0x53')](_0x487894['body'],{'raw':!![]})[_0x6fe7('0x18')](function(_0x2b43ee){_0xedaa4f=_0x2b43ee;return db['Network']['findAll']({'where':{'type':_0x487894[_0x6fe7('0x54')][_0x6fe7('0x35')]},'raw':!![]});})['then'](function(_0x14c773){if(_0xedaa4f['type'][_0x6fe7('0x55')]()==_0x6fe7('0x56')){var _0xededeb=fs[_0x6fe7('0x57')](path[_0x6fe7('0x58')](config[_0x6fe7('0x59')],_0x6fe7('0x5a')),_0x6fe7('0x5b'));var _0xfa30e4=ejs['render'](_0xededeb,{'networks':_0x14c773||[]});fs['writeFileSync'](_0x6fe7('0x5c'),_0xfa30e4);return respondWithRpcPromise('Reload',_0x6fe7('0x53'),{'module':_0x6fe7('0x5d')});}else if(_0xedaa4f[_0x6fe7('0x35')][_0x6fe7('0x55')]()==_0x6fe7('0x5e')){var _0x1c327a=fs[_0x6fe7('0x57')](path[_0x6fe7('0x58')](config[_0x6fe7('0x59')],_0x6fe7('0x5f')),'utf8');var _0x3bc0d6=ejs[_0x6fe7('0x60')](_0x1c327a,{'networks':_0x14c773||[]});fs['writeFileSync'](_0x6fe7('0x61'),_0x3bc0d6);return respondWithRpcPromise(_0x6fe7('0x62'),'create',{'module':'res_stun_monitor.so'});}else{var _0x32b83d=fs[_0x6fe7('0x57')](path[_0x6fe7('0x58')](config[_0x6fe7('0x59')],'server/files/templates/network.ejs'),'utf8');var _0x4eeedf=ejs[_0x6fe7('0x60')](_0x32b83d,{'networks':_0x14c773||[]});fs[_0x6fe7('0x63')](util[_0x6fe7('0x64')](_0x6fe7('0x65'),_0x487894['body']['type']['toLowerCase']()),_0x4eeedf);return respondWithRpcPromise(_0x6fe7('0x62'),_0x6fe7('0x53'),{'module':_0x6fe7('0x66')});}return null;})['then'](function(){return _0xedaa4f;});})[_0x6fe7('0x18')](respondWithResult(_0x111d3e,0xc9))['catch'](handleError(_0x111d3e,null));};exports['update']=function(_0x4e4c26,_0x33a3e3,_0x5ba67e){var _0x22c677;return db[_0x6fe7('0x51')][_0x6fe7('0x52')](function(_0x5ce379){return db[_0x6fe7('0x47')]['find']({'where':{'id':_0x4e4c26[_0x6fe7('0x4b')]['id']}})[_0x6fe7('0x18')](handleEntityNotFound(_0x33a3e3,null))[_0x6fe7('0x18')](saveUpdates(_0x4e4c26[_0x6fe7('0x54')],null))['then'](function(_0x12b7b8){if(_0x12b7b8){_0x22c677=_0x12b7b8;return db[_0x6fe7('0x47')][_0x6fe7('0x49')]({'where':{'type':_0x22c677['type']},'raw':!![]});}return null;})[_0x6fe7('0x18')](function(_0x5e917c){if(_0x22c677[_0x6fe7('0x35')][_0x6fe7('0x55')]()==_0x6fe7('0x56')){var _0x34541e=fs[_0x6fe7('0x57')](path['join'](config['root'],_0x6fe7('0x5a')),'utf8');var _0xaa9080=ejs['render'](_0x34541e,{'networks':_0x5e917c||[]});fs[_0x6fe7('0x63')](_0x6fe7('0x5c'),_0xaa9080);return respondWithRpcPromise('Reload',_0x6fe7('0x2e'),{'module':'res_stun_monitor.so'});}else if(_0x22c677[_0x6fe7('0x35')][_0x6fe7('0x55')]()==_0x6fe7('0x5e')){var _0x38d446=fs[_0x6fe7('0x57')](path[_0x6fe7('0x58')](config['root'],_0x6fe7('0x5f')),_0x6fe7('0x5b'));var _0x557c01=ejs['render'](_0x38d446,{'networks':_0x5e917c||[]});fs[_0x6fe7('0x63')](_0x6fe7('0x61'),_0x557c01);return respondWithRpcPromise(_0x6fe7('0x62'),'update',{'module':_0x6fe7('0x5d')});}else{var _0x340c22=fs['readFileSync'](path[_0x6fe7('0x58')](config['root'],_0x6fe7('0x67')),_0x6fe7('0x5b'));var _0x523cc5=ejs[_0x6fe7('0x60')](_0x340c22,{'networks':_0x5e917c||[]});fs['writeFileSync'](util[_0x6fe7('0x64')](_0x6fe7('0x65'),_0x4e4c26[_0x6fe7('0x54')][_0x6fe7('0x35')][_0x6fe7('0x68')]()),_0x523cc5);return respondWithRpcPromise('Reload','update',{'module':'chan_sip.so'});}return null;})['then'](function(_0x36e350){if(_0x36e350){return _0x22c677;}return null;});})[_0x6fe7('0x18')](respondWithResult(_0x33a3e3,null))[_0x6fe7('0x22')](handleError(_0x33a3e3,null));};exports[_0x6fe7('0x69')]=function(_0x391ec6,_0x251a12,_0x2357ba){var _0xaa7df7;return db[_0x6fe7('0x47')]['find']({'where':{'id':_0x391ec6[_0x6fe7('0x4b')]['id']}})['then'](function(_0x48ed1d){_0xaa7df7=_0x48ed1d;return _0x48ed1d;})[_0x6fe7('0x18')](handleEntityNotFound(_0x251a12,null))[_0x6fe7('0x18')](removeEntity(_0x251a12,null))[_0x6fe7('0x18')](function(){if(_0xaa7df7){return db[_0x6fe7('0x47')][_0x6fe7('0x49')]({'where':{'type':_0xaa7df7[_0x6fe7('0x35')]},'raw':!![]});}})[_0x6fe7('0x18')](function(_0x26d489){if(_0xaa7df7[_0x6fe7('0x35')][_0x6fe7('0x55')]()==_0x6fe7('0x56')){var _0x286d7b=fs[_0x6fe7('0x57')](path[_0x6fe7('0x58')](config[_0x6fe7('0x59')],'server/files/templates/stun_multiple.ejs'),_0x6fe7('0x5b'));var _0x18aa83=ejs[_0x6fe7('0x60')](_0x286d7b,{'networks':_0x26d489||[]});fs['writeFileSync'](_0x6fe7('0x5c'),_0x18aa83);return respondWithRpcPromise('Reload',_0x6fe7('0x69'),{'module':_0x6fe7('0x5d')});}else if(_0xaa7df7[_0x6fe7('0x35')]['toUpperCase']()==_0x6fe7('0x5e')){var _0xa7f5d6=fs[_0x6fe7('0x57')](path[_0x6fe7('0x58')](config['root'],_0x6fe7('0x5f')),'utf8');var _0x30195f=ejs[_0x6fe7('0x60')](_0xa7f5d6,{'networks':_0x26d489||[]});fs[_0x6fe7('0x63')](_0x6fe7('0x61'),_0x30195f);return respondWithRpcPromise('Reload',_0x6fe7('0x69'),{'module':_0x6fe7('0x5d')});}else{var _0x1dc8f8=fs[_0x6fe7('0x57')](path[_0x6fe7('0x58')](config[_0x6fe7('0x59')],_0x6fe7('0x67')),_0x6fe7('0x5b'));var _0x263d66=ejs['render'](_0x1dc8f8,{'networks':_0x26d489||[]});fs[_0x6fe7('0x63')](util[_0x6fe7('0x64')](_0x6fe7('0x65'),_0x391ec6[_0x6fe7('0x54')][_0x6fe7('0x35')][_0x6fe7('0x68')]()),_0x263d66);return respondWithRpcPromise('Reload',_0x6fe7('0x69'),{'module':_0x6fe7('0x66')});}return null;})[_0x6fe7('0x22')](handleError(_0x251a12,null));};