e7b94a53945098e3026a0a0d9d4c344a0b8f5750
[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 _0xc4aa=['body','toLowerCase','chan_sip.so','transaction','server/files/templates/turn_multiple.ejs','params','format','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','path','sox','to-csv','ejs','lodash','squel','crypto','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise','http','request','then','info','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','Network,\x20%s,\x20%s','result','sendStatus','status','end','json','offset','limit','set','apply','save','update','destroy','stack','name','send','map','Network','fieldName','key','model','query','keys','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','type','VIRTUAL','options','count','includeAll','findAll','rows','show','rawAttributes','fields','include','find','catch','create','sequelize','toUpperCase','STUN','join','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','readFileSync','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','/etc/asterisk/sip_xcally_%s.conf'];(function(_0xcb7551,_0x5aa3af){var _0x39ca19=function(_0x3a1f02){while(--_0x3a1f02){_0xcb7551['push'](_0xcb7551['shift']());}};_0x39ca19(++_0x5aa3af);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0xc4aa[_0x19950b];return _0x3c6b41;};'use strict';var pdf=require(_0xac4a('0x0'));var emlformat=require(_0xac4a('0x1'));var rimraf=require(_0xac4a('0x2'));var zipdir=require(_0xac4a('0x3'));var jsonpatch=require(_0xac4a('0x4'));var rp=require(_0xac4a('0x5'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xac4a('0x6'));var path=require(_0xac4a('0x7'));var sox=require(_0xac4a('0x8'));var csv=require(_0xac4a('0x9'));var ejs=require(_0xac4a('0xa'));var fs=require('fs');var _=require(_0xac4a('0xb'));var squel=require(_0xac4a('0xc'));var crypto=require(_0xac4a('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xac4a('0x9'));var querystring=require(_0xac4a('0xe'));var Papa=require(_0xac4a('0xf'));var Redis=require('ioredis');var authService=require(_0xac4a('0x10'));var qs=require(_0xac4a('0x11'));var as=require(_0xac4a('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xac4a('0x13'))('api');var utils=require(_0xac4a('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xac4a('0x15'));var db=require(_0xac4a('0x16'))['db'];var jayson=require(_0xac4a('0x17'));var client=jayson['client'][_0xac4a('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x68424a,_0x247b78,_0x6e00d4,_0x1b4313){return new BPromise(function(_0x3b71c0,_0x34bc01){var _0x33c287=_0x1b4313||client;return _0x33c287[_0xac4a('0x19')](_0x68424a,_0x6e00d4)[_0xac4a('0x1a')](function(_0x11e101){logger[_0xac4a('0x1b')]('Network,\x20%s,\x20%s',_0x247b78,_0xac4a('0x1c'));logger[_0xac4a('0x1d')](_0xac4a('0x1e'),_0x247b78,_0xac4a('0x1c'),JSON[_0xac4a('0x1f')](_0x11e101));if(_0x11e101[_0xac4a('0x20')]){if(_0x11e101[_0xac4a('0x20')][_0xac4a('0x21')]===0x1f4){logger['error']('Network,\x20%s,\x20%s',_0x247b78,_0x11e101[_0xac4a('0x20')][_0xac4a('0x22')]);return _0x34bc01(_0x11e101[_0xac4a('0x20')]['message']);}logger[_0xac4a('0x20')](_0xac4a('0x23'),_0x247b78,_0x11e101[_0xac4a('0x20')][_0xac4a('0x22')]);return _0x3b71c0(_0x11e101[_0xac4a('0x20')][_0xac4a('0x22')]);}else{logger[_0xac4a('0x1b')](_0xac4a('0x23'),_0x247b78,'request\x20sent');_0x3b71c0(_0x11e101[_0xac4a('0x24')][_0xac4a('0x22')]);}})['catch'](function(_0x3d7ce0){logger[_0xac4a('0x20')](_0xac4a('0x23'),_0x247b78,_0x3d7ce0);_0x34bc01(_0x3d7ce0);});});}function respondWithStatusCode(_0x947d8e,_0x4d2d6c){_0x4d2d6c=_0x4d2d6c||0xcc;return function(_0x1b7998){if(_0x1b7998){return _0x947d8e[_0xac4a('0x25')](_0x4d2d6c);}return _0x947d8e[_0xac4a('0x26')](_0x4d2d6c)[_0xac4a('0x27')]();};}function respondWithResult(_0x594f36,_0x2b0dc2){_0x2b0dc2=_0x2b0dc2||0xc8;return function(_0x222507){if(_0x222507){return _0x594f36[_0xac4a('0x26')](_0x2b0dc2)[_0xac4a('0x28')](_0x222507);}};}function respondWithFilteredResult(_0x3bc318,_0x1d0539){return function(_0x215a31){if(_0x215a31){var _0x14832b=_0x215a31['count'],_0x472c57=_0x1d0539[_0xac4a('0x29')],_0x1c13dc=_0x1d0539[_0xac4a('0x29')]+_0x1d0539[_0xac4a('0x2a')],_0x20202c;if(_0x1c13dc>=_0x14832b){_0x1c13dc=_0x14832b;_0x20202c=0xc8;}else{_0x20202c=0xce;}_0x3bc318[_0xac4a('0x26')](_0x20202c);return _0x3bc318[_0xac4a('0x2b')]('Content-Range',_0x472c57+'-'+_0x1c13dc+'/'+_0x14832b)['json'](_0x215a31);}return null;};}function patchUpdates(_0xdb7e){return function(_0x7a948b){try{jsonpatch[_0xac4a('0x2c')](_0x7a948b,_0xdb7e,!![]);}catch(_0x546b65){return BPromise['reject'](_0x546b65);}return _0x7a948b[_0xac4a('0x2d')]();};}function saveUpdates(_0x2896bc,_0x228629){return function(_0x432066){if(_0x432066){return _0x432066[_0xac4a('0x2e')](_0x2896bc)['then'](function(_0x6dcc7f){return _0x6dcc7f;});}return null;};}function removeEntity(_0x482afc,_0x30364b){return function(_0x57adcf){if(_0x57adcf){return _0x57adcf[_0xac4a('0x2f')]()[_0xac4a('0x1a')](function(){_0x482afc[_0xac4a('0x26')](0xcc)[_0xac4a('0x27')]();});}};}function handleEntityNotFound(_0x34577f,_0x61e552){return function(_0xbd4591){if(!_0xbd4591){_0x34577f[_0xac4a('0x25')](0x194);}return _0xbd4591;};}function handleError(_0x29fb3b,_0xfd7c16){_0xfd7c16=_0xfd7c16||0x1f4;return function(_0x36ab49){logger[_0xac4a('0x20')](_0x36ab49[_0xac4a('0x30')]);if(_0x36ab49[_0xac4a('0x31')]){delete _0x36ab49['name'];}_0x29fb3b[_0xac4a('0x26')](_0xfd7c16)[_0xac4a('0x32')](_0x36ab49);};}exports['index']=function(_0x2a5419,_0x1af1c1){var _0x565164={},_0x58804b={},_0x11f0be={'count':0x0,'rows':[]};var _0x1ba096=_[_0xac4a('0x33')](db[_0xac4a('0x34')]['rawAttributes'],function(_0x453d02){return{'name':_0x453d02[_0xac4a('0x35')],'type':_0x453d02['type'][_0xac4a('0x36')]};});_0x58804b[_0xac4a('0x37')]=_[_0xac4a('0x33')](_0x1ba096,'name');_0x58804b[_0xac4a('0x38')]=_[_0xac4a('0x39')](_0x2a5419[_0xac4a('0x38')]);_0x58804b['filters']=_[_0xac4a('0x3a')](_0x58804b[_0xac4a('0x37')],_0x58804b['query']);_0x565164['attributes']=_[_0xac4a('0x3a')](_0x58804b['model'],qs['fields'](_0x2a5419['query']['fields']));_0x565164[_0xac4a('0x3b')]=_0x565164[_0xac4a('0x3b')][_0xac4a('0x3c')]?_0x565164[_0xac4a('0x3b')]:_0x58804b[_0xac4a('0x37')];if(!_0x2a5419[_0xac4a('0x38')][_0xac4a('0x3d')](_0xac4a('0x3e'))){_0x565164[_0xac4a('0x2a')]=qs[_0xac4a('0x2a')](_0x2a5419[_0xac4a('0x38')][_0xac4a('0x2a')]);_0x565164['offset']=qs['offset'](_0x2a5419['query'][_0xac4a('0x29')]);}_0x565164[_0xac4a('0x3f')]=qs[_0xac4a('0x40')](_0x2a5419[_0xac4a('0x38')][_0xac4a('0x40')]);_0x565164[_0xac4a('0x41')]=qs[_0xac4a('0x42')](_[_0xac4a('0x43')](_0x2a5419[_0xac4a('0x38')],_0x58804b[_0xac4a('0x42')]),_0x1ba096);if(_0x2a5419['query'][_0xac4a('0x44')]){_0x565164[_0xac4a('0x41')]=_[_0xac4a('0x45')](_0x565164[_0xac4a('0x41')],{'$or':_[_0xac4a('0x33')](_0x1ba096,function(_0x57b879){if(_0x57b879[_0xac4a('0x46')]!==_0xac4a('0x47')){var _0x547ba2={};_0x547ba2[_0x57b879[_0xac4a('0x31')]]={'$like':'%'+_0x2a5419['query'][_0xac4a('0x44')]+'%'};return _0x547ba2;}})});}_0x565164=_[_0xac4a('0x45')]({},_0x565164,_0x2a5419[_0xac4a('0x48')]);var _0x32e3fb={'where':_0x565164[_0xac4a('0x41')]};return db[_0xac4a('0x34')][_0xac4a('0x49')](_0x32e3fb)[_0xac4a('0x1a')](function(_0x98e0c4){_0x11f0be[_0xac4a('0x49')]=_0x98e0c4;if(_0x2a5419[_0xac4a('0x38')][_0xac4a('0x4a')]){_0x565164['include']=[{'all':!![]}];}return db[_0xac4a('0x34')][_0xac4a('0x4b')](_0x565164);})[_0xac4a('0x1a')](function(_0x58759a){_0x11f0be[_0xac4a('0x4c')]=_0x58759a;return _0x11f0be;})[_0xac4a('0x1a')](respondWithFilteredResult(_0x1af1c1,_0x565164))['catch'](handleError(_0x1af1c1,null));};exports[_0xac4a('0x4d')]=function(_0x5a7f6e,_0x244950){var _0xe620f6={'raw':!![],'where':{'id':_0x5a7f6e['params']['id']}},_0x136a65={};_0x136a65['model']=_[_0xac4a('0x39')](db['Network'][_0xac4a('0x4e')]);_0x136a65['query']=_[_0xac4a('0x39')](_0x5a7f6e['query']);_0x136a65[_0xac4a('0x42')]=_[_0xac4a('0x3a')](_0x136a65[_0xac4a('0x37')],_0x136a65[_0xac4a('0x38')]);_0xe620f6['attributes']=_[_0xac4a('0x3a')](_0x136a65[_0xac4a('0x37')],qs[_0xac4a('0x4f')](_0x5a7f6e[_0xac4a('0x38')][_0xac4a('0x4f')]));_0xe620f6[_0xac4a('0x3b')]=_0xe620f6[_0xac4a('0x3b')]['length']?_0xe620f6[_0xac4a('0x3b')]:_0x136a65[_0xac4a('0x37')];if(_0x5a7f6e['query'][_0xac4a('0x4a')]){_0xe620f6[_0xac4a('0x50')]=[{'all':!![]}];}_0xe620f6=_[_0xac4a('0x45')]({},_0xe620f6,_0x5a7f6e[_0xac4a('0x48')]);return db['Network'][_0xac4a('0x51')](_0xe620f6)[_0xac4a('0x1a')](handleEntityNotFound(_0x244950,null))[_0xac4a('0x1a')](respondWithResult(_0x244950,null))[_0xac4a('0x52')](handleError(_0x244950,null));};exports[_0xac4a('0x53')]=function(_0x49fbc3,_0x179373,_0x564b10){var _0x307441;return db[_0xac4a('0x54')]['transaction'](function(_0x5c9c49){return db[_0xac4a('0x34')][_0xac4a('0x53')](_0x49fbc3['body'],{'raw':!![]})[_0xac4a('0x1a')](function(_0x31a4bf){_0x307441=_0x31a4bf;return db[_0xac4a('0x34')][_0xac4a('0x4b')]({'where':{'type':_0x49fbc3['body'][_0xac4a('0x46')]},'raw':!![]});})[_0xac4a('0x1a')](function(_0xb43fdb){if(_0x307441[_0xac4a('0x46')][_0xac4a('0x55')]()==_0xac4a('0x56')){var _0x36179a=fs['readFileSync'](path[_0xac4a('0x57')](config[_0xac4a('0x58')],_0xac4a('0x59')),_0xac4a('0x5a'));var _0x1b7231=ejs[_0xac4a('0x5b')](_0x36179a,{'networks':_0xb43fdb||[]});fs[_0xac4a('0x5c')](_0xac4a('0x5d'),_0x1b7231);return respondWithRpcPromise(_0xac4a('0x5e'),_0xac4a('0x53'),{'module':_0xac4a('0x5f')});}else if(_0x307441[_0xac4a('0x46')][_0xac4a('0x55')]()==_0xac4a('0x60')){var _0x5222f3=fs[_0xac4a('0x61')](path['join'](config[_0xac4a('0x58')],'server/files/templates/turn_multiple.ejs'),_0xac4a('0x5a'));var _0x4b7f79=ejs[_0xac4a('0x5b')](_0x5222f3,{'networks':_0xb43fdb||[]});fs['writeFileSync'](_0xac4a('0x62'),_0x4b7f79);return respondWithRpcPromise('Reload','create',{'module':_0xac4a('0x5f')});}else{var _0x568ffb=fs[_0xac4a('0x61')](path[_0xac4a('0x57')](config[_0xac4a('0x58')],_0xac4a('0x63')),'utf8');var _0x1e1ffa=ejs['render'](_0x568ffb,{'networks':_0xb43fdb||[]});fs[_0xac4a('0x5c')](util['format'](_0xac4a('0x64'),_0x49fbc3[_0xac4a('0x65')][_0xac4a('0x46')][_0xac4a('0x66')]()),_0x1e1ffa);return respondWithRpcPromise(_0xac4a('0x5e'),_0xac4a('0x53'),{'module':_0xac4a('0x67')});}return null;})[_0xac4a('0x1a')](function(){return _0x307441;});})[_0xac4a('0x1a')](respondWithResult(_0x179373,0xc9))[_0xac4a('0x52')](handleError(_0x179373,null));};exports[_0xac4a('0x2e')]=function(_0x2498ad,_0x1fe05a,_0x2cc410){var _0x17ae93;return db[_0xac4a('0x54')][_0xac4a('0x68')](function(_0x4a0156){return db[_0xac4a('0x34')][_0xac4a('0x51')]({'where':{'id':_0x2498ad['params']['id']}})[_0xac4a('0x1a')](handleEntityNotFound(_0x1fe05a,null))[_0xac4a('0x1a')](saveUpdates(_0x2498ad[_0xac4a('0x65')],null))[_0xac4a('0x1a')](function(_0x357cac){if(_0x357cac){_0x17ae93=_0x357cac;return db['Network']['findAll']({'where':{'type':_0x17ae93[_0xac4a('0x46')]},'raw':!![]});}return null;})[_0xac4a('0x1a')](function(_0x158223){if(_0x17ae93[_0xac4a('0x46')][_0xac4a('0x55')]()==_0xac4a('0x56')){var _0x24b059=fs[_0xac4a('0x61')](path[_0xac4a('0x57')](config[_0xac4a('0x58')],_0xac4a('0x59')),'utf8');var _0x51d35f=ejs[_0xac4a('0x5b')](_0x24b059,{'networks':_0x158223||[]});fs[_0xac4a('0x5c')](_0xac4a('0x5d'),_0x51d35f);return respondWithRpcPromise(_0xac4a('0x5e'),_0xac4a('0x2e'),{'module':_0xac4a('0x5f')});}else if(_0x17ae93[_0xac4a('0x46')][_0xac4a('0x55')]()==_0xac4a('0x60')){var _0x2a5acc=fs[_0xac4a('0x61')](path[_0xac4a('0x57')](config['root'],_0xac4a('0x69')),_0xac4a('0x5a'));var _0x26bd31=ejs[_0xac4a('0x5b')](_0x2a5acc,{'networks':_0x158223||[]});fs['writeFileSync'](_0xac4a('0x62'),_0x26bd31);return respondWithRpcPromise('Reload',_0xac4a('0x2e'),{'module':_0xac4a('0x5f')});}else{var _0x499abc=fs['readFileSync'](path[_0xac4a('0x57')](config[_0xac4a('0x58')],_0xac4a('0x63')),'utf8');var _0x3a0cf8=ejs['render'](_0x499abc,{'networks':_0x158223||[]});fs[_0xac4a('0x5c')](util['format']('/etc/asterisk/sip_xcally_%s.conf',_0x2498ad[_0xac4a('0x65')]['type'][_0xac4a('0x66')]()),_0x3a0cf8);return respondWithRpcPromise('Reload',_0xac4a('0x2e'),{'module':_0xac4a('0x67')});}return null;})['then'](function(_0x3980ae){if(_0x3980ae){return _0x17ae93;}return null;});})['then'](respondWithResult(_0x1fe05a,null))[_0xac4a('0x52')](handleError(_0x1fe05a,null));};exports[_0xac4a('0x2f')]=function(_0x522949,_0x12f1b2,_0x4b66b4){var _0x5a9111;return db[_0xac4a('0x34')]['find']({'where':{'id':_0x522949[_0xac4a('0x6a')]['id']}})['then'](function(_0x4ccd67){_0x5a9111=_0x4ccd67;return _0x4ccd67;})[_0xac4a('0x1a')](handleEntityNotFound(_0x12f1b2,null))[_0xac4a('0x1a')](removeEntity(_0x12f1b2,null))[_0xac4a('0x1a')](function(){if(_0x5a9111){return db['Network']['findAll']({'where':{'type':_0x5a9111[_0xac4a('0x46')]},'raw':!![]});}})[_0xac4a('0x1a')](function(_0x5ac8cc){if(_0x5a9111['type'][_0xac4a('0x55')]()==_0xac4a('0x56')){var _0x347c73=fs[_0xac4a('0x61')](path[_0xac4a('0x57')](config[_0xac4a('0x58')],_0xac4a('0x59')),_0xac4a('0x5a'));var _0x26bf73=ejs['render'](_0x347c73,{'networks':_0x5ac8cc||[]});fs[_0xac4a('0x5c')](_0xac4a('0x5d'),_0x26bf73);return respondWithRpcPromise(_0xac4a('0x5e'),'destroy',{'module':_0xac4a('0x5f')});}else if(_0x5a9111[_0xac4a('0x46')][_0xac4a('0x55')]()==_0xac4a('0x60')){var _0x3d2b5c=fs['readFileSync'](path[_0xac4a('0x57')](config[_0xac4a('0x58')],_0xac4a('0x69')),_0xac4a('0x5a'));var _0x72c90c=ejs[_0xac4a('0x5b')](_0x3d2b5c,{'networks':_0x5ac8cc||[]});fs[_0xac4a('0x5c')]('/etc/asterisk/turn_xcally.conf',_0x72c90c);return respondWithRpcPromise(_0xac4a('0x5e'),_0xac4a('0x2f'),{'module':_0xac4a('0x5f')});}else{var _0x35a97c=fs[_0xac4a('0x61')](path[_0xac4a('0x57')](config['root'],_0xac4a('0x63')),_0xac4a('0x5a'));var _0x1b9a33=ejs[_0xac4a('0x5b')](_0x35a97c,{'networks':_0x5ac8cc||[]});fs['writeFileSync'](util[_0xac4a('0x6b')]('/etc/asterisk/sip_xcally_%s.conf',_0x522949[_0xac4a('0x65')][_0xac4a('0x46')]['toLowerCase']()),_0x1b9a33);return respondWithRpcPromise('Reload',_0xac4a('0x2f'),{'module':_0xac4a('0x67')});}return null;})[_0xac4a('0x52')](handleError(_0x12f1b2,null));};