Built motion from commit 0900f080.|2.5.45
[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 _0x8fd9=['update','destroy','stack','name','send','index','Network','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','includeAll','include','findAll','rows','params','options','find','sequelize','transaction','create','body','toUpperCase','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','render','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','server/files/templates/turn_multiple.ejs','writeFileSync','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','error','code','Network,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save'];(function(_0x42b605,_0xeac8ad){var _0x5928eb=function(_0x118f0f){while(--_0x118f0f){_0x42b605['push'](_0x42b605['shift']());}};_0x5928eb(++_0xeac8ad);}(_0x8fd9,0x18c));var _0x98fd=function(_0x5ba74f,_0x200bf4){_0x5ba74f=_0x5ba74f-0x0;var _0x534d79=_0x8fd9[_0x5ba74f];return _0x534d79;};'use strict';var emlformat=require(_0x98fd('0x0'));var rimraf=require(_0x98fd('0x1'));var zipdir=require(_0x98fd('0x2'));var jsonpatch=require(_0x98fd('0x3'));var rp=require('request-promise');var moment=require(_0x98fd('0x4'));var BPromise=require(_0x98fd('0x5'));var Mustache=require(_0x98fd('0x6'));var util=require('util');var path=require(_0x98fd('0x7'));var sox=require(_0x98fd('0x8'));var csv=require(_0x98fd('0x9'));var ejs=require(_0x98fd('0xa'));var fs=require('fs');var fs_extra=require(_0x98fd('0xb'));var _=require(_0x98fd('0xc'));var squel=require(_0x98fd('0xd'));var crypto=require(_0x98fd('0xe'));var jsforce=require(_0x98fd('0xf'));var deskjs=require(_0x98fd('0x10'));var toCsv=require('to-csv');var querystring=require(_0x98fd('0x11'));var Papa=require(_0x98fd('0x12'));var Redis=require(_0x98fd('0x13'));var authService=require(_0x98fd('0x14'));var qs=require(_0x98fd('0x15'));var as=require(_0x98fd('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x98fd('0x17'))(_0x98fd('0x18'));var utils=require(_0x98fd('0x19'));var config=require(_0x98fd('0x1a'));var licenseUtil=require(_0x98fd('0x1b'));var db=require(_0x98fd('0x1c'))['db'];var jayson=require(_0x98fd('0x1d'));var client=jayson[_0x98fd('0x1e')][_0x98fd('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x191df4,_0x161412,_0x533e87,_0x646a7c){return new BPromise(function(_0x2aed3a,_0x5a74ff){var _0x1383d7=_0x646a7c||client;return _0x1383d7[_0x98fd('0x20')](_0x191df4,_0x533e87)[_0x98fd('0x21')](function(_0x103342){logger[_0x98fd('0x22')]('Network,\x20%s,\x20%s',_0x161412,_0x98fd('0x23'));logger[_0x98fd('0x24')](_0x98fd('0x25'),_0x161412,_0x98fd('0x23'),JSON['stringify'](_0x103342));if(_0x103342[_0x98fd('0x26')]){if(_0x103342[_0x98fd('0x26')][_0x98fd('0x27')]===0x1f4){logger[_0x98fd('0x26')](_0x98fd('0x28'),_0x161412,_0x103342[_0x98fd('0x26')][_0x98fd('0x29')]);return _0x5a74ff(_0x103342[_0x98fd('0x26')]['message']);}logger[_0x98fd('0x26')](_0x98fd('0x28'),_0x161412,_0x103342[_0x98fd('0x26')][_0x98fd('0x29')]);return _0x2aed3a(_0x103342[_0x98fd('0x26')][_0x98fd('0x29')]);}else{logger[_0x98fd('0x22')](_0x98fd('0x28'),_0x161412,_0x98fd('0x23'));_0x2aed3a(_0x103342[_0x98fd('0x2a')][_0x98fd('0x29')]);}})[_0x98fd('0x2b')](function(_0x5a9c2e){logger[_0x98fd('0x26')](_0x98fd('0x28'),_0x161412,_0x5a9c2e);_0x5a74ff(_0x5a9c2e);});});}function respondWithStatusCode(_0x3eaba0,_0x5ef193){_0x5ef193=_0x5ef193||0xcc;return function(_0x82cd50){if(_0x82cd50){return _0x3eaba0[_0x98fd('0x2c')](_0x5ef193);}return _0x3eaba0[_0x98fd('0x2d')](_0x5ef193)[_0x98fd('0x2e')]();};}function respondWithResult(_0xd2b221,_0x394b10){_0x394b10=_0x394b10||0xc8;return function(_0x3b5656){if(_0x3b5656){return _0xd2b221[_0x98fd('0x2d')](_0x394b10)[_0x98fd('0x2f')](_0x3b5656);}};}function respondWithFilteredResult(_0x48066d,_0x483b11){return function(_0x10b2e9){if(_0x10b2e9){var _0x1437e2=typeof _0x483b11[_0x98fd('0x30')]===_0x98fd('0x31')&&typeof _0x483b11[_0x98fd('0x32')]===_0x98fd('0x31');var _0x19df6d=_0x10b2e9[_0x98fd('0x33')];var _0x5a7e2c=_0x1437e2?0x0:_0x483b11[_0x98fd('0x30')];var _0x4fe118=_0x1437e2?_0x10b2e9[_0x98fd('0x33')]:_0x483b11[_0x98fd('0x30')]+_0x483b11[_0x98fd('0x32')];var _0x3ebefb;if(_0x4fe118>=_0x19df6d){_0x4fe118=_0x19df6d;_0x3ebefb=0xc8;}else{_0x3ebefb=0xce;}_0x48066d[_0x98fd('0x2d')](_0x3ebefb);return _0x48066d[_0x98fd('0x34')]('Content-Range',_0x5a7e2c+'-'+_0x4fe118+'/'+_0x19df6d)[_0x98fd('0x2f')](_0x10b2e9);}return null;};}function patchUpdates(_0x1b2303){return function(_0x576386){try{jsonpatch[_0x98fd('0x35')](_0x576386,_0x1b2303,!![]);}catch(_0x301498){return BPromise[_0x98fd('0x36')](_0x301498);}return _0x576386[_0x98fd('0x37')]();};}function saveUpdates(_0x59e36d,_0x2493da){return function(_0x52801a){if(_0x52801a){return _0x52801a[_0x98fd('0x38')](_0x59e36d)['then'](function(_0x272f61){return _0x272f61;});}return null;};}function removeEntity(_0x18f410,_0x489767){return function(_0x21cf5c){if(_0x21cf5c){return _0x21cf5c[_0x98fd('0x39')]()['then'](function(){_0x18f410[_0x98fd('0x2d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3010c7,_0x20615a){return function(_0x3f8409){if(!_0x3f8409){_0x3010c7[_0x98fd('0x2c')](0x194);}return _0x3f8409;};}function handleError(_0x373c6e,_0x401c7b){_0x401c7b=_0x401c7b||0x1f4;return function(_0x4a7d4c){logger[_0x98fd('0x26')](_0x4a7d4c[_0x98fd('0x3a')]);if(_0x4a7d4c['name']){delete _0x4a7d4c[_0x98fd('0x3b')];}_0x373c6e[_0x98fd('0x2d')](_0x401c7b)[_0x98fd('0x3c')](_0x4a7d4c);};}exports[_0x98fd('0x3d')]=function(_0xa19165,_0x2da1cc){var _0xd7998d={},_0x4deb57={},_0x3f21c4={'count':0x0,'rows':[]};var _0x3ace9c=_['map'](db[_0x98fd('0x3e')][_0x98fd('0x3f')],function(_0x565966){return{'name':_0x565966[_0x98fd('0x40')],'type':_0x565966[_0x98fd('0x41')]['key']};});_0x4deb57[_0x98fd('0x42')]=_[_0x98fd('0x43')](_0x3ace9c,_0x98fd('0x3b'));_0x4deb57[_0x98fd('0x44')]=_[_0x98fd('0x45')](_0xa19165['query']);_0x4deb57[_0x98fd('0x46')]=_[_0x98fd('0x47')](_0x4deb57[_0x98fd('0x42')],_0x4deb57[_0x98fd('0x44')]);_0xd7998d[_0x98fd('0x48')]=_[_0x98fd('0x47')](_0x4deb57[_0x98fd('0x42')],qs[_0x98fd('0x49')](_0xa19165[_0x98fd('0x44')][_0x98fd('0x49')]));_0xd7998d[_0x98fd('0x48')]=_0xd7998d[_0x98fd('0x48')][_0x98fd('0x4a')]?_0xd7998d[_0x98fd('0x48')]:_0x4deb57[_0x98fd('0x42')];if(!_0xa19165[_0x98fd('0x44')]['hasOwnProperty'](_0x98fd('0x4b'))){_0xd7998d[_0x98fd('0x32')]=qs[_0x98fd('0x32')](_0xa19165[_0x98fd('0x44')][_0x98fd('0x32')]);_0xd7998d[_0x98fd('0x30')]=qs['offset'](_0xa19165['query'][_0x98fd('0x30')]);}_0xd7998d[_0x98fd('0x4c')]=qs[_0x98fd('0x4d')](_0xa19165[_0x98fd('0x44')][_0x98fd('0x4d')]);_0xd7998d['where']=qs[_0x98fd('0x46')](_[_0x98fd('0x4e')](_0xa19165['query'],_0x4deb57[_0x98fd('0x46')]),_0x3ace9c);if(_0xa19165[_0x98fd('0x44')][_0x98fd('0x4f')]){_0xd7998d[_0x98fd('0x50')]=_[_0x98fd('0x51')](_0xd7998d[_0x98fd('0x50')],{'$or':_[_0x98fd('0x43')](_0x3ace9c,function(_0x2ad121){if(_0x2ad121[_0x98fd('0x41')]!==_0x98fd('0x52')){var _0xe797c8={};_0xe797c8[_0x2ad121[_0x98fd('0x3b')]]={'$like':'%'+_0xa19165[_0x98fd('0x44')]['filter']+'%'};return _0xe797c8;}})});}_0xd7998d=_[_0x98fd('0x51')]({},_0xd7998d,_0xa19165['options']);var _0x77b0af={'where':_0xd7998d[_0x98fd('0x50')]};return db[_0x98fd('0x3e')][_0x98fd('0x33')](_0x77b0af)[_0x98fd('0x21')](function(_0x16037c){_0x3f21c4['count']=_0x16037c;if(_0xa19165[_0x98fd('0x44')][_0x98fd('0x53')]){_0xd7998d[_0x98fd('0x54')]=[{'all':!![]}];}return db[_0x98fd('0x3e')][_0x98fd('0x55')](_0xd7998d);})['then'](function(_0x47fc78){_0x3f21c4[_0x98fd('0x56')]=_0x47fc78;return _0x3f21c4;})['then'](respondWithFilteredResult(_0x2da1cc,_0xd7998d))[_0x98fd('0x2b')](handleError(_0x2da1cc,null));};exports['show']=function(_0x5129a2,_0x2d92af){var _0x4eda73={'raw':!![],'where':{'id':_0x5129a2[_0x98fd('0x57')]['id']}},_0x4fd2a9={};_0x4fd2a9['model']=_[_0x98fd('0x45')](db[_0x98fd('0x3e')][_0x98fd('0x3f')]);_0x4fd2a9[_0x98fd('0x44')]=_['keys'](_0x5129a2[_0x98fd('0x44')]);_0x4fd2a9[_0x98fd('0x46')]=_[_0x98fd('0x47')](_0x4fd2a9[_0x98fd('0x42')],_0x4fd2a9[_0x98fd('0x44')]);_0x4eda73[_0x98fd('0x48')]=_[_0x98fd('0x47')](_0x4fd2a9[_0x98fd('0x42')],qs[_0x98fd('0x49')](_0x5129a2[_0x98fd('0x44')]['fields']));_0x4eda73[_0x98fd('0x48')]=_0x4eda73[_0x98fd('0x48')][_0x98fd('0x4a')]?_0x4eda73[_0x98fd('0x48')]:_0x4fd2a9[_0x98fd('0x42')];if(_0x5129a2[_0x98fd('0x44')][_0x98fd('0x53')]){_0x4eda73[_0x98fd('0x54')]=[{'all':!![]}];}_0x4eda73=_['merge']({},_0x4eda73,_0x5129a2[_0x98fd('0x58')]);return db[_0x98fd('0x3e')][_0x98fd('0x59')](_0x4eda73)[_0x98fd('0x21')](handleEntityNotFound(_0x2d92af,null))[_0x98fd('0x21')](respondWithResult(_0x2d92af,null))['catch'](handleError(_0x2d92af,null));};exports['create']=function(_0x522378,_0x5ddf55,_0x1bc970){var _0x100e1c;return db[_0x98fd('0x5a')][_0x98fd('0x5b')](function(_0x3e7d1f){return db[_0x98fd('0x3e')][_0x98fd('0x5c')](_0x522378['body'],{'raw':!![]})['then'](function(_0x5a4cbf){_0x100e1c=_0x5a4cbf;return db[_0x98fd('0x3e')]['findAll']({'where':{'type':_0x522378[_0x98fd('0x5d')][_0x98fd('0x41')]},'raw':!![]});})[_0x98fd('0x21')](function(_0x4e542f){if(_0x100e1c[_0x98fd('0x41')][_0x98fd('0x5e')]()=='STUN'){var _0x1b0039=fs[_0x98fd('0x5f')](path[_0x98fd('0x60')](config[_0x98fd('0x61')],_0x98fd('0x62')),_0x98fd('0x63'));var _0x5148a7=ejs[_0x98fd('0x64')](_0x1b0039,{'networks':_0x4e542f||[]});fs['writeFileSync'](_0x98fd('0x65'),_0x5148a7);return respondWithRpcPromise(_0x98fd('0x66'),'create',{'module':_0x98fd('0x67')});}else if(_0x100e1c[_0x98fd('0x41')][_0x98fd('0x5e')]()==_0x98fd('0x68')){var _0xcebc53=fs[_0x98fd('0x5f')](path[_0x98fd('0x60')](config[_0x98fd('0x61')],_0x98fd('0x69')),_0x98fd('0x63'));var _0x3077f4=ejs[_0x98fd('0x64')](_0xcebc53,{'networks':_0x4e542f||[]});fs[_0x98fd('0x6a')](_0x98fd('0x6b'),_0x3077f4);return respondWithRpcPromise('Reload',_0x98fd('0x5c'),{'module':_0x98fd('0x67')});}else{var _0x207622=fs[_0x98fd('0x5f')](path['join'](config[_0x98fd('0x61')],_0x98fd('0x6c')),_0x98fd('0x63'));var _0x1c4b7d=ejs[_0x98fd('0x64')](_0x207622,{'networks':_0x4e542f||[]});fs['writeFileSync'](util[_0x98fd('0x6d')](_0x98fd('0x6e'),_0x522378['body'][_0x98fd('0x41')][_0x98fd('0x6f')]()),_0x1c4b7d);return respondWithRpcPromise('Reload',_0x98fd('0x5c'),{'module':_0x98fd('0x70')});}return null;})[_0x98fd('0x21')](function(){return _0x100e1c;});})[_0x98fd('0x21')](respondWithResult(_0x5ddf55,0xc9))[_0x98fd('0x2b')](handleError(_0x5ddf55,null));};exports['update']=function(_0x4128f0,_0x5c0cdb,_0x2927cd){var _0x439371;return db[_0x98fd('0x5a')][_0x98fd('0x5b')](function(_0x58b8de){return db[_0x98fd('0x3e')]['find']({'where':{'id':_0x4128f0[_0x98fd('0x57')]['id']}})[_0x98fd('0x21')](handleEntityNotFound(_0x5c0cdb,null))[_0x98fd('0x21')](saveUpdates(_0x4128f0[_0x98fd('0x5d')],null))[_0x98fd('0x21')](function(_0x341a9e){if(_0x341a9e){_0x439371=_0x341a9e;return db[_0x98fd('0x3e')]['findAll']({'where':{'type':_0x439371[_0x98fd('0x41')]},'raw':!![]});}return null;})['then'](function(_0x3da587){if(_0x439371[_0x98fd('0x41')][_0x98fd('0x5e')]()=='STUN'){var _0x1cceed=fs['readFileSync'](path['join'](config[_0x98fd('0x61')],_0x98fd('0x62')),_0x98fd('0x63'));var _0x35b727=ejs[_0x98fd('0x64')](_0x1cceed,{'networks':_0x3da587||[]});fs['writeFileSync'](_0x98fd('0x65'),_0x35b727);return respondWithRpcPromise(_0x98fd('0x66'),'update',{'module':_0x98fd('0x67')});}else if(_0x439371[_0x98fd('0x41')][_0x98fd('0x5e')]()==_0x98fd('0x68')){var _0x562962=fs['readFileSync'](path['join'](config[_0x98fd('0x61')],_0x98fd('0x69')),'utf8');var _0x502118=ejs[_0x98fd('0x64')](_0x562962,{'networks':_0x3da587||[]});fs[_0x98fd('0x6a')](_0x98fd('0x6b'),_0x502118);return respondWithRpcPromise(_0x98fd('0x66'),_0x98fd('0x38'),{'module':_0x98fd('0x67')});}else{var _0x28d0ef=fs[_0x98fd('0x5f')](path['join'](config['root'],_0x98fd('0x6c')),_0x98fd('0x63'));var _0x5d05b1=ejs['render'](_0x28d0ef,{'networks':_0x3da587||[]});fs[_0x98fd('0x6a')](util['format'](_0x98fd('0x6e'),_0x4128f0[_0x98fd('0x5d')][_0x98fd('0x41')][_0x98fd('0x6f')]()),_0x5d05b1);return respondWithRpcPromise(_0x98fd('0x66'),_0x98fd('0x38'),{'module':'chan_sip.so'});}return null;})[_0x98fd('0x21')](function(_0x4402f8){if(_0x4402f8){return _0x439371;}return null;});})[_0x98fd('0x21')](respondWithResult(_0x5c0cdb,null))[_0x98fd('0x2b')](handleError(_0x5c0cdb,null));};exports[_0x98fd('0x39')]=function(_0x26e2c0,_0x42050e,_0xb6f3){var _0x489683;return db[_0x98fd('0x3e')][_0x98fd('0x59')]({'where':{'id':_0x26e2c0['params']['id']}})[_0x98fd('0x21')](function(_0x4f7159){_0x489683=_0x4f7159;return _0x4f7159;})[_0x98fd('0x21')](handleEntityNotFound(_0x42050e,null))[_0x98fd('0x21')](removeEntity(_0x42050e,null))[_0x98fd('0x21')](function(){if(_0x489683){return db[_0x98fd('0x3e')][_0x98fd('0x55')]({'where':{'type':_0x489683['type']},'raw':!![]});}})[_0x98fd('0x21')](function(_0x51b129){if(_0x489683[_0x98fd('0x41')][_0x98fd('0x5e')]()=='STUN'){var _0x19c027=fs[_0x98fd('0x5f')](path['join'](config[_0x98fd('0x61')],'server/files/templates/stun_multiple.ejs'),'utf8');var _0x54f4c7=ejs[_0x98fd('0x64')](_0x19c027,{'networks':_0x51b129||[]});fs[_0x98fd('0x6a')](_0x98fd('0x65'),_0x54f4c7);return respondWithRpcPromise(_0x98fd('0x66'),_0x98fd('0x39'),{'module':'res_stun_monitor.so'});}else if(_0x489683[_0x98fd('0x41')]['toUpperCase']()=='TURN'){var _0x5a72ef=fs[_0x98fd('0x5f')](path[_0x98fd('0x60')](config[_0x98fd('0x61')],_0x98fd('0x69')),_0x98fd('0x63'));var _0x2548df=ejs[_0x98fd('0x64')](_0x5a72ef,{'networks':_0x51b129||[]});fs[_0x98fd('0x6a')](_0x98fd('0x6b'),_0x2548df);return respondWithRpcPromise(_0x98fd('0x66'),_0x98fd('0x39'),{'module':_0x98fd('0x67')});}else{var _0x2ab956=fs[_0x98fd('0x5f')](path[_0x98fd('0x60')](config[_0x98fd('0x61')],_0x98fd('0x6c')),_0x98fd('0x63'));var _0x5ec438=ejs[_0x98fd('0x64')](_0x2ab956,{'networks':_0x51b129||[]});fs['writeFileSync'](util[_0x98fd('0x6d')](_0x98fd('0x6e'),_0x26e2c0['body']['type'][_0x98fd('0x6f')]()),_0x5ec438);return respondWithRpcPromise(_0x98fd('0x66'),_0x98fd('0x39'),{'module':'chan_sip.so'});}return null;})[_0x98fd('0x2b')](handleError(_0x42050e,null));};