Built motion from commit 97153652.|2.6.26
[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 _0x5933=['keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','VIRTUAL','filter','options','includeAll','include','findAll','rows','params','find','body','toUpperCase','readFileSync','join','server/files/templates/stun_multiple.ejs','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','server/files/templates/turn_multiple.ejs','utf8','/etc/asterisk/turn_xcally.conf','create','root','server/files/templates/network.ejs','toLowerCase','chan_sip.so','catch','STUN','/etc/asterisk/sip_xcally_%s.conf','destroy','format','util','path','ejs','lodash','api','../../config/environment','../../mysqldb','http','request','info','Network,\x20%s,\x20%s','request\x20sent','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','status','json','offset','undefined','count','set','Content-Range','update','then','end','stack','name','send','index','map','Network','fieldName','type','key','model','query'];(function(_0x4e0be9,_0xe12d9c){var _0x117ccf=function(_0x5c45f3){while(--_0x5c45f3){_0x4e0be9['push'](_0x4e0be9['shift']());}};_0x117ccf(++_0xe12d9c);}(_0x5933,0x1d7));var _0x3593=function(_0x262428,_0x4698f0){_0x262428=_0x262428-0x0;var _0x30a3d7=_0x5933[_0x262428];return _0x30a3d7;};'use strict';var util=require(_0x3593('0x0'));var path=require(_0x3593('0x1'));var ejs=require(_0x3593('0x2'));var fs=require('fs');var _=require(_0x3593('0x3'));var qs=require('../../components/parsers/qs');var logger=require('../../config/logger')(_0x3593('0x4'));var config=require(_0x3593('0x5'));var db=require(_0x3593('0x6'))['db'];var jayson=require('jayson/promise');var client=jayson['client'][_0x3593('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x3ee2dd,_0x588d08,_0x2f8dc2,_0x2e3369){return new Promise(function(_0x4b6392,_0x1e36d0){var _0x9d2486=_0x2e3369||client;return _0x9d2486[_0x3593('0x8')](_0x3ee2dd,_0x2f8dc2)['then'](function(_0x5998b0){logger[_0x3593('0x9')](_0x3593('0xa'),_0x588d08,_0x3593('0xb'));logger['debug'](_0x3593('0xc'),_0x588d08,_0x3593('0xb'),JSON[_0x3593('0xd')](_0x5998b0));if(_0x5998b0['error']){if(_0x5998b0[_0x3593('0xe')][_0x3593('0xf')]===0x1f4){logger[_0x3593('0xe')](_0x3593('0xa'),_0x588d08,_0x5998b0[_0x3593('0xe')][_0x3593('0x10')]);return _0x1e36d0(_0x5998b0['error'][_0x3593('0x10')]);}logger[_0x3593('0xe')](_0x3593('0xa'),_0x588d08,_0x5998b0['error'][_0x3593('0x10')]);return _0x4b6392(_0x5998b0[_0x3593('0xe')][_0x3593('0x10')]);}else{logger[_0x3593('0x9')](_0x3593('0xa'),_0x588d08,'request\x20sent');_0x4b6392(_0x5998b0[_0x3593('0x11')][_0x3593('0x10')]);}})['catch'](function(_0x365f8e){logger[_0x3593('0xe')](_0x3593('0xa'),_0x588d08,_0x365f8e);_0x1e36d0(_0x365f8e);});});}function respondWithResult(_0x416dcc,_0x3cb095){_0x3cb095=_0x3cb095||0xc8;return function(_0x273e8d){if(_0x273e8d){return _0x416dcc[_0x3593('0x12')](_0x3cb095)[_0x3593('0x13')](_0x273e8d);}};}function respondWithFilteredResult(_0x400bc0,_0x5d665e){return function(_0x8cd3b4){if(_0x8cd3b4){var _0x505f01=typeof _0x5d665e[_0x3593('0x14')]==='undefined'&&typeof _0x5d665e['limit']===_0x3593('0x15');var _0x3671c4=_0x8cd3b4[_0x3593('0x16')];var _0x2dfbcc=_0x505f01?0x0:_0x5d665e['offset'];var _0x37a14e=_0x505f01?_0x8cd3b4['count']:_0x5d665e[_0x3593('0x14')]+_0x5d665e['limit'];var _0x4b7fe1;if(_0x37a14e>=_0x3671c4){_0x37a14e=_0x3671c4;_0x4b7fe1=0xc8;}else{_0x4b7fe1=0xce;}_0x400bc0[_0x3593('0x12')](_0x4b7fe1);return _0x400bc0[_0x3593('0x17')](_0x3593('0x18'),_0x2dfbcc+'-'+_0x37a14e+'/'+_0x3671c4)[_0x3593('0x13')](_0x8cd3b4);}return null;};}function saveUpdates(_0x2edff8){return function(_0x43ba03){if(_0x43ba03){return _0x43ba03[_0x3593('0x19')](_0x2edff8)[_0x3593('0x1a')](function(_0x1a1f2e){return _0x1a1f2e;});}return null;};}function removeEntity(_0x4f3179){return function(_0x368d1b){if(_0x368d1b){return _0x368d1b['destroy']()[_0x3593('0x1a')](function(){_0x4f3179['status'](0xcc)[_0x3593('0x1b')]();});}};}function handleEntityNotFound(_0x2f4e49){return function(_0x31724f){if(!_0x31724f){_0x2f4e49['sendStatus'](0x194);}return _0x31724f;};}function handleError(_0x11ad5c,_0x1d5dca){_0x1d5dca=_0x1d5dca||0x1f4;return function(_0x182b8d){logger['error'](_0x182b8d[_0x3593('0x1c')]);if(_0x182b8d['name']){delete _0x182b8d[_0x3593('0x1d')];}_0x11ad5c[_0x3593('0x12')](_0x1d5dca)[_0x3593('0x1e')](_0x182b8d);};}exports[_0x3593('0x1f')]=function(_0x5b0ba2,_0x397920){var _0x1d91fd={},_0x3d3ffe={},_0x4c0eaa={'count':0x0,'rows':[]};var _0x557a83=_[_0x3593('0x20')](db[_0x3593('0x21')]['rawAttributes'],function(_0x1ce8c9){return{'name':_0x1ce8c9[_0x3593('0x22')],'type':_0x1ce8c9[_0x3593('0x23')][_0x3593('0x24')]};});_0x3d3ffe[_0x3593('0x25')]=_['map'](_0x557a83,_0x3593('0x1d'));_0x3d3ffe[_0x3593('0x26')]=_[_0x3593('0x27')](_0x5b0ba2[_0x3593('0x26')]);_0x3d3ffe[_0x3593('0x28')]=_[_0x3593('0x29')](_0x3d3ffe[_0x3593('0x25')],_0x3d3ffe[_0x3593('0x26')]);_0x1d91fd['attributes']=_['intersection'](_0x3d3ffe[_0x3593('0x25')],qs[_0x3593('0x2a')](_0x5b0ba2[_0x3593('0x26')][_0x3593('0x2a')]));_0x1d91fd[_0x3593('0x2b')]=_0x1d91fd['attributes'][_0x3593('0x2c')]?_0x1d91fd[_0x3593('0x2b')]:_0x3d3ffe[_0x3593('0x25')];if(!_0x5b0ba2['query'][_0x3593('0x2d')](_0x3593('0x2e'))){_0x1d91fd[_0x3593('0x2f')]=qs[_0x3593('0x2f')](_0x5b0ba2['query'][_0x3593('0x2f')]);_0x1d91fd[_0x3593('0x14')]=qs[_0x3593('0x14')](_0x5b0ba2['query'][_0x3593('0x14')]);}_0x1d91fd[_0x3593('0x30')]=qs[_0x3593('0x31')](_0x5b0ba2[_0x3593('0x26')]['sort']);_0x1d91fd[_0x3593('0x32')]=qs[_0x3593('0x28')](_[_0x3593('0x33')](_0x5b0ba2[_0x3593('0x26')],_0x3d3ffe[_0x3593('0x28')]),_0x557a83);if(_0x5b0ba2[_0x3593('0x26')]['filter']){_0x1d91fd[_0x3593('0x32')]=_['merge'](_0x1d91fd[_0x3593('0x32')],{'$or':_[_0x3593('0x20')](_0x557a83,function(_0x390063){if(_0x390063[_0x3593('0x23')]!==_0x3593('0x34')){var _0x3d66ac={};_0x3d66ac[_0x390063[_0x3593('0x1d')]]={'$like':'%'+_0x5b0ba2['query'][_0x3593('0x35')]+'%'};return _0x3d66ac;}})});}_0x1d91fd=_['merge']({},_0x1d91fd,_0x5b0ba2[_0x3593('0x36')]);var _0x3186bd={'where':_0x1d91fd['where']};return db[_0x3593('0x21')][_0x3593('0x16')](_0x3186bd)[_0x3593('0x1a')](function(_0xd22bba){_0x4c0eaa[_0x3593('0x16')]=_0xd22bba;if(_0x5b0ba2[_0x3593('0x26')][_0x3593('0x37')]){_0x1d91fd[_0x3593('0x38')]=[{'all':!![]}];}return db[_0x3593('0x21')][_0x3593('0x39')](_0x1d91fd);})['then'](function(_0x319001){_0x4c0eaa[_0x3593('0x3a')]=_0x319001;return _0x4c0eaa;})['then'](respondWithFilteredResult(_0x397920,_0x1d91fd))['catch'](handleError(_0x397920,null));};exports['show']=function(_0x1c48bc,_0x52d632){var _0x7efcc={'raw':!![],'where':{'id':_0x1c48bc[_0x3593('0x3b')]['id']}},_0x2d7e6e={};_0x2d7e6e['model']=_['keys'](db[_0x3593('0x21')]['rawAttributes']);_0x2d7e6e[_0x3593('0x26')]=_['keys'](_0x1c48bc[_0x3593('0x26')]);_0x2d7e6e['filters']=_[_0x3593('0x29')](_0x2d7e6e[_0x3593('0x25')],_0x2d7e6e[_0x3593('0x26')]);_0x7efcc[_0x3593('0x2b')]=_[_0x3593('0x29')](_0x2d7e6e[_0x3593('0x25')],qs[_0x3593('0x2a')](_0x1c48bc['query'][_0x3593('0x2a')]));_0x7efcc['attributes']=_0x7efcc['attributes'][_0x3593('0x2c')]?_0x7efcc['attributes']:_0x2d7e6e[_0x3593('0x25')];if(_0x1c48bc[_0x3593('0x26')][_0x3593('0x37')]){_0x7efcc[_0x3593('0x38')]=[{'all':!![]}];}_0x7efcc=_['merge']({},_0x7efcc,_0x1c48bc[_0x3593('0x36')]);return db['Network'][_0x3593('0x3c')](_0x7efcc)[_0x3593('0x1a')](handleEntityNotFound(_0x52d632,null))[_0x3593('0x1a')](respondWithResult(_0x52d632,null))['catch'](handleError(_0x52d632,null));};exports['create']=function(_0x402f82,_0x328542){var _0x3bc199;return db[_0x3593('0x21')]['create'](_0x402f82[_0x3593('0x3d')],{'raw':!![]})[_0x3593('0x1a')](function(_0x1e9509){_0x3bc199=_0x1e9509;return db[_0x3593('0x21')][_0x3593('0x39')]({'where':{'type':_0x402f82['body'][_0x3593('0x23')]},'raw':!![]});})[_0x3593('0x1a')](function(_0x1b2581){if(_0x3bc199[_0x3593('0x23')][_0x3593('0x3e')]()=='STUN'){var _0x3fc711=fs[_0x3593('0x3f')](path[_0x3593('0x40')](config['root'],_0x3593('0x41')),'utf8');var _0x20b88c=ejs[_0x3593('0x42')](_0x3fc711,{'networks':_0x1b2581||[]});fs[_0x3593('0x43')](_0x3593('0x44'),_0x20b88c);return respondWithRpcPromise(_0x3593('0x45'),'create',{'module':_0x3593('0x46')});}else if(_0x3bc199[_0x3593('0x23')][_0x3593('0x3e')]()==_0x3593('0x47')){var _0x2dba47=fs['readFileSync'](path[_0x3593('0x40')](config['root'],_0x3593('0x48')),_0x3593('0x49'));var _0x21f3d0=ejs[_0x3593('0x42')](_0x2dba47,{'networks':_0x1b2581||[]});fs['writeFileSync'](_0x3593('0x4a'),_0x21f3d0);return respondWithRpcPromise('Reload',_0x3593('0x4b'),{'module':_0x3593('0x46')});}else{var _0x30b1c8=fs[_0x3593('0x3f')](path[_0x3593('0x40')](config[_0x3593('0x4c')],_0x3593('0x4d')),'utf8');var _0x5f4d8b=ejs[_0x3593('0x42')](_0x30b1c8,{'networks':_0x1b2581||[]});fs['writeFileSync'](util['format']('/etc/asterisk/sip_xcally_%s.conf',_0x402f82[_0x3593('0x3d')][_0x3593('0x23')][_0x3593('0x4e')]()),_0x5f4d8b);return respondWithRpcPromise('Reload',_0x3593('0x4b'),{'module':_0x3593('0x4f')});}})[_0x3593('0x1a')](function(){return _0x3bc199;})[_0x3593('0x1a')](respondWithResult(_0x328542,0xc9))[_0x3593('0x50')](handleError(_0x328542,null));};exports[_0x3593('0x19')]=function(_0x3f01fc,_0x13c279){var _0x1bb303;return db['Network'][_0x3593('0x3c')]({'where':{'id':_0x3f01fc[_0x3593('0x3b')]['id']}})[_0x3593('0x1a')](handleEntityNotFound(_0x13c279,null))[_0x3593('0x1a')](saveUpdates(_0x3f01fc['body'],null))[_0x3593('0x1a')](function(_0x3dc5e8){if(_0x3dc5e8){_0x1bb303=_0x3dc5e8;return db['Network'][_0x3593('0x39')]({'where':{'type':_0x1bb303['type']},'raw':!![]});}return null;})['then'](function(_0x4d6cd5){if(_0x1bb303[_0x3593('0x23')][_0x3593('0x3e')]()==_0x3593('0x51')){var _0x3fca68=fs[_0x3593('0x3f')](path['join'](config[_0x3593('0x4c')],_0x3593('0x41')),'utf8');var _0x48ed10=ejs[_0x3593('0x42')](_0x3fca68,{'networks':_0x4d6cd5||[]});fs[_0x3593('0x43')](_0x3593('0x44'),_0x48ed10);return respondWithRpcPromise(_0x3593('0x45'),_0x3593('0x19'),{'module':_0x3593('0x46')});}else if(_0x1bb303[_0x3593('0x23')][_0x3593('0x3e')]()==_0x3593('0x47')){var _0x53a329=fs[_0x3593('0x3f')](path[_0x3593('0x40')](config['root'],_0x3593('0x48')),'utf8');var _0x16d58d=ejs[_0x3593('0x42')](_0x53a329,{'networks':_0x4d6cd5||[]});fs[_0x3593('0x43')](_0x3593('0x4a'),_0x16d58d);return respondWithRpcPromise(_0x3593('0x45'),_0x3593('0x19'),{'module':_0x3593('0x46')});}else{var _0x33ac92=fs[_0x3593('0x3f')](path[_0x3593('0x40')](config[_0x3593('0x4c')],_0x3593('0x4d')),_0x3593('0x49'));var _0xffa986=ejs[_0x3593('0x42')](_0x33ac92,{'networks':_0x4d6cd5||[]});fs[_0x3593('0x43')](util['format'](_0x3593('0x52'),_0x3f01fc['body']['type']['toLowerCase']()),_0xffa986);return respondWithRpcPromise(_0x3593('0x45'),_0x3593('0x19'),{'module':_0x3593('0x4f')});}})[_0x3593('0x1a')](function(_0x2cbe9d){if(_0x2cbe9d){return _0x1bb303;}return null;})[_0x3593('0x1a')](respondWithResult(_0x13c279,null))[_0x3593('0x50')](handleError(_0x13c279,null));};exports['destroy']=function(_0x1a6b28,_0x1fdaf0){var _0x25458e;return db['Network'][_0x3593('0x3c')]({'where':{'id':_0x1a6b28[_0x3593('0x3b')]['id']}})[_0x3593('0x1a')](function(_0x422ad1){_0x25458e=_0x422ad1;return _0x422ad1;})[_0x3593('0x1a')](handleEntityNotFound(_0x1fdaf0,null))[_0x3593('0x1a')](removeEntity(_0x1fdaf0,null))[_0x3593('0x1a')](function(){if(_0x25458e){return db[_0x3593('0x21')][_0x3593('0x39')]({'where':{'type':_0x25458e[_0x3593('0x23')]},'raw':!![]});}})[_0x3593('0x1a')](function(_0x5957ae){if(_0x25458e[_0x3593('0x23')][_0x3593('0x3e')]()==_0x3593('0x51')){var _0x2764ff=fs['readFileSync'](path['join'](config[_0x3593('0x4c')],_0x3593('0x41')),_0x3593('0x49'));var _0x564abe=ejs[_0x3593('0x42')](_0x2764ff,{'networks':_0x5957ae||[]});fs[_0x3593('0x43')](_0x3593('0x44'),_0x564abe);return respondWithRpcPromise(_0x3593('0x45'),_0x3593('0x53'),{'module':_0x3593('0x46')});}else if(_0x25458e['type'][_0x3593('0x3e')]()==_0x3593('0x47')){var _0x2e068f=fs[_0x3593('0x3f')](path['join'](config['root'],'server/files/templates/turn_multiple.ejs'),_0x3593('0x49'));var _0x18ded6=ejs['render'](_0x2e068f,{'networks':_0x5957ae||[]});fs[_0x3593('0x43')](_0x3593('0x4a'),_0x18ded6);return respondWithRpcPromise(_0x3593('0x45'),_0x3593('0x53'),{'module':_0x3593('0x46')});}else{var _0x8c24e0=fs[_0x3593('0x3f')](path[_0x3593('0x40')](config['root'],_0x3593('0x4d')),_0x3593('0x49'));var _0x2fc032=ejs['render'](_0x8c24e0,{'networks':_0x5957ae||[]});fs[_0x3593('0x43')](util[_0x3593('0x54')](_0x3593('0x52'),_0x25458e['type'][_0x3593('0x4e')]()),_0x2fc032);return respondWithRpcPromise(_0x3593('0x45'),_0x3593('0x53'),{'module':_0x3593('0x4f')});}})[_0x3593('0x50')](handleError(_0x1fdaf0,null));};