447785740c07148c58e965cfe24d63de2b2ed8b9
[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 _0x27f9=['sort','where','filters','pick','VIRTUAL','filter','merge','options','include','findAll','rows','show','params','keys','includeAll','sequelize','transaction','create','body','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','Reload','res_stun_monitor.so','toUpperCase','TURN','server/files/templates/turn_multiple.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','/etc/asterisk/stun_xcally.conf','update','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','chan_sip.so','destroy','find','STUN','html-pdf','eml-format','rimraf','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','client','http','request','then','info','request\x20sent','Network,\x20%s,\x20%s,\x20%s','error','code','message','Network,\x20%s,\x20%s','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','stack','name','index','Network','rawAttributes','type','model','map','query','intersection','attributes','fields','length','hasOwnProperty'];(function(_0x19159a,_0x1cb5c3){var _0xa677f4=function(_0x24bb85){while(--_0x24bb85){_0x19159a['push'](_0x19159a['shift']());}};_0xa677f4(++_0x1cb5c3);}(_0x27f9,0x92));var _0x927f=function(_0x38bd04,_0x23e443){_0x38bd04=_0x38bd04-0x0;var _0x43a0a4=_0x27f9[_0x38bd04];return _0x43a0a4;};'use strict';var pdf=require(_0x927f('0x0'));var emlformat=require(_0x927f('0x1'));var rimraf=require(_0x927f('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x927f('0x3'));var moment=require(_0x927f('0x4'));var BPromise=require(_0x927f('0x5'));var Mustache=require('mustache');var util=require(_0x927f('0x6'));var path=require(_0x927f('0x7'));var sox=require(_0x927f('0x8'));var csv=require(_0x927f('0x9'));var ejs=require(_0x927f('0xa'));var fs=require('fs');var _=require(_0x927f('0xb'));var squel=require(_0x927f('0xc'));var crypto=require(_0x927f('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x927f('0xe'));var toCsv=require(_0x927f('0x9'));var querystring=require('querystring');var Papa=require(_0x927f('0xf'));var Redis=require(_0x927f('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x927f('0x11'));var hardwareService=require(_0x927f('0x12'));var logger=require(_0x927f('0x13'))(_0x927f('0x14'));var utils=require(_0x927f('0x15'));var config=require(_0x927f('0x16'));var licenseUtil=require(_0x927f('0x17'));var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var client=jayson[_0x927f('0x18')][_0x927f('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x4de5b8,_0x1f7b68,_0x14de72,_0x3a057a){return new BPromise(function(_0x307de4,_0x3ceeb4){var _0x28ed93=_0x3a057a||client;return _0x28ed93[_0x927f('0x1a')](_0x4de5b8,_0x14de72)[_0x927f('0x1b')](function(_0x43ef8c){logger[_0x927f('0x1c')]('Network,\x20%s,\x20%s',_0x1f7b68,_0x927f('0x1d'));logger['debug'](_0x927f('0x1e'),_0x1f7b68,_0x927f('0x1d'),JSON['stringify'](_0x43ef8c));if(_0x43ef8c[_0x927f('0x1f')]){if(_0x43ef8c['error'][_0x927f('0x20')]===0x1f4){logger[_0x927f('0x1f')]('Network,\x20%s,\x20%s',_0x1f7b68,_0x43ef8c[_0x927f('0x1f')][_0x927f('0x21')]);return _0x3ceeb4(_0x43ef8c[_0x927f('0x1f')]['message']);}logger[_0x927f('0x1f')](_0x927f('0x22'),_0x1f7b68,_0x43ef8c['error'][_0x927f('0x21')]);return _0x307de4(_0x43ef8c[_0x927f('0x1f')][_0x927f('0x21')]);}else{logger['info']('Network,\x20%s,\x20%s',_0x1f7b68,'request\x20sent');_0x307de4(_0x43ef8c['result']['message']);}})[_0x927f('0x23')](function(_0xef8504){logger['error']('Network,\x20%s,\x20%s',_0x1f7b68,_0xef8504);_0x3ceeb4(_0xef8504);});});}function respondWithStatusCode(_0x28ae3d,_0x30e8b5){_0x30e8b5=_0x30e8b5||0xcc;return function(_0x5cb2da){if(_0x5cb2da){return _0x28ae3d[_0x927f('0x24')](_0x30e8b5);}return _0x28ae3d[_0x927f('0x25')](_0x30e8b5)[_0x927f('0x26')]();};}function respondWithResult(_0x2dab6e,_0xae0056){_0xae0056=_0xae0056||0xc8;return function(_0x5f0610){if(_0x5f0610){return _0x2dab6e[_0x927f('0x25')](_0xae0056)[_0x927f('0x27')](_0x5f0610);}};}function respondWithFilteredResult(_0x1b055f,_0x261d6a){return function(_0x5ec7f9){if(_0x5ec7f9){var _0x1214ac=_0x5ec7f9[_0x927f('0x28')],_0x9412f3=_0x261d6a[_0x927f('0x29')],_0x316669=_0x261d6a[_0x927f('0x29')]+_0x261d6a[_0x927f('0x2a')],_0x1ec8e0;if(_0x316669>=_0x1214ac){_0x316669=_0x1214ac;_0x1ec8e0=0xc8;}else{_0x1ec8e0=0xce;}_0x1b055f['status'](_0x1ec8e0);return _0x1b055f[_0x927f('0x2b')](_0x927f('0x2c'),_0x9412f3+'-'+_0x316669+'/'+_0x1214ac)['json'](_0x5ec7f9);}return null;};}function patchUpdates(_0x1cc1b8){return function(_0x5ae2ea){try{jsonpatch[_0x927f('0x2d')](_0x5ae2ea,_0x1cc1b8,!![]);}catch(_0xd8bb54){return BPromise[_0x927f('0x2e')](_0xd8bb54);}return _0x5ae2ea[_0x927f('0x2f')]();};}function saveUpdates(_0xb4d79c,_0x368747){return function(_0x1fe2a2){if(_0x1fe2a2){return _0x1fe2a2['update'](_0xb4d79c)[_0x927f('0x1b')](function(_0x308821){return _0x308821;});}return null;};}function removeEntity(_0x4fd9a9,_0x4a31d2){return function(_0x10d95e){if(_0x10d95e){return _0x10d95e['destroy']()[_0x927f('0x1b')](function(){_0x4fd9a9[_0x927f('0x25')](0xcc)[_0x927f('0x26')]();});}};}function handleEntityNotFound(_0x5310f1,_0xf60fd8){return function(_0x39b8a4){if(!_0x39b8a4){_0x5310f1[_0x927f('0x24')](0x194);}return _0x39b8a4;};}function handleError(_0x39f239,_0x4ef31b){_0x4ef31b=_0x4ef31b||0x1f4;return function(_0x20fd0f){logger[_0x927f('0x1f')](_0x20fd0f[_0x927f('0x30')]);if(_0x20fd0f[_0x927f('0x31')]){delete _0x20fd0f[_0x927f('0x31')];}_0x39f239[_0x927f('0x25')](_0x4ef31b)['send'](_0x20fd0f);};}exports[_0x927f('0x32')]=function(_0x76e75d,_0x179dc6){var _0x2f2568={},_0x31ac0f={},_0x3c4553={'count':0x0,'rows':[]};var _0x1eef92=_['map'](db[_0x927f('0x33')][_0x927f('0x34')],function(_0x2720fd){return{'name':_0x2720fd['fieldName'],'type':_0x2720fd[_0x927f('0x35')]['key']};});_0x31ac0f[_0x927f('0x36')]=_[_0x927f('0x37')](_0x1eef92,_0x927f('0x31'));_0x31ac0f[_0x927f('0x38')]=_['keys'](_0x76e75d[_0x927f('0x38')]);_0x31ac0f['filters']=_[_0x927f('0x39')](_0x31ac0f[_0x927f('0x36')],_0x31ac0f[_0x927f('0x38')]);_0x2f2568[_0x927f('0x3a')]=_[_0x927f('0x39')](_0x31ac0f[_0x927f('0x36')],qs['fields'](_0x76e75d[_0x927f('0x38')][_0x927f('0x3b')]));_0x2f2568[_0x927f('0x3a')]=_0x2f2568['attributes'][_0x927f('0x3c')]?_0x2f2568[_0x927f('0x3a')]:_0x31ac0f[_0x927f('0x36')];if(!_0x76e75d[_0x927f('0x38')][_0x927f('0x3d')]('nolimit')){_0x2f2568[_0x927f('0x2a')]=qs[_0x927f('0x2a')](_0x76e75d['query']['limit']);_0x2f2568['offset']=qs[_0x927f('0x29')](_0x76e75d[_0x927f('0x38')][_0x927f('0x29')]);}_0x2f2568['order']=qs[_0x927f('0x3e')](_0x76e75d['query'][_0x927f('0x3e')]);_0x2f2568[_0x927f('0x3f')]=qs[_0x927f('0x40')](_[_0x927f('0x41')](_0x76e75d[_0x927f('0x38')],_0x31ac0f[_0x927f('0x40')]),_0x1eef92);if(_0x76e75d['query']['filter']){_0x2f2568[_0x927f('0x3f')]=_['merge'](_0x2f2568[_0x927f('0x3f')],{'$or':_['map'](_0x1eef92,function(_0x2d2808){if(_0x2d2808[_0x927f('0x35')]!==_0x927f('0x42')){var _0x34737e={};_0x34737e[_0x2d2808[_0x927f('0x31')]]={'$like':'%'+_0x76e75d['query'][_0x927f('0x43')]+'%'};return _0x34737e;}})});}_0x2f2568=_[_0x927f('0x44')]({},_0x2f2568,_0x76e75d[_0x927f('0x45')]);var _0x755d5f={'where':_0x2f2568[_0x927f('0x3f')]};return db['Network'][_0x927f('0x28')](_0x755d5f)[_0x927f('0x1b')](function(_0x3ccfaa){_0x3c4553['count']=_0x3ccfaa;if(_0x76e75d['query']['includeAll']){_0x2f2568[_0x927f('0x46')]=[{'all':!![]}];}return db[_0x927f('0x33')][_0x927f('0x47')](_0x2f2568);})['then'](function(_0x5b5bc0){_0x3c4553[_0x927f('0x48')]=_0x5b5bc0;return _0x3c4553;})[_0x927f('0x1b')](respondWithFilteredResult(_0x179dc6,_0x2f2568))[_0x927f('0x23')](handleError(_0x179dc6,null));};exports[_0x927f('0x49')]=function(_0x5bc775,_0x3666b2){var _0xd54264={'raw':!![],'where':{'id':_0x5bc775[_0x927f('0x4a')]['id']}},_0x233f32={};_0x233f32[_0x927f('0x36')]=_[_0x927f('0x4b')](db['Network']['rawAttributes']);_0x233f32['query']=_[_0x927f('0x4b')](_0x5bc775[_0x927f('0x38')]);_0x233f32[_0x927f('0x40')]=_['intersection'](_0x233f32[_0x927f('0x36')],_0x233f32[_0x927f('0x38')]);_0xd54264[_0x927f('0x3a')]=_[_0x927f('0x39')](_0x233f32['model'],qs['fields'](_0x5bc775[_0x927f('0x38')]['fields']));_0xd54264[_0x927f('0x3a')]=_0xd54264['attributes'][_0x927f('0x3c')]?_0xd54264[_0x927f('0x3a')]:_0x233f32['model'];if(_0x5bc775[_0x927f('0x38')][_0x927f('0x4c')]){_0xd54264[_0x927f('0x46')]=[{'all':!![]}];}_0xd54264=_[_0x927f('0x44')]({},_0xd54264,_0x5bc775[_0x927f('0x45')]);return db['Network']['find'](_0xd54264)[_0x927f('0x1b')](handleEntityNotFound(_0x3666b2,null))[_0x927f('0x1b')](respondWithResult(_0x3666b2,null))[_0x927f('0x23')](handleError(_0x3666b2,null));};exports['create']=function(_0x353920,_0x3ce71a,_0x357b3e){var _0x152a39;return db[_0x927f('0x4d')][_0x927f('0x4e')](function(_0x48c502){return db['Network'][_0x927f('0x4f')](_0x353920[_0x927f('0x50')],{'raw':!![]})['then'](function(_0x4642e9){_0x152a39=_0x4642e9;return db[_0x927f('0x33')]['findAll']({'where':{'type':_0x353920[_0x927f('0x50')]['type']},'raw':!![]});})[_0x927f('0x1b')](function(_0x32fd02){if(_0x152a39['type']['toUpperCase']()=='STUN'){var _0x1fcd46=fs[_0x927f('0x51')](path[_0x927f('0x52')](config[_0x927f('0x53')],_0x927f('0x54')),_0x927f('0x55'));var _0x35f2c3=ejs[_0x927f('0x56')](_0x1fcd46,{'networks':_0x32fd02||[]});fs[_0x927f('0x57')]('/etc/asterisk/stun_xcally.conf',_0x35f2c3);return respondWithRpcPromise(_0x927f('0x58'),'create',{'module':_0x927f('0x59')});}else if(_0x152a39[_0x927f('0x35')][_0x927f('0x5a')]()==_0x927f('0x5b')){var _0x30dd11=fs['readFileSync'](path[_0x927f('0x52')](config[_0x927f('0x53')],_0x927f('0x5c')),_0x927f('0x55'));var _0x5c3ae0=ejs[_0x927f('0x56')](_0x30dd11,{'networks':_0x32fd02||[]});fs['writeFileSync']('/etc/asterisk/turn_xcally.conf',_0x5c3ae0);return respondWithRpcPromise(_0x927f('0x58'),_0x927f('0x4f'),{'module':_0x927f('0x59')});}else{var _0x27b065=fs['readFileSync'](path[_0x927f('0x52')](config[_0x927f('0x53')],'server/files/templates/network.ejs'),_0x927f('0x55'));var _0xeb2c67=ejs[_0x927f('0x56')](_0x27b065,{'networks':_0x32fd02||[]});fs[_0x927f('0x57')](util[_0x927f('0x5d')](_0x927f('0x5e'),_0x353920[_0x927f('0x50')][_0x927f('0x35')][_0x927f('0x5f')]()),_0xeb2c67);return respondWithRpcPromise(_0x927f('0x58'),_0x927f('0x4f'),{'module':'chan_sip.so'});}return null;})[_0x927f('0x1b')](function(){return _0x152a39;});})[_0x927f('0x1b')](respondWithResult(_0x3ce71a,0xc9))[_0x927f('0x23')](handleError(_0x3ce71a,null));};exports['update']=function(_0x4c98d9,_0x274959,_0x3fd520){var _0x5da363;return db[_0x927f('0x4d')][_0x927f('0x4e')](function(_0x5a05bc){return db[_0x927f('0x33')]['find']({'where':{'id':_0x4c98d9[_0x927f('0x4a')]['id']}})[_0x927f('0x1b')](handleEntityNotFound(_0x274959,null))[_0x927f('0x1b')](saveUpdates(_0x4c98d9[_0x927f('0x50')],null))[_0x927f('0x1b')](function(_0x4ace76){if(_0x4ace76){_0x5da363=_0x4ace76;return db[_0x927f('0x33')][_0x927f('0x47')]({'where':{'type':_0x5da363[_0x927f('0x35')]},'raw':!![]});}return null;})['then'](function(_0xa318bd){if(_0x5da363[_0x927f('0x35')]['toUpperCase']()=='STUN'){var _0x120d50=fs['readFileSync'](path[_0x927f('0x52')](config[_0x927f('0x53')],_0x927f('0x54')),_0x927f('0x55'));var _0x5b5c26=ejs['render'](_0x120d50,{'networks':_0xa318bd||[]});fs[_0x927f('0x57')](_0x927f('0x60'),_0x5b5c26);return respondWithRpcPromise('Reload',_0x927f('0x61'),{'module':_0x927f('0x59')});}else if(_0x5da363[_0x927f('0x35')][_0x927f('0x5a')]()==_0x927f('0x5b')){var _0x2893e4=fs['readFileSync'](path[_0x927f('0x52')](config[_0x927f('0x53')],_0x927f('0x5c')),'utf8');var _0x47c3d3=ejs[_0x927f('0x56')](_0x2893e4,{'networks':_0xa318bd||[]});fs[_0x927f('0x57')](_0x927f('0x62'),_0x47c3d3);return respondWithRpcPromise(_0x927f('0x58'),'update',{'module':_0x927f('0x59')});}else{var _0x19bea0=fs[_0x927f('0x51')](path[_0x927f('0x52')](config[_0x927f('0x53')],_0x927f('0x63')),'utf8');var _0x514497=ejs['render'](_0x19bea0,{'networks':_0xa318bd||[]});fs['writeFileSync'](util[_0x927f('0x5d')](_0x927f('0x5e'),_0x4c98d9[_0x927f('0x50')][_0x927f('0x35')][_0x927f('0x5f')]()),_0x514497);return respondWithRpcPromise(_0x927f('0x58'),_0x927f('0x61'),{'module':_0x927f('0x64')});}return null;})[_0x927f('0x1b')](function(_0x100375){if(_0x100375){return _0x5da363;}return null;});})[_0x927f('0x1b')](respondWithResult(_0x274959,null))[_0x927f('0x23')](handleError(_0x274959,null));};exports[_0x927f('0x65')]=function(_0x1dd688,_0x1a16fa,_0x18e667){var _0x5e14b5;return db[_0x927f('0x33')][_0x927f('0x66')]({'where':{'id':_0x1dd688[_0x927f('0x4a')]['id']}})['then'](function(_0xca4fe5){_0x5e14b5=_0xca4fe5;return _0xca4fe5;})[_0x927f('0x1b')](handleEntityNotFound(_0x1a16fa,null))['then'](removeEntity(_0x1a16fa,null))[_0x927f('0x1b')](function(){if(_0x5e14b5){return db[_0x927f('0x33')]['findAll']({'where':{'type':_0x5e14b5[_0x927f('0x35')]},'raw':!![]});}})[_0x927f('0x1b')](function(_0x2ca2fe){if(_0x5e14b5[_0x927f('0x35')][_0x927f('0x5a')]()==_0x927f('0x67')){var _0x5ece52=fs[_0x927f('0x51')](path['join'](config[_0x927f('0x53')],'server/files/templates/stun_multiple.ejs'),_0x927f('0x55'));var _0x38b145=ejs['render'](_0x5ece52,{'networks':_0x2ca2fe||[]});fs[_0x927f('0x57')](_0x927f('0x60'),_0x38b145);return respondWithRpcPromise(_0x927f('0x58'),_0x927f('0x65'),{'module':_0x927f('0x59')});}else if(_0x5e14b5[_0x927f('0x35')][_0x927f('0x5a')]()==_0x927f('0x5b')){var _0x3bb0c9=fs[_0x927f('0x51')](path[_0x927f('0x52')](config[_0x927f('0x53')],_0x927f('0x5c')),_0x927f('0x55'));var _0x642aa=ejs['render'](_0x3bb0c9,{'networks':_0x2ca2fe||[]});fs[_0x927f('0x57')](_0x927f('0x62'),_0x642aa);return respondWithRpcPromise(_0x927f('0x58'),'destroy',{'module':'res_stun_monitor.so'});}else{var _0x5455f7=fs[_0x927f('0x51')](path['join'](config['root'],_0x927f('0x63')),_0x927f('0x55'));var _0x91c3d3=ejs['render'](_0x5455f7,{'networks':_0x2ca2fe||[]});fs['writeFileSync'](util[_0x927f('0x5d')](_0x927f('0x5e'),_0x1dd688['body'][_0x927f('0x35')][_0x927f('0x5f')]()),_0x91c3d3);return respondWithRpcPromise(_0x927f('0x58'),_0x927f('0x65'),{'module':_0x927f('0x64')});}return null;})[_0x927f('0x23')](handleError(_0x1a16fa,null));};