cb662ba5c37a4f651382b3ff7aa67f0e436c0fdd
[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 _0x22b4=['options','include','findAll','rows','includeAll','find','create','transaction','body','STUN','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','render','/etc/asterisk/stun_xcally.conf','Reload','toUpperCase','server/files/templates/turn_multiple.ejs','writeFileSync','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','toLowerCase','chan_sip.so','params','res_stun_monitor.so','TURN','/etc/asterisk/sip_xcally_%s.conf','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','request','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','name','send','index','map','Network','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL'];(function(_0x28dbbe,_0x333699){var _0x4ef5bc=function(_0x30cc1d){while(--_0x30cc1d){_0x28dbbe['push'](_0x28dbbe['shift']());}};_0x4ef5bc(++_0x333699);}(_0x22b4,0x8b));var _0x422b=function(_0x556927,_0x34b53f){_0x556927=_0x556927-0x0;var _0x5f1235=_0x22b4[_0x556927];return _0x5f1235;};'use strict';var pdf=require(_0x422b('0x0'));var emlformat=require(_0x422b('0x1'));var rimraf=require(_0x422b('0x2'));var zipdir=require(_0x422b('0x3'));var jsonpatch=require(_0x422b('0x4'));var rp=require(_0x422b('0x5'));var moment=require('moment');var BPromise=require(_0x422b('0x6'));var Mustache=require(_0x422b('0x7'));var util=require('util');var path=require(_0x422b('0x8'));var sox=require(_0x422b('0x9'));var csv=require(_0x422b('0xa'));var ejs=require(_0x422b('0xb'));var fs=require('fs');var _=require(_0x422b('0xc'));var squel=require(_0x422b('0xd'));var crypto=require('crypto');var jsforce=require(_0x422b('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x422b('0xa'));var querystring=require(_0x422b('0xf'));var Papa=require(_0x422b('0x10'));var Redis=require(_0x422b('0x11'));var authService=require(_0x422b('0x12'));var qs=require(_0x422b('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x422b('0x14'));var logger=require(_0x422b('0x15'))(_0x422b('0x16'));var utils=require(_0x422b('0x17'));var config=require(_0x422b('0x18'));var licenseUtil=require(_0x422b('0x19'));var db=require(_0x422b('0x1a'))['db'];var jayson=require(_0x422b('0x1b'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x4339ef,_0x3222c4,_0x1c34dd,_0x803900){return new BPromise(function(_0x2eadaa,_0x310622){var _0x39ccdb=_0x803900||client;return _0x39ccdb[_0x422b('0x1c')](_0x4339ef,_0x1c34dd)['then'](function(_0x1e40eb){logger['info'](_0x422b('0x1d'),_0x3222c4,_0x422b('0x1e'));logger[_0x422b('0x1f')](_0x422b('0x20'),_0x3222c4,_0x422b('0x1e'),JSON[_0x422b('0x21')](_0x1e40eb));if(_0x1e40eb['error']){if(_0x1e40eb[_0x422b('0x22')][_0x422b('0x23')]===0x1f4){logger[_0x422b('0x22')]('Network,\x20%s,\x20%s',_0x3222c4,_0x1e40eb[_0x422b('0x22')][_0x422b('0x24')]);return _0x310622(_0x1e40eb[_0x422b('0x22')][_0x422b('0x24')]);}logger[_0x422b('0x22')](_0x422b('0x1d'),_0x3222c4,_0x1e40eb[_0x422b('0x22')]['message']);return _0x2eadaa(_0x1e40eb[_0x422b('0x22')]['message']);}else{logger['info'](_0x422b('0x1d'),_0x3222c4,'request\x20sent');_0x2eadaa(_0x1e40eb[_0x422b('0x25')]['message']);}})[_0x422b('0x26')](function(_0x1f51a6){logger[_0x422b('0x22')]('Network,\x20%s,\x20%s',_0x3222c4,_0x1f51a6);_0x310622(_0x1f51a6);});});}function respondWithStatusCode(_0x394c50,_0x21fb07){_0x21fb07=_0x21fb07||0xcc;return function(_0x3c34db){if(_0x3c34db){return _0x394c50[_0x422b('0x27')](_0x21fb07);}return _0x394c50[_0x422b('0x28')](_0x21fb07)[_0x422b('0x29')]();};}function respondWithResult(_0x179461,_0x1f7d44){_0x1f7d44=_0x1f7d44||0xc8;return function(_0x3baba8){if(_0x3baba8){return _0x179461[_0x422b('0x28')](_0x1f7d44)[_0x422b('0x2a')](_0x3baba8);}};}function respondWithFilteredResult(_0x5dbdad,_0x954459){return function(_0x3d85ec){if(_0x3d85ec){var _0xa6d1e3=_0x3d85ec[_0x422b('0x2b')],_0x5b375f=_0x954459[_0x422b('0x2c')],_0x48d2d9=_0x954459['offset']+_0x954459[_0x422b('0x2d')],_0x49e645;if(_0x48d2d9>=_0xa6d1e3){_0x48d2d9=_0xa6d1e3;_0x49e645=0xc8;}else{_0x49e645=0xce;}_0x5dbdad[_0x422b('0x28')](_0x49e645);return _0x5dbdad[_0x422b('0x2e')](_0x422b('0x2f'),_0x5b375f+'-'+_0x48d2d9+'/'+_0xa6d1e3)[_0x422b('0x2a')](_0x3d85ec);}return null;};}function patchUpdates(_0x19a4e8){return function(_0x11a6bb){try{jsonpatch[_0x422b('0x30')](_0x11a6bb,_0x19a4e8,!![]);}catch(_0x51c408){return BPromise['reject'](_0x51c408);}return _0x11a6bb[_0x422b('0x31')]();};}function saveUpdates(_0x429cff,_0x1a73c6){return function(_0x58d571){if(_0x58d571){return _0x58d571[_0x422b('0x32')](_0x429cff)[_0x422b('0x33')](function(_0x502146){return _0x502146;});}return null;};}function removeEntity(_0x22f504,_0x33bcac){return function(_0x3597d1){if(_0x3597d1){return _0x3597d1[_0x422b('0x34')]()[_0x422b('0x33')](function(){_0x22f504[_0x422b('0x28')](0xcc)[_0x422b('0x29')]();});}};}function handleEntityNotFound(_0x307d50,_0x2dd29a){return function(_0x391f22){if(!_0x391f22){_0x307d50[_0x422b('0x27')](0x194);}return _0x391f22;};}function handleError(_0x11b3c6,_0x5cc5df){_0x5cc5df=_0x5cc5df||0x1f4;return function(_0x20149a){logger[_0x422b('0x22')](_0x20149a['stack']);if(_0x20149a[_0x422b('0x35')]){delete _0x20149a[_0x422b('0x35')];}_0x11b3c6[_0x422b('0x28')](_0x5cc5df)[_0x422b('0x36')](_0x20149a);};}exports[_0x422b('0x37')]=function(_0x92370,_0x316d28){var _0x35a810={},_0x44a3e1={},_0x1df666={'count':0x0,'rows':[]};var _0x4e4477=_[_0x422b('0x38')](db[_0x422b('0x39')][_0x422b('0x3a')],function(_0x1e3576){return{'name':_0x1e3576[_0x422b('0x3b')],'type':_0x1e3576[_0x422b('0x3c')][_0x422b('0x3d')]};});_0x44a3e1[_0x422b('0x3e')]=_[_0x422b('0x38')](_0x4e4477,_0x422b('0x35'));_0x44a3e1['query']=_[_0x422b('0x3f')](_0x92370[_0x422b('0x40')]);_0x44a3e1[_0x422b('0x41')]=_[_0x422b('0x42')](_0x44a3e1[_0x422b('0x3e')],_0x44a3e1[_0x422b('0x40')]);_0x35a810[_0x422b('0x43')]=_[_0x422b('0x42')](_0x44a3e1['model'],qs[_0x422b('0x44')](_0x92370[_0x422b('0x40')][_0x422b('0x44')]));_0x35a810['attributes']=_0x35a810[_0x422b('0x43')][_0x422b('0x45')]?_0x35a810[_0x422b('0x43')]:_0x44a3e1[_0x422b('0x3e')];if(!_0x92370[_0x422b('0x40')][_0x422b('0x46')](_0x422b('0x47'))){_0x35a810[_0x422b('0x2d')]=qs[_0x422b('0x2d')](_0x92370[_0x422b('0x40')][_0x422b('0x2d')]);_0x35a810[_0x422b('0x2c')]=qs[_0x422b('0x2c')](_0x92370[_0x422b('0x40')][_0x422b('0x2c')]);}_0x35a810[_0x422b('0x48')]=qs[_0x422b('0x49')](_0x92370[_0x422b('0x40')][_0x422b('0x49')]);_0x35a810['where']=qs[_0x422b('0x41')](_[_0x422b('0x4a')](_0x92370[_0x422b('0x40')],_0x44a3e1[_0x422b('0x41')]),_0x4e4477);if(_0x92370[_0x422b('0x40')][_0x422b('0x4b')]){_0x35a810[_0x422b('0x4c')]=_[_0x422b('0x4d')](_0x35a810['where'],{'$or':_[_0x422b('0x38')](_0x4e4477,function(_0x6fd327){if(_0x6fd327[_0x422b('0x3c')]!==_0x422b('0x4e')){var _0x469477={};_0x469477[_0x6fd327[_0x422b('0x35')]]={'$like':'%'+_0x92370['query'][_0x422b('0x4b')]+'%'};return _0x469477;}})});}_0x35a810=_[_0x422b('0x4d')]({},_0x35a810,_0x92370[_0x422b('0x4f')]);var _0xebddb={'where':_0x35a810[_0x422b('0x4c')]};return db[_0x422b('0x39')][_0x422b('0x2b')](_0xebddb)[_0x422b('0x33')](function(_0x1a315f){_0x1df666[_0x422b('0x2b')]=_0x1a315f;if(_0x92370[_0x422b('0x40')]['includeAll']){_0x35a810[_0x422b('0x50')]=[{'all':!![]}];}return db[_0x422b('0x39')][_0x422b('0x51')](_0x35a810);})['then'](function(_0x3d94a7){_0x1df666[_0x422b('0x52')]=_0x3d94a7;return _0x1df666;})[_0x422b('0x33')](respondWithFilteredResult(_0x316d28,_0x35a810))[_0x422b('0x26')](handleError(_0x316d28,null));};exports['show']=function(_0x583eee,_0x40439d){var _0x7fdee5={'raw':!![],'where':{'id':_0x583eee['params']['id']}},_0x26ac0={};_0x26ac0[_0x422b('0x3e')]=_[_0x422b('0x3f')](db[_0x422b('0x39')][_0x422b('0x3a')]);_0x26ac0['query']=_[_0x422b('0x3f')](_0x583eee[_0x422b('0x40')]);_0x26ac0['filters']=_[_0x422b('0x42')](_0x26ac0[_0x422b('0x3e')],_0x26ac0[_0x422b('0x40')]);_0x7fdee5[_0x422b('0x43')]=_[_0x422b('0x42')](_0x26ac0['model'],qs['fields'](_0x583eee[_0x422b('0x40')][_0x422b('0x44')]));_0x7fdee5[_0x422b('0x43')]=_0x7fdee5['attributes'][_0x422b('0x45')]?_0x7fdee5[_0x422b('0x43')]:_0x26ac0[_0x422b('0x3e')];if(_0x583eee[_0x422b('0x40')][_0x422b('0x53')]){_0x7fdee5['include']=[{'all':!![]}];}_0x7fdee5=_['merge']({},_0x7fdee5,_0x583eee[_0x422b('0x4f')]);return db[_0x422b('0x39')][_0x422b('0x54')](_0x7fdee5)[_0x422b('0x33')](handleEntityNotFound(_0x40439d,null))[_0x422b('0x33')](respondWithResult(_0x40439d,null))[_0x422b('0x26')](handleError(_0x40439d,null));};exports[_0x422b('0x55')]=function(_0x181f07,_0x36d650,_0x4e0a50){var _0x5e1dd6;return db['sequelize'][_0x422b('0x56')](function(_0x4f889a){return db['Network'][_0x422b('0x55')](_0x181f07[_0x422b('0x57')],{'raw':!![]})[_0x422b('0x33')](function(_0x2ff122){_0x5e1dd6=_0x2ff122;return db[_0x422b('0x39')][_0x422b('0x51')]({'where':{'type':_0x181f07[_0x422b('0x57')][_0x422b('0x3c')]},'raw':!![]});})[_0x422b('0x33')](function(_0x4485c2){if(_0x5e1dd6[_0x422b('0x3c')]['toUpperCase']()==_0x422b('0x58')){var _0x30d6e3=fs[_0x422b('0x59')](path[_0x422b('0x5a')](config[_0x422b('0x5b')],_0x422b('0x5c')),_0x422b('0x5d'));var _0x845564=ejs[_0x422b('0x5e')](_0x30d6e3,{'networks':_0x4485c2||[]});fs['writeFileSync'](_0x422b('0x5f'),_0x845564);return respondWithRpcPromise(_0x422b('0x60'),_0x422b('0x55'),{'module':'res_stun_monitor.so'});}else if(_0x5e1dd6[_0x422b('0x3c')][_0x422b('0x61')]()=='TURN'){var _0x5c9f4c=fs[_0x422b('0x59')](path[_0x422b('0x5a')](config[_0x422b('0x5b')],_0x422b('0x62')),'utf8');var _0x422160=ejs['render'](_0x5c9f4c,{'networks':_0x4485c2||[]});fs[_0x422b('0x63')](_0x422b('0x64'),_0x422160);return respondWithRpcPromise(_0x422b('0x60'),_0x422b('0x55'),{'module':'res_stun_monitor.so'});}else{var _0x292b98=fs[_0x422b('0x59')](path[_0x422b('0x5a')](config[_0x422b('0x5b')],_0x422b('0x65')),'utf8');var _0xd015ea=ejs['render'](_0x292b98,{'networks':_0x4485c2||[]});fs['writeFileSync'](util[_0x422b('0x66')]('/etc/asterisk/sip_xcally_%s.conf',_0x181f07['body'][_0x422b('0x3c')][_0x422b('0x67')]()),_0xd015ea);return respondWithRpcPromise('Reload',_0x422b('0x55'),{'module':_0x422b('0x68')});}return null;})['then'](function(){return _0x5e1dd6;});})[_0x422b('0x33')](respondWithResult(_0x36d650,0xc9))['catch'](handleError(_0x36d650,null));};exports[_0x422b('0x32')]=function(_0x149f7b,_0x363c1f,_0x14c036){var _0x305d0c;return db['sequelize'][_0x422b('0x56')](function(_0x89cb87){return db[_0x422b('0x39')][_0x422b('0x54')]({'where':{'id':_0x149f7b[_0x422b('0x69')]['id']}})['then'](handleEntityNotFound(_0x363c1f,null))[_0x422b('0x33')](saveUpdates(_0x149f7b[_0x422b('0x57')],null))[_0x422b('0x33')](function(_0x201b0c){if(_0x201b0c){_0x305d0c=_0x201b0c;return db[_0x422b('0x39')]['findAll']({'where':{'type':_0x305d0c[_0x422b('0x3c')]},'raw':!![]});}return null;})[_0x422b('0x33')](function(_0xfec5ac){if(_0x305d0c[_0x422b('0x3c')][_0x422b('0x61')]()==_0x422b('0x58')){var _0x3da8b6=fs[_0x422b('0x59')](path['join'](config[_0x422b('0x5b')],_0x422b('0x5c')),_0x422b('0x5d'));var _0x36cd37=ejs[_0x422b('0x5e')](_0x3da8b6,{'networks':_0xfec5ac||[]});fs[_0x422b('0x63')](_0x422b('0x5f'),_0x36cd37);return respondWithRpcPromise(_0x422b('0x60'),_0x422b('0x32'),{'module':_0x422b('0x6a')});}else if(_0x305d0c[_0x422b('0x3c')][_0x422b('0x61')]()==_0x422b('0x6b')){var _0x396980=fs[_0x422b('0x59')](path[_0x422b('0x5a')](config[_0x422b('0x5b')],_0x422b('0x62')),'utf8');var _0x39041f=ejs[_0x422b('0x5e')](_0x396980,{'networks':_0xfec5ac||[]});fs[_0x422b('0x63')](_0x422b('0x64'),_0x39041f);return respondWithRpcPromise('Reload','update',{'module':_0x422b('0x6a')});}else{var _0xa76faf=fs[_0x422b('0x59')](path['join'](config[_0x422b('0x5b')],'server/files/templates/network.ejs'),_0x422b('0x5d'));var _0x5bd7fc=ejs['render'](_0xa76faf,{'networks':_0xfec5ac||[]});fs[_0x422b('0x63')](util[_0x422b('0x66')](_0x422b('0x6c'),_0x149f7b[_0x422b('0x57')][_0x422b('0x3c')][_0x422b('0x67')]()),_0x5bd7fc);return respondWithRpcPromise('Reload','update',{'module':_0x422b('0x68')});}return null;})[_0x422b('0x33')](function(_0x4a2223){if(_0x4a2223){return _0x305d0c;}return null;});})[_0x422b('0x33')](respondWithResult(_0x363c1f,null))['catch'](handleError(_0x363c1f,null));};exports[_0x422b('0x34')]=function(_0x4cdd0f,_0x10d1bd,_0x5a4514){var _0x27403e;return db['Network'][_0x422b('0x54')]({'where':{'id':_0x4cdd0f[_0x422b('0x69')]['id']}})[_0x422b('0x33')](function(_0x274538){_0x27403e=_0x274538;return _0x274538;})[_0x422b('0x33')](handleEntityNotFound(_0x10d1bd,null))[_0x422b('0x33')](removeEntity(_0x10d1bd,null))[_0x422b('0x33')](function(){if(_0x27403e){return db[_0x422b('0x39')][_0x422b('0x51')]({'where':{'type':_0x27403e[_0x422b('0x3c')]},'raw':!![]});}})['then'](function(_0x4d900b){if(_0x27403e[_0x422b('0x3c')][_0x422b('0x61')]()==_0x422b('0x58')){var _0x2be59e=fs[_0x422b('0x59')](path[_0x422b('0x5a')](config['root'],_0x422b('0x5c')),_0x422b('0x5d'));var _0x50ec00=ejs['render'](_0x2be59e,{'networks':_0x4d900b||[]});fs[_0x422b('0x63')]('/etc/asterisk/stun_xcally.conf',_0x50ec00);return respondWithRpcPromise(_0x422b('0x60'),_0x422b('0x34'),{'module':_0x422b('0x6a')});}else if(_0x27403e[_0x422b('0x3c')][_0x422b('0x61')]()=='TURN'){var _0x27d53b=fs[_0x422b('0x59')](path[_0x422b('0x5a')](config[_0x422b('0x5b')],_0x422b('0x62')),_0x422b('0x5d'));var _0x187e5b=ejs[_0x422b('0x5e')](_0x27d53b,{'networks':_0x4d900b||[]});fs[_0x422b('0x63')](_0x422b('0x64'),_0x187e5b);return respondWithRpcPromise(_0x422b('0x60'),_0x422b('0x34'),{'module':'res_stun_monitor.so'});}else{var _0x139cc3=fs[_0x422b('0x59')](path[_0x422b('0x5a')](config[_0x422b('0x5b')],_0x422b('0x65')),_0x422b('0x5d'));var _0x448608=ejs[_0x422b('0x5e')](_0x139cc3,{'networks':_0x4d900b||[]});fs[_0x422b('0x63')](util[_0x422b('0x66')](_0x422b('0x6c'),_0x4cdd0f[_0x422b('0x57')][_0x422b('0x3c')][_0x422b('0x67')]()),_0x448608);return respondWithRpcPromise(_0x422b('0x60'),_0x422b('0x34'),{'module':'chan_sip.so'});}return null;})[_0x422b('0x26')](handleError(_0x10d1bd,null));};