Built motion from commit 3e059bc2.|2.5.32
[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 _0x4f5a=['message','info','result','catch','sendStatus','end','status','json','offset','limit','undefined','set','apply','reject','update','then','destroy','stack','name','send','index','map','Network','type','key','model','query','keys','filters','intersection','fields','attributes','length','sort','where','merge','VIRTUAL','filter','options','count','includeAll','include','findAll','rows','show','params','rawAttributes','find','create','sequelize','transaction','body','readFileSync','join','root','server/files/templates/stun_multiple.ejs','render','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','toUpperCase','TURN','server/files/templates/turn_multiple.ejs','utf8','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','STUN','writeFileSync','/etc/asterisk/turn_xcally.conf','eml-format','rimraf','fast-json-patch','util','path','to-csv','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','jayson/promise','http','request','Network,\x20%s,\x20%s','request\x20sent','Network,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x458267,_0x5a8cf6){var _0xd97d0=function(_0x82caee){while(--_0x82caee){_0x458267['push'](_0x458267['shift']());}};_0xd97d0(++_0x5a8cf6);}(_0x4f5a,0xaa));var _0xa4f5=function(_0x30452c,_0x4e88e0){_0x30452c=_0x30452c-0x0;var _0x1dd179=_0x4f5a[_0x30452c];return _0x1dd179;};'use strict';var emlformat=require(_0xa4f5('0x0'));var rimraf=require(_0xa4f5('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa4f5('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xa4f5('0x3'));var path=require(_0xa4f5('0x4'));var sox=require('sox');var csv=require(_0xa4f5('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xa4f5('0x6'));var crypto=require(_0xa4f5('0x7'));var jsforce=require(_0xa4f5('0x8'));var deskjs=require(_0xa4f5('0x9'));var toCsv=require(_0xa4f5('0x5'));var querystring=require('querystring');var Papa=require(_0xa4f5('0xa'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xa4f5('0xb'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa4f5('0xc'));var logger=require(_0xa4f5('0xd'))(_0xa4f5('0xe'));var utils=require(_0xa4f5('0xf'));var config=require(_0xa4f5('0x10'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var jayson=require(_0xa4f5('0x11'));var client=jayson['client'][_0xa4f5('0x12')]({'port':0x232a});function respondWithRpcPromise(_0x6c40a8,_0x163e59,_0x1fad24,_0xffa3ab){return new BPromise(function(_0x493baa,_0x37c19a){var _0xbb788d=_0xffa3ab||client;return _0xbb788d[_0xa4f5('0x13')](_0x6c40a8,_0x1fad24)['then'](function(_0x4052a1){logger['info'](_0xa4f5('0x14'),_0x163e59,_0xa4f5('0x15'));logger['debug'](_0xa4f5('0x16'),_0x163e59,_0xa4f5('0x15'),JSON[_0xa4f5('0x17')](_0x4052a1));if(_0x4052a1['error']){if(_0x4052a1[_0xa4f5('0x18')][_0xa4f5('0x19')]===0x1f4){logger[_0xa4f5('0x18')]('Network,\x20%s,\x20%s',_0x163e59,_0x4052a1[_0xa4f5('0x18')][_0xa4f5('0x1a')]);return _0x37c19a(_0x4052a1[_0xa4f5('0x18')]['message']);}logger[_0xa4f5('0x18')](_0xa4f5('0x14'),_0x163e59,_0x4052a1[_0xa4f5('0x18')][_0xa4f5('0x1a')]);return _0x493baa(_0x4052a1[_0xa4f5('0x18')]['message']);}else{logger[_0xa4f5('0x1b')]('Network,\x20%s,\x20%s',_0x163e59,_0xa4f5('0x15'));_0x493baa(_0x4052a1[_0xa4f5('0x1c')][_0xa4f5('0x1a')]);}})[_0xa4f5('0x1d')](function(_0x5d73f5){logger[_0xa4f5('0x18')](_0xa4f5('0x14'),_0x163e59,_0x5d73f5);_0x37c19a(_0x5d73f5);});});}function respondWithStatusCode(_0x107214,_0x1d51d9){_0x1d51d9=_0x1d51d9||0xcc;return function(_0x1fed24){if(_0x1fed24){return _0x107214[_0xa4f5('0x1e')](_0x1d51d9);}return _0x107214['status'](_0x1d51d9)[_0xa4f5('0x1f')]();};}function respondWithResult(_0x1336f4,_0x188041){_0x188041=_0x188041||0xc8;return function(_0x56a8a6){if(_0x56a8a6){return _0x1336f4[_0xa4f5('0x20')](_0x188041)[_0xa4f5('0x21')](_0x56a8a6);}};}function respondWithFilteredResult(_0x14e27e,_0xe6ff84){return function(_0x260773){if(_0x260773){var _0x4a101d=typeof _0xe6ff84[_0xa4f5('0x22')]==='undefined'&&typeof _0xe6ff84[_0xa4f5('0x23')]===_0xa4f5('0x24');var _0x3afabe=_0x260773['count'];var _0x115869=_0x4a101d?0x0:_0xe6ff84[_0xa4f5('0x22')];var _0x467940=_0x4a101d?_0x260773['count']:_0xe6ff84[_0xa4f5('0x22')]+_0xe6ff84[_0xa4f5('0x23')];var _0x11b483;if(_0x467940>=_0x3afabe){_0x467940=_0x3afabe;_0x11b483=0xc8;}else{_0x11b483=0xce;}_0x14e27e['status'](_0x11b483);return _0x14e27e[_0xa4f5('0x25')]('Content-Range',_0x115869+'-'+_0x467940+'/'+_0x3afabe)[_0xa4f5('0x21')](_0x260773);}return null;};}function patchUpdates(_0x5eb754){return function(_0x2340b8){try{jsonpatch[_0xa4f5('0x26')](_0x2340b8,_0x5eb754,!![]);}catch(_0x5e8513){return BPromise[_0xa4f5('0x27')](_0x5e8513);}return _0x2340b8['save']();};}function saveUpdates(_0x522cb2,_0x4b715c){return function(_0x3cd7aa){if(_0x3cd7aa){return _0x3cd7aa[_0xa4f5('0x28')](_0x522cb2)[_0xa4f5('0x29')](function(_0x381a21){return _0x381a21;});}return null;};}function removeEntity(_0x4eacd2,_0x392da7){return function(_0x5762e8){if(_0x5762e8){return _0x5762e8[_0xa4f5('0x2a')]()[_0xa4f5('0x29')](function(){_0x4eacd2['status'](0xcc)[_0xa4f5('0x1f')]();});}};}function handleEntityNotFound(_0x222042,_0x1375b7){return function(_0x3e80c5){if(!_0x3e80c5){_0x222042[_0xa4f5('0x1e')](0x194);}return _0x3e80c5;};}function handleError(_0x5cbf79,_0x2c37f2){_0x2c37f2=_0x2c37f2||0x1f4;return function(_0x592019){logger['error'](_0x592019[_0xa4f5('0x2b')]);if(_0x592019[_0xa4f5('0x2c')]){delete _0x592019[_0xa4f5('0x2c')];}_0x5cbf79[_0xa4f5('0x20')](_0x2c37f2)[_0xa4f5('0x2d')](_0x592019);};}exports[_0xa4f5('0x2e')]=function(_0x276058,_0x372f31){var _0x5e74f5={},_0x3cebdc={},_0x52e07f={'count':0x0,'rows':[]};var _0x3c2a0f=_[_0xa4f5('0x2f')](db[_0xa4f5('0x30')]['rawAttributes'],function(_0x456071){return{'name':_0x456071['fieldName'],'type':_0x456071[_0xa4f5('0x31')][_0xa4f5('0x32')]};});_0x3cebdc[_0xa4f5('0x33')]=_['map'](_0x3c2a0f,_0xa4f5('0x2c'));_0x3cebdc[_0xa4f5('0x34')]=_[_0xa4f5('0x35')](_0x276058[_0xa4f5('0x34')]);_0x3cebdc[_0xa4f5('0x36')]=_[_0xa4f5('0x37')](_0x3cebdc['model'],_0x3cebdc[_0xa4f5('0x34')]);_0x5e74f5['attributes']=_[_0xa4f5('0x37')](_0x3cebdc[_0xa4f5('0x33')],qs[_0xa4f5('0x38')](_0x276058['query'][_0xa4f5('0x38')]));_0x5e74f5[_0xa4f5('0x39')]=_0x5e74f5[_0xa4f5('0x39')][_0xa4f5('0x3a')]?_0x5e74f5[_0xa4f5('0x39')]:_0x3cebdc[_0xa4f5('0x33')];if(!_0x276058[_0xa4f5('0x34')]['hasOwnProperty']('nolimit')){_0x5e74f5[_0xa4f5('0x23')]=qs[_0xa4f5('0x23')](_0x276058[_0xa4f5('0x34')][_0xa4f5('0x23')]);_0x5e74f5[_0xa4f5('0x22')]=qs[_0xa4f5('0x22')](_0x276058['query']['offset']);}_0x5e74f5['order']=qs[_0xa4f5('0x3b')](_0x276058[_0xa4f5('0x34')][_0xa4f5('0x3b')]);_0x5e74f5[_0xa4f5('0x3c')]=qs[_0xa4f5('0x36')](_['pick'](_0x276058[_0xa4f5('0x34')],_0x3cebdc['filters']),_0x3c2a0f);if(_0x276058[_0xa4f5('0x34')]['filter']){_0x5e74f5[_0xa4f5('0x3c')]=_[_0xa4f5('0x3d')](_0x5e74f5[_0xa4f5('0x3c')],{'$or':_[_0xa4f5('0x2f')](_0x3c2a0f,function(_0x352823){if(_0x352823[_0xa4f5('0x31')]!==_0xa4f5('0x3e')){var _0x654fc7={};_0x654fc7[_0x352823[_0xa4f5('0x2c')]]={'$like':'%'+_0x276058[_0xa4f5('0x34')][_0xa4f5('0x3f')]+'%'};return _0x654fc7;}})});}_0x5e74f5=_['merge']({},_0x5e74f5,_0x276058[_0xa4f5('0x40')]);var _0x3e3bde={'where':_0x5e74f5['where']};return db[_0xa4f5('0x30')][_0xa4f5('0x41')](_0x3e3bde)[_0xa4f5('0x29')](function(_0x1a1eae){_0x52e07f['count']=_0x1a1eae;if(_0x276058['query'][_0xa4f5('0x42')]){_0x5e74f5[_0xa4f5('0x43')]=[{'all':!![]}];}return db[_0xa4f5('0x30')][_0xa4f5('0x44')](_0x5e74f5);})[_0xa4f5('0x29')](function(_0x3f387c){_0x52e07f[_0xa4f5('0x45')]=_0x3f387c;return _0x52e07f;})['then'](respondWithFilteredResult(_0x372f31,_0x5e74f5))[_0xa4f5('0x1d')](handleError(_0x372f31,null));};exports[_0xa4f5('0x46')]=function(_0x5bcf89,_0x4c8a8d){var _0x312ba2={'raw':!![],'where':{'id':_0x5bcf89[_0xa4f5('0x47')]['id']}},_0x2988eb={};_0x2988eb['model']=_[_0xa4f5('0x35')](db[_0xa4f5('0x30')][_0xa4f5('0x48')]);_0x2988eb[_0xa4f5('0x34')]=_[_0xa4f5('0x35')](_0x5bcf89[_0xa4f5('0x34')]);_0x2988eb[_0xa4f5('0x36')]=_[_0xa4f5('0x37')](_0x2988eb[_0xa4f5('0x33')],_0x2988eb['query']);_0x312ba2['attributes']=_[_0xa4f5('0x37')](_0x2988eb['model'],qs[_0xa4f5('0x38')](_0x5bcf89['query']['fields']));_0x312ba2[_0xa4f5('0x39')]=_0x312ba2[_0xa4f5('0x39')]['length']?_0x312ba2[_0xa4f5('0x39')]:_0x2988eb['model'];if(_0x5bcf89[_0xa4f5('0x34')][_0xa4f5('0x42')]){_0x312ba2[_0xa4f5('0x43')]=[{'all':!![]}];}_0x312ba2=_[_0xa4f5('0x3d')]({},_0x312ba2,_0x5bcf89[_0xa4f5('0x40')]);return db[_0xa4f5('0x30')][_0xa4f5('0x49')](_0x312ba2)[_0xa4f5('0x29')](handleEntityNotFound(_0x4c8a8d,null))[_0xa4f5('0x29')](respondWithResult(_0x4c8a8d,null))[_0xa4f5('0x1d')](handleError(_0x4c8a8d,null));};exports[_0xa4f5('0x4a')]=function(_0x4add68,_0x7a43ab,_0x37a95b){var _0x515254;return db[_0xa4f5('0x4b')][_0xa4f5('0x4c')](function(_0x317a0c){return db[_0xa4f5('0x30')]['create'](_0x4add68[_0xa4f5('0x4d')],{'raw':!![]})['then'](function(_0x4f0097){_0x515254=_0x4f0097;return db[_0xa4f5('0x30')]['findAll']({'where':{'type':_0x4add68['body'][_0xa4f5('0x31')]},'raw':!![]});})['then'](function(_0x357ae0){if(_0x515254[_0xa4f5('0x31')]['toUpperCase']()=='STUN'){var _0x455abc=fs[_0xa4f5('0x4e')](path[_0xa4f5('0x4f')](config[_0xa4f5('0x50')],_0xa4f5('0x51')),'utf8');var _0x5d7330=ejs[_0xa4f5('0x52')](_0x455abc,{'networks':_0x357ae0||[]});fs['writeFileSync'](_0xa4f5('0x53'),_0x5d7330);return respondWithRpcPromise(_0xa4f5('0x54'),'create',{'module':_0xa4f5('0x55')});}else if(_0x515254[_0xa4f5('0x31')][_0xa4f5('0x56')]()==_0xa4f5('0x57')){var _0x3338f2=fs[_0xa4f5('0x4e')](path[_0xa4f5('0x4f')](config[_0xa4f5('0x50')],_0xa4f5('0x58')),_0xa4f5('0x59'));var _0x549caf=ejs[_0xa4f5('0x52')](_0x3338f2,{'networks':_0x357ae0||[]});fs['writeFileSync']('/etc/asterisk/turn_xcally.conf',_0x549caf);return respondWithRpcPromise('Reload',_0xa4f5('0x4a'),{'module':_0xa4f5('0x55')});}else{var _0x599b7b=fs['readFileSync'](path[_0xa4f5('0x4f')](config[_0xa4f5('0x50')],_0xa4f5('0x5a')),_0xa4f5('0x59'));var _0xbfc8e4=ejs[_0xa4f5('0x52')](_0x599b7b,{'networks':_0x357ae0||[]});fs['writeFileSync'](util[_0xa4f5('0x5b')](_0xa4f5('0x5c'),_0x4add68[_0xa4f5('0x4d')][_0xa4f5('0x31')][_0xa4f5('0x5d')]()),_0xbfc8e4);return respondWithRpcPromise(_0xa4f5('0x54'),_0xa4f5('0x4a'),{'module':_0xa4f5('0x5e')});}return null;})['then'](function(){return _0x515254;});})[_0xa4f5('0x29')](respondWithResult(_0x7a43ab,0xc9))[_0xa4f5('0x1d')](handleError(_0x7a43ab,null));};exports[_0xa4f5('0x28')]=function(_0x32c8d4,_0x4205e7,_0xde6691){var _0x14a613;return db['sequelize'][_0xa4f5('0x4c')](function(_0xbd37dd){return db[_0xa4f5('0x30')][_0xa4f5('0x49')]({'where':{'id':_0x32c8d4[_0xa4f5('0x47')]['id']}})[_0xa4f5('0x29')](handleEntityNotFound(_0x4205e7,null))[_0xa4f5('0x29')](saveUpdates(_0x32c8d4[_0xa4f5('0x4d')],null))[_0xa4f5('0x29')](function(_0x313cfd){if(_0x313cfd){_0x14a613=_0x313cfd;return db['Network'][_0xa4f5('0x44')]({'where':{'type':_0x14a613['type']},'raw':!![]});}return null;})['then'](function(_0x5bff9f){if(_0x14a613[_0xa4f5('0x31')][_0xa4f5('0x56')]()==_0xa4f5('0x5f')){var _0x24feae=fs['readFileSync'](path[_0xa4f5('0x4f')](config[_0xa4f5('0x50')],_0xa4f5('0x51')),_0xa4f5('0x59'));var _0x5d38d2=ejs[_0xa4f5('0x52')](_0x24feae,{'networks':_0x5bff9f||[]});fs[_0xa4f5('0x60')](_0xa4f5('0x53'),_0x5d38d2);return respondWithRpcPromise('Reload',_0xa4f5('0x28'),{'module':_0xa4f5('0x55')});}else if(_0x14a613['type']['toUpperCase']()==_0xa4f5('0x57')){var _0x5a9426=fs['readFileSync'](path[_0xa4f5('0x4f')](config[_0xa4f5('0x50')],_0xa4f5('0x58')),'utf8');var _0x2ff1bf=ejs[_0xa4f5('0x52')](_0x5a9426,{'networks':_0x5bff9f||[]});fs['writeFileSync'](_0xa4f5('0x61'),_0x2ff1bf);return respondWithRpcPromise(_0xa4f5('0x54'),_0xa4f5('0x28'),{'module':_0xa4f5('0x55')});}else{var _0x72e81b=fs[_0xa4f5('0x4e')](path[_0xa4f5('0x4f')](config[_0xa4f5('0x50')],_0xa4f5('0x5a')),_0xa4f5('0x59'));var _0x1cb70b=ejs['render'](_0x72e81b,{'networks':_0x5bff9f||[]});fs['writeFileSync'](util['format'](_0xa4f5('0x5c'),_0x32c8d4[_0xa4f5('0x4d')][_0xa4f5('0x31')][_0xa4f5('0x5d')]()),_0x1cb70b);return respondWithRpcPromise(_0xa4f5('0x54'),_0xa4f5('0x28'),{'module':_0xa4f5('0x5e')});}return null;})[_0xa4f5('0x29')](function(_0x5443e4){if(_0x5443e4){return _0x14a613;}return null;});})[_0xa4f5('0x29')](respondWithResult(_0x4205e7,null))[_0xa4f5('0x1d')](handleError(_0x4205e7,null));};exports[_0xa4f5('0x2a')]=function(_0x12db5e,_0x1bba42,_0x2805d5){var _0x5d637a;return db[_0xa4f5('0x30')][_0xa4f5('0x49')]({'where':{'id':_0x12db5e[_0xa4f5('0x47')]['id']}})['then'](function(_0x215c48){_0x5d637a=_0x215c48;return _0x215c48;})['then'](handleEntityNotFound(_0x1bba42,null))[_0xa4f5('0x29')](removeEntity(_0x1bba42,null))[_0xa4f5('0x29')](function(){if(_0x5d637a){return db[_0xa4f5('0x30')]['findAll']({'where':{'type':_0x5d637a[_0xa4f5('0x31')]},'raw':!![]});}})['then'](function(_0x3d165b){if(_0x5d637a[_0xa4f5('0x31')][_0xa4f5('0x56')]()==_0xa4f5('0x5f')){var _0x156721=fs[_0xa4f5('0x4e')](path[_0xa4f5('0x4f')](config['root'],_0xa4f5('0x51')),'utf8');var _0x8b1b7d=ejs[_0xa4f5('0x52')](_0x156721,{'networks':_0x3d165b||[]});fs[_0xa4f5('0x60')](_0xa4f5('0x53'),_0x8b1b7d);return respondWithRpcPromise(_0xa4f5('0x54'),_0xa4f5('0x2a'),{'module':_0xa4f5('0x55')});}else if(_0x5d637a['type']['toUpperCase']()==_0xa4f5('0x57')){var _0x45de89=fs[_0xa4f5('0x4e')](path[_0xa4f5('0x4f')](config[_0xa4f5('0x50')],_0xa4f5('0x58')),'utf8');var _0x38b224=ejs[_0xa4f5('0x52')](_0x45de89,{'networks':_0x3d165b||[]});fs[_0xa4f5('0x60')]('/etc/asterisk/turn_xcally.conf',_0x38b224);return respondWithRpcPromise(_0xa4f5('0x54'),_0xa4f5('0x2a'),{'module':_0xa4f5('0x55')});}else{var _0x51e230=fs[_0xa4f5('0x4e')](path[_0xa4f5('0x4f')](config[_0xa4f5('0x50')],_0xa4f5('0x5a')),_0xa4f5('0x59'));var _0x1d5c5a=ejs[_0xa4f5('0x52')](_0x51e230,{'networks':_0x3d165b||[]});fs[_0xa4f5('0x60')](util[_0xa4f5('0x5b')](_0xa4f5('0x5c'),_0x12db5e[_0xa4f5('0x4d')][_0xa4f5('0x31')][_0xa4f5('0x5d')]()),_0x1d5c5a);return respondWithRpcPromise(_0xa4f5('0x54'),_0xa4f5('0x2a'),{'module':_0xa4f5('0x5e')});}return null;})[_0xa4f5('0x1d')](handleError(_0x1bba42,null));};