Built motion from commit b5413ace.|2.6.9
[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 _0xc60c=['send','index','map','Network','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','rawAttributes','find','create','body','toUpperCase','STUN','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','res_stun_monitor.so','TURN','/etc/asterisk/turn_xcally.conf','Reload','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','params','server/files/templates/turn_multiple.ejs','util','path','lodash','../../components/parsers/qs','api','../../mysqldb','jayson/promise','client','http','request','then','info','Network,\x20%s,\x20%s','request\x20sent','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','json','offset','undefined','limit','count','Content-Range','update','destroy','end','stack','name'];(function(_0x207046,_0x35171a){var _0x3fb563=function(_0x380d2d){while(--_0x380d2d){_0x207046['push'](_0x207046['shift']());}};_0x3fb563(++_0x35171a);}(_0xc60c,0x1e3));var _0xcc60=function(_0x389a12,_0x41a036){_0x389a12=_0x389a12-0x0;var _0x1db8a9=_0xc60c[_0x389a12];return _0x1db8a9;};'use strict';var util=require(_0xcc60('0x0'));var path=require(_0xcc60('0x1'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xcc60('0x2'));var qs=require(_0xcc60('0x3'));var logger=require('../../config/logger')(_0xcc60('0x4'));var config=require('../../config/environment');var db=require(_0xcc60('0x5'))['db'];var jayson=require(_0xcc60('0x6'));var client=jayson[_0xcc60('0x7')][_0xcc60('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x5651fd,_0x1751f0,_0x1a70bc,_0x1c75ca){return new Promise(function(_0x3a09fa,_0x428b41){var _0x13a269=_0x1c75ca||client;return _0x13a269[_0xcc60('0x9')](_0x5651fd,_0x1a70bc)[_0xcc60('0xa')](function(_0x1cef68){logger[_0xcc60('0xb')](_0xcc60('0xc'),_0x1751f0,_0xcc60('0xd'));logger['debug'](_0xcc60('0xe'),_0x1751f0,_0xcc60('0xd'),JSON[_0xcc60('0xf')](_0x1cef68));if(_0x1cef68[_0xcc60('0x10')]){if(_0x1cef68[_0xcc60('0x10')][_0xcc60('0x11')]===0x1f4){logger['error'](_0xcc60('0xc'),_0x1751f0,_0x1cef68[_0xcc60('0x10')]['message']);return _0x428b41(_0x1cef68[_0xcc60('0x10')][_0xcc60('0x12')]);}logger[_0xcc60('0x10')](_0xcc60('0xc'),_0x1751f0,_0x1cef68[_0xcc60('0x10')][_0xcc60('0x12')]);return _0x3a09fa(_0x1cef68[_0xcc60('0x10')]['message']);}else{logger[_0xcc60('0xb')](_0xcc60('0xc'),_0x1751f0,_0xcc60('0xd'));_0x3a09fa(_0x1cef68[_0xcc60('0x13')][_0xcc60('0x12')]);}})[_0xcc60('0x14')](function(_0x4eb960){logger[_0xcc60('0x10')](_0xcc60('0xc'),_0x1751f0,_0x4eb960);_0x428b41(_0x4eb960);});});}function respondWithResult(_0x54b85d,_0x27c7f4){_0x27c7f4=_0x27c7f4||0xc8;return function(_0x378bb4){if(_0x378bb4){return _0x54b85d[_0xcc60('0x15')](_0x27c7f4)[_0xcc60('0x16')](_0x378bb4);}};}function respondWithFilteredResult(_0x38e839,_0xf55543){return function(_0x11f578){if(_0x11f578){var _0x17ef66=typeof _0xf55543[_0xcc60('0x17')]===_0xcc60('0x18')&&typeof _0xf55543[_0xcc60('0x19')]==='undefined';var _0x373c2f=_0x11f578[_0xcc60('0x1a')];var _0x483080=_0x17ef66?0x0:_0xf55543[_0xcc60('0x17')];var _0x380815=_0x17ef66?_0x11f578[_0xcc60('0x1a')]:_0xf55543[_0xcc60('0x17')]+_0xf55543[_0xcc60('0x19')];var _0x547995;if(_0x380815>=_0x373c2f){_0x380815=_0x373c2f;_0x547995=0xc8;}else{_0x547995=0xce;}_0x38e839['status'](_0x547995);return _0x38e839['set'](_0xcc60('0x1b'),_0x483080+'-'+_0x380815+'/'+_0x373c2f)[_0xcc60('0x16')](_0x11f578);}return null;};}function saveUpdates(_0xbe9145){return function(_0x496a14){if(_0x496a14){return _0x496a14[_0xcc60('0x1c')](_0xbe9145)[_0xcc60('0xa')](function(_0x194b3f){return _0x194b3f;});}return null;};}function removeEntity(_0x15f423){return function(_0x4810f6){if(_0x4810f6){return _0x4810f6[_0xcc60('0x1d')]()[_0xcc60('0xa')](function(){_0x15f423[_0xcc60('0x15')](0xcc)[_0xcc60('0x1e')]();});}};}function handleEntityNotFound(_0x497cbe){return function(_0x508c2e){if(!_0x508c2e){_0x497cbe['sendStatus'](0x194);}return _0x508c2e;};}function handleError(_0x5dd36d,_0x3de9a0){_0x3de9a0=_0x3de9a0||0x1f4;return function(_0x1f0cde){logger[_0xcc60('0x10')](_0x1f0cde[_0xcc60('0x1f')]);if(_0x1f0cde[_0xcc60('0x20')]){delete _0x1f0cde['name'];}_0x5dd36d['status'](_0x3de9a0)[_0xcc60('0x21')](_0x1f0cde);};}exports[_0xcc60('0x22')]=function(_0x3e9f71,_0x13db24){var _0x25cc82={},_0x2d2149={},_0x10cd6c={'count':0x0,'rows':[]};var _0x35bf62=_[_0xcc60('0x23')](db[_0xcc60('0x24')]['rawAttributes'],function(_0x386034){return{'name':_0x386034[_0xcc60('0x25')],'type':_0x386034[_0xcc60('0x26')][_0xcc60('0x27')]};});_0x2d2149[_0xcc60('0x28')]=_['map'](_0x35bf62,_0xcc60('0x20'));_0x2d2149['query']=_[_0xcc60('0x29')](_0x3e9f71[_0xcc60('0x2a')]);_0x2d2149[_0xcc60('0x2b')]=_[_0xcc60('0x2c')](_0x2d2149[_0xcc60('0x28')],_0x2d2149[_0xcc60('0x2a')]);_0x25cc82[_0xcc60('0x2d')]=_[_0xcc60('0x2c')](_0x2d2149['model'],qs[_0xcc60('0x2e')](_0x3e9f71[_0xcc60('0x2a')]['fields']));_0x25cc82[_0xcc60('0x2d')]=_0x25cc82[_0xcc60('0x2d')][_0xcc60('0x2f')]?_0x25cc82[_0xcc60('0x2d')]:_0x2d2149['model'];if(!_0x3e9f71['query'][_0xcc60('0x30')](_0xcc60('0x31'))){_0x25cc82[_0xcc60('0x19')]=qs[_0xcc60('0x19')](_0x3e9f71[_0xcc60('0x2a')][_0xcc60('0x19')]);_0x25cc82['offset']=qs[_0xcc60('0x17')](_0x3e9f71[_0xcc60('0x2a')][_0xcc60('0x17')]);}_0x25cc82[_0xcc60('0x32')]=qs[_0xcc60('0x33')](_0x3e9f71[_0xcc60('0x2a')][_0xcc60('0x33')]);_0x25cc82[_0xcc60('0x34')]=qs[_0xcc60('0x2b')](_[_0xcc60('0x35')](_0x3e9f71[_0xcc60('0x2a')],_0x2d2149[_0xcc60('0x2b')]),_0x35bf62);if(_0x3e9f71['query'][_0xcc60('0x36')]){_0x25cc82[_0xcc60('0x34')]=_[_0xcc60('0x37')](_0x25cc82[_0xcc60('0x34')],{'$or':_[_0xcc60('0x23')](_0x35bf62,function(_0x3adbf3){if(_0x3adbf3[_0xcc60('0x26')]!=='VIRTUAL'){var _0x1c1620={};_0x1c1620[_0x3adbf3[_0xcc60('0x20')]]={'$like':'%'+_0x3e9f71[_0xcc60('0x2a')][_0xcc60('0x36')]+'%'};return _0x1c1620;}})});}_0x25cc82=_[_0xcc60('0x37')]({},_0x25cc82,_0x3e9f71[_0xcc60('0x38')]);var _0x1a0370={'where':_0x25cc82[_0xcc60('0x34')]};return db[_0xcc60('0x24')][_0xcc60('0x1a')](_0x1a0370)[_0xcc60('0xa')](function(_0x17faa1){_0x10cd6c[_0xcc60('0x1a')]=_0x17faa1;if(_0x3e9f71['query'][_0xcc60('0x39')]){_0x25cc82[_0xcc60('0x3a')]=[{'all':!![]}];}return db['Network'][_0xcc60('0x3b')](_0x25cc82);})[_0xcc60('0xa')](function(_0x121cf2){_0x10cd6c[_0xcc60('0x3c')]=_0x121cf2;return _0x10cd6c;})[_0xcc60('0xa')](respondWithFilteredResult(_0x13db24,_0x25cc82))[_0xcc60('0x14')](handleError(_0x13db24,null));};exports['show']=function(_0x1c859d,_0xc65d5){var _0x727d9e={'raw':!![],'where':{'id':_0x1c859d['params']['id']}},_0x4cdcfe={};_0x4cdcfe['model']=_[_0xcc60('0x29')](db[_0xcc60('0x24')][_0xcc60('0x3d')]);_0x4cdcfe[_0xcc60('0x2a')]=_[_0xcc60('0x29')](_0x1c859d[_0xcc60('0x2a')]);_0x4cdcfe['filters']=_[_0xcc60('0x2c')](_0x4cdcfe[_0xcc60('0x28')],_0x4cdcfe[_0xcc60('0x2a')]);_0x727d9e['attributes']=_[_0xcc60('0x2c')](_0x4cdcfe[_0xcc60('0x28')],qs[_0xcc60('0x2e')](_0x1c859d[_0xcc60('0x2a')][_0xcc60('0x2e')]));_0x727d9e[_0xcc60('0x2d')]=_0x727d9e[_0xcc60('0x2d')][_0xcc60('0x2f')]?_0x727d9e['attributes']:_0x4cdcfe[_0xcc60('0x28')];if(_0x1c859d['query']['includeAll']){_0x727d9e[_0xcc60('0x3a')]=[{'all':!![]}];}_0x727d9e=_[_0xcc60('0x37')]({},_0x727d9e,_0x1c859d['options']);return db['Network'][_0xcc60('0x3e')](_0x727d9e)['then'](handleEntityNotFound(_0xc65d5,null))[_0xcc60('0xa')](respondWithResult(_0xc65d5,null))[_0xcc60('0x14')](handleError(_0xc65d5,null));};exports[_0xcc60('0x3f')]=function(_0x56876e,_0x5ecb1f){var _0x23c265;return db['Network'][_0xcc60('0x3f')](_0x56876e[_0xcc60('0x40')],{'raw':!![]})[_0xcc60('0xa')](function(_0x12be1f){_0x23c265=_0x12be1f;return db[_0xcc60('0x24')]['findAll']({'where':{'type':_0x56876e[_0xcc60('0x40')][_0xcc60('0x26')]},'raw':!![]});})[_0xcc60('0xa')](function(_0x488c79){if(_0x23c265['type'][_0xcc60('0x41')]()==_0xcc60('0x42')){var _0x4d6b31=fs[_0xcc60('0x43')](path[_0xcc60('0x44')](config[_0xcc60('0x45')],_0xcc60('0x46')),_0xcc60('0x47'));var _0x4dc1ab=ejs[_0xcc60('0x48')](_0x4d6b31,{'networks':_0x488c79||[]});fs[_0xcc60('0x49')](_0xcc60('0x4a'),_0x4dc1ab);return respondWithRpcPromise('Reload','create',{'module':_0xcc60('0x4b')});}else if(_0x23c265[_0xcc60('0x26')][_0xcc60('0x41')]()==_0xcc60('0x4c')){var _0x454345=fs[_0xcc60('0x43')](path[_0xcc60('0x44')](config['root'],'server/files/templates/turn_multiple.ejs'),_0xcc60('0x47'));var _0x4ca01c=ejs[_0xcc60('0x48')](_0x454345,{'networks':_0x488c79||[]});fs[_0xcc60('0x49')](_0xcc60('0x4d'),_0x4ca01c);return respondWithRpcPromise(_0xcc60('0x4e'),'create',{'module':_0xcc60('0x4b')});}else{var _0x5bf3e3=fs['readFileSync'](path[_0xcc60('0x44')](config[_0xcc60('0x45')],_0xcc60('0x4f')),'utf8');var _0x251abc=ejs['render'](_0x5bf3e3,{'networks':_0x488c79||[]});fs[_0xcc60('0x49')](util[_0xcc60('0x50')](_0xcc60('0x51'),_0x56876e[_0xcc60('0x40')][_0xcc60('0x26')][_0xcc60('0x52')]()),_0x251abc);return respondWithRpcPromise(_0xcc60('0x4e'),'create',{'module':_0xcc60('0x53')});}})[_0xcc60('0xa')](function(){return _0x23c265;})['then'](respondWithResult(_0x5ecb1f,0xc9))[_0xcc60('0x14')](handleError(_0x5ecb1f,null));};exports[_0xcc60('0x1c')]=function(_0x4980da,_0x45b5ed){var _0x44e3ef;return db['Network'][_0xcc60('0x3e')]({'where':{'id':_0x4980da[_0xcc60('0x54')]['id']}})[_0xcc60('0xa')](handleEntityNotFound(_0x45b5ed,null))[_0xcc60('0xa')](saveUpdates(_0x4980da[_0xcc60('0x40')],null))['then'](function(_0x286fd0){if(_0x286fd0){_0x44e3ef=_0x286fd0;return db[_0xcc60('0x24')]['findAll']({'where':{'type':_0x44e3ef[_0xcc60('0x26')]},'raw':!![]});}return null;})[_0xcc60('0xa')](function(_0xc3ea9a){if(_0x44e3ef[_0xcc60('0x26')][_0xcc60('0x41')]()==_0xcc60('0x42')){var _0x7f7a10=fs['readFileSync'](path[_0xcc60('0x44')](config[_0xcc60('0x45')],_0xcc60('0x46')),'utf8');var _0x167d5a=ejs[_0xcc60('0x48')](_0x7f7a10,{'networks':_0xc3ea9a||[]});fs[_0xcc60('0x49')](_0xcc60('0x4a'),_0x167d5a);return respondWithRpcPromise('Reload',_0xcc60('0x1c'),{'module':_0xcc60('0x4b')});}else if(_0x44e3ef['type'][_0xcc60('0x41')]()==_0xcc60('0x4c')){var _0x5270af=fs['readFileSync'](path[_0xcc60('0x44')](config[_0xcc60('0x45')],_0xcc60('0x55')),_0xcc60('0x47'));var _0xc666fc=ejs[_0xcc60('0x48')](_0x5270af,{'networks':_0xc3ea9a||[]});fs[_0xcc60('0x49')](_0xcc60('0x4d'),_0xc666fc);return respondWithRpcPromise(_0xcc60('0x4e'),_0xcc60('0x1c'),{'module':_0xcc60('0x4b')});}else{var _0x4566ca=fs[_0xcc60('0x43')](path[_0xcc60('0x44')](config[_0xcc60('0x45')],_0xcc60('0x4f')),_0xcc60('0x47'));var _0xe8618e=ejs[_0xcc60('0x48')](_0x4566ca,{'networks':_0xc3ea9a||[]});fs[_0xcc60('0x49')](util[_0xcc60('0x50')](_0xcc60('0x51'),_0x4980da['body'][_0xcc60('0x26')]['toLowerCase']()),_0xe8618e);return respondWithRpcPromise(_0xcc60('0x4e'),_0xcc60('0x1c'),{'module':_0xcc60('0x53')});}})['then'](function(_0x2d5e84){if(_0x2d5e84){return _0x44e3ef;}return null;})[_0xcc60('0xa')](respondWithResult(_0x45b5ed,null))[_0xcc60('0x14')](handleError(_0x45b5ed,null));};exports[_0xcc60('0x1d')]=function(_0x4b94e3,_0x28bcd5){var _0xcb912c;return db[_0xcc60('0x24')]['find']({'where':{'id':_0x4b94e3['params']['id']}})[_0xcc60('0xa')](function(_0x1630e2){_0xcb912c=_0x1630e2;return _0x1630e2;})[_0xcc60('0xa')](handleEntityNotFound(_0x28bcd5,null))[_0xcc60('0xa')](removeEntity(_0x28bcd5,null))[_0xcc60('0xa')](function(){if(_0xcb912c){return db[_0xcc60('0x24')][_0xcc60('0x3b')]({'where':{'type':_0xcb912c[_0xcc60('0x26')]},'raw':!![]});}})['then'](function(_0x1d9a08){if(_0xcb912c[_0xcc60('0x26')]['toUpperCase']()=='STUN'){var _0x1d6b4f=fs[_0xcc60('0x43')](path[_0xcc60('0x44')](config[_0xcc60('0x45')],_0xcc60('0x46')),_0xcc60('0x47'));var _0x37d7c1=ejs['render'](_0x1d6b4f,{'networks':_0x1d9a08||[]});fs[_0xcc60('0x49')](_0xcc60('0x4a'),_0x37d7c1);return respondWithRpcPromise(_0xcc60('0x4e'),_0xcc60('0x1d'),{'module':_0xcc60('0x4b')});}else if(_0xcb912c[_0xcc60('0x26')][_0xcc60('0x41')]()==_0xcc60('0x4c')){var _0x41e035=fs['readFileSync'](path[_0xcc60('0x44')](config[_0xcc60('0x45')],_0xcc60('0x55')),_0xcc60('0x47'));var _0x477d9f=ejs[_0xcc60('0x48')](_0x41e035,{'networks':_0x1d9a08||[]});fs['writeFileSync']('/etc/asterisk/turn_xcally.conf',_0x477d9f);return respondWithRpcPromise(_0xcc60('0x4e'),_0xcc60('0x1d'),{'module':_0xcc60('0x4b')});}else{var _0x2c79d0=fs[_0xcc60('0x43')](path[_0xcc60('0x44')](config[_0xcc60('0x45')],_0xcc60('0x4f')),_0xcc60('0x47'));var _0x1010a0=ejs[_0xcc60('0x48')](_0x2c79d0,{'networks':_0x1d9a08||[]});fs[_0xcc60('0x49')](util[_0xcc60('0x50')]('/etc/asterisk/sip_xcally_%s.conf',_0xcb912c[_0xcc60('0x26')]['toLowerCase']()),_0x1010a0);return respondWithRpcPromise(_0xcc60('0x4e'),_0xcc60('0x1d'),{'module':_0xcc60('0x53')});}})[_0xcc60('0x14')](handleError(_0x28bcd5,null));};