Built motion from commit c738b9ac.|2.6.25
[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 _0x00eb=['res_stun_monitor.so','server/files/templates/turn_multiple.ejs','utf8','/etc/asterisk/turn_xcally.conf','format','toLowerCase','chan_sip.so','update','TURN','writeFileSync','server/files/templates/network.ejs','/etc/asterisk/sip_xcally_%s.conf','util','path','lodash','../../components/parsers/qs','../../config/logger','api','../../config/environment','jayson/promise','http','request','then','Network,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','status','offset','undefined','count','limit','Content-Range','json','destroy','end','stack','name','send','index','Network','fieldName','type','map','query','filters','intersection','model','fields','length','attributes','hasOwnProperty','nolimit','order','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','params','keys','options','find','create','body','toUpperCase','STUN','readFileSync','join','root','server/files/templates/stun_multiple.ejs','render','/etc/asterisk/stun_xcally.conf','Reload'];(function(_0x41c93a,_0x4b79c5){var _0xac3834=function(_0x1a2c36){while(--_0x1a2c36){_0x41c93a['push'](_0x41c93a['shift']());}};_0xac3834(++_0x4b79c5);}(_0x00eb,0x1ab));var _0xb00e=function(_0x283b18,_0x44295f){_0x283b18=_0x283b18-0x0;var _0x327826=_0x00eb[_0x283b18];return _0x327826;};'use strict';var util=require(_0xb00e('0x0'));var path=require(_0xb00e('0x1'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xb00e('0x2'));var qs=require(_0xb00e('0x3'));var logger=require(_0xb00e('0x4'))(_0xb00e('0x5'));var config=require(_0xb00e('0x6'));var db=require('../../mysqldb')['db'];var jayson=require(_0xb00e('0x7'));var client=jayson['client'][_0xb00e('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x2040f2,_0x13bcc8,_0x192ade,_0x1f2342){return new Promise(function(_0xb2a13b,_0x452d19){var _0x542673=_0x1f2342||client;return _0x542673[_0xb00e('0x9')](_0x2040f2,_0x192ade)[_0xb00e('0xa')](function(_0x3a34ee){logger['info'](_0xb00e('0xb'),_0x13bcc8,_0xb00e('0xc'));logger[_0xb00e('0xd')]('Network,\x20%s,\x20%s,\x20%s',_0x13bcc8,_0xb00e('0xc'),JSON[_0xb00e('0xe')](_0x3a34ee));if(_0x3a34ee[_0xb00e('0xf')]){if(_0x3a34ee['error'][_0xb00e('0x10')]===0x1f4){logger[_0xb00e('0xf')](_0xb00e('0xb'),_0x13bcc8,_0x3a34ee[_0xb00e('0xf')][_0xb00e('0x11')]);return _0x452d19(_0x3a34ee[_0xb00e('0xf')][_0xb00e('0x11')]);}logger[_0xb00e('0xf')](_0xb00e('0xb'),_0x13bcc8,_0x3a34ee['error'][_0xb00e('0x11')]);return _0xb2a13b(_0x3a34ee[_0xb00e('0xf')][_0xb00e('0x11')]);}else{logger['info'](_0xb00e('0xb'),_0x13bcc8,'request\x20sent');_0xb2a13b(_0x3a34ee[_0xb00e('0x12')][_0xb00e('0x11')]);}})[_0xb00e('0x13')](function(_0x4af4ab){logger[_0xb00e('0xf')]('Network,\x20%s,\x20%s',_0x13bcc8,_0x4af4ab);_0x452d19(_0x4af4ab);});});}function respondWithResult(_0x591c25,_0x4ca4f2){_0x4ca4f2=_0x4ca4f2||0xc8;return function(_0x55b1b7){if(_0x55b1b7){return _0x591c25[_0xb00e('0x14')](_0x4ca4f2)['json'](_0x55b1b7);}};}function respondWithFilteredResult(_0x3fe83f,_0x1104b6){return function(_0x4a9443){if(_0x4a9443){var _0x17c4cf=typeof _0x1104b6[_0xb00e('0x15')]==='undefined'&&typeof _0x1104b6['limit']===_0xb00e('0x16');var _0x275f29=_0x4a9443[_0xb00e('0x17')];var _0x3926b4=_0x17c4cf?0x0:_0x1104b6['offset'];var _0x300d43=_0x17c4cf?_0x4a9443[_0xb00e('0x17')]:_0x1104b6[_0xb00e('0x15')]+_0x1104b6[_0xb00e('0x18')];var _0x2c4ccb;if(_0x300d43>=_0x275f29){_0x300d43=_0x275f29;_0x2c4ccb=0xc8;}else{_0x2c4ccb=0xce;}_0x3fe83f['status'](_0x2c4ccb);return _0x3fe83f['set'](_0xb00e('0x19'),_0x3926b4+'-'+_0x300d43+'/'+_0x275f29)[_0xb00e('0x1a')](_0x4a9443);}return null;};}function saveUpdates(_0x5631bc){return function(_0x348c41){if(_0x348c41){return _0x348c41['update'](_0x5631bc)['then'](function(_0x55217f){return _0x55217f;});}return null;};}function removeEntity(_0x432d3e){return function(_0x3e5dff){if(_0x3e5dff){return _0x3e5dff[_0xb00e('0x1b')]()[_0xb00e('0xa')](function(){_0x432d3e[_0xb00e('0x14')](0xcc)[_0xb00e('0x1c')]();});}};}function handleEntityNotFound(_0x8a2b){return function(_0x474704){if(!_0x474704){_0x8a2b['sendStatus'](0x194);}return _0x474704;};}function handleError(_0xadc47f,_0x200542){_0x200542=_0x200542||0x1f4;return function(_0x2d680a){logger['error'](_0x2d680a[_0xb00e('0x1d')]);if(_0x2d680a['name']){delete _0x2d680a[_0xb00e('0x1e')];}_0xadc47f[_0xb00e('0x14')](_0x200542)[_0xb00e('0x1f')](_0x2d680a);};}exports[_0xb00e('0x20')]=function(_0x3d174c,_0x52eba9){var _0x30c43e={},_0xa656e={},_0x342d5a={'count':0x0,'rows':[]};var _0x19d921=_['map'](db[_0xb00e('0x21')]['rawAttributes'],function(_0x1fb767){return{'name':_0x1fb767[_0xb00e('0x22')],'type':_0x1fb767[_0xb00e('0x23')]['key']};});_0xa656e['model']=_[_0xb00e('0x24')](_0x19d921,'name');_0xa656e[_0xb00e('0x25')]=_['keys'](_0x3d174c[_0xb00e('0x25')]);_0xa656e[_0xb00e('0x26')]=_[_0xb00e('0x27')](_0xa656e[_0xb00e('0x28')],_0xa656e[_0xb00e('0x25')]);_0x30c43e['attributes']=_[_0xb00e('0x27')](_0xa656e['model'],qs['fields'](_0x3d174c[_0xb00e('0x25')][_0xb00e('0x29')]));_0x30c43e['attributes']=_0x30c43e['attributes'][_0xb00e('0x2a')]?_0x30c43e[_0xb00e('0x2b')]:_0xa656e[_0xb00e('0x28')];if(!_0x3d174c[_0xb00e('0x25')][_0xb00e('0x2c')](_0xb00e('0x2d'))){_0x30c43e[_0xb00e('0x18')]=qs[_0xb00e('0x18')](_0x3d174c['query'][_0xb00e('0x18')]);_0x30c43e[_0xb00e('0x15')]=qs[_0xb00e('0x15')](_0x3d174c[_0xb00e('0x25')][_0xb00e('0x15')]);}_0x30c43e[_0xb00e('0x2e')]=qs['sort'](_0x3d174c[_0xb00e('0x25')]['sort']);_0x30c43e[_0xb00e('0x2f')]=qs[_0xb00e('0x26')](_[_0xb00e('0x30')](_0x3d174c[_0xb00e('0x25')],_0xa656e['filters']),_0x19d921);if(_0x3d174c['query'][_0xb00e('0x31')]){_0x30c43e[_0xb00e('0x2f')]=_[_0xb00e('0x32')](_0x30c43e[_0xb00e('0x2f')],{'$or':_[_0xb00e('0x24')](_0x19d921,function(_0x2f2104){if(_0x2f2104[_0xb00e('0x23')]!==_0xb00e('0x33')){var _0x45d642={};_0x45d642[_0x2f2104['name']]={'$like':'%'+_0x3d174c[_0xb00e('0x25')][_0xb00e('0x31')]+'%'};return _0x45d642;}})});}_0x30c43e=_[_0xb00e('0x32')]({},_0x30c43e,_0x3d174c['options']);var _0x415efb={'where':_0x30c43e[_0xb00e('0x2f')]};return db['Network'][_0xb00e('0x17')](_0x415efb)[_0xb00e('0xa')](function(_0xae452a){_0x342d5a['count']=_0xae452a;if(_0x3d174c['query'][_0xb00e('0x34')]){_0x30c43e[_0xb00e('0x35')]=[{'all':!![]}];}return db[_0xb00e('0x21')][_0xb00e('0x36')](_0x30c43e);})['then'](function(_0x25f826){_0x342d5a[_0xb00e('0x37')]=_0x25f826;return _0x342d5a;})[_0xb00e('0xa')](respondWithFilteredResult(_0x52eba9,_0x30c43e))[_0xb00e('0x13')](handleError(_0x52eba9,null));};exports['show']=function(_0x17df83,_0x74616a){var _0x28d4c6={'raw':!![],'where':{'id':_0x17df83[_0xb00e('0x38')]['id']}},_0xa226a7={};_0xa226a7[_0xb00e('0x28')]=_[_0xb00e('0x39')](db[_0xb00e('0x21')]['rawAttributes']);_0xa226a7[_0xb00e('0x25')]=_[_0xb00e('0x39')](_0x17df83['query']);_0xa226a7[_0xb00e('0x26')]=_['intersection'](_0xa226a7['model'],_0xa226a7['query']);_0x28d4c6[_0xb00e('0x2b')]=_['intersection'](_0xa226a7[_0xb00e('0x28')],qs[_0xb00e('0x29')](_0x17df83[_0xb00e('0x25')][_0xb00e('0x29')]));_0x28d4c6[_0xb00e('0x2b')]=_0x28d4c6[_0xb00e('0x2b')][_0xb00e('0x2a')]?_0x28d4c6[_0xb00e('0x2b')]:_0xa226a7[_0xb00e('0x28')];if(_0x17df83[_0xb00e('0x25')][_0xb00e('0x34')]){_0x28d4c6[_0xb00e('0x35')]=[{'all':!![]}];}_0x28d4c6=_[_0xb00e('0x32')]({},_0x28d4c6,_0x17df83[_0xb00e('0x3a')]);return db[_0xb00e('0x21')][_0xb00e('0x3b')](_0x28d4c6)[_0xb00e('0xa')](handleEntityNotFound(_0x74616a,null))['then'](respondWithResult(_0x74616a,null))[_0xb00e('0x13')](handleError(_0x74616a,null));};exports[_0xb00e('0x3c')]=function(_0xfb50da,_0x60a3cc){var _0x5e863d;return db[_0xb00e('0x21')]['create'](_0xfb50da[_0xb00e('0x3d')],{'raw':!![]})[_0xb00e('0xa')](function(_0x63f1c8){_0x5e863d=_0x63f1c8;return db['Network']['findAll']({'where':{'type':_0xfb50da[_0xb00e('0x3d')][_0xb00e('0x23')]},'raw':!![]});})[_0xb00e('0xa')](function(_0x32a2f1){if(_0x5e863d[_0xb00e('0x23')][_0xb00e('0x3e')]()==_0xb00e('0x3f')){var _0x3aabcb=fs[_0xb00e('0x40')](path[_0xb00e('0x41')](config[_0xb00e('0x42')],_0xb00e('0x43')),'utf8');var _0x2b8e43=ejs[_0xb00e('0x44')](_0x3aabcb,{'networks':_0x32a2f1||[]});fs['writeFileSync'](_0xb00e('0x45'),_0x2b8e43);return respondWithRpcPromise(_0xb00e('0x46'),'create',{'module':_0xb00e('0x47')});}else if(_0x5e863d['type'][_0xb00e('0x3e')]()=='TURN'){var _0x449174=fs[_0xb00e('0x40')](path[_0xb00e('0x41')](config[_0xb00e('0x42')],_0xb00e('0x48')),_0xb00e('0x49'));var _0x99b5f6=ejs['render'](_0x449174,{'networks':_0x32a2f1||[]});fs['writeFileSync'](_0xb00e('0x4a'),_0x99b5f6);return respondWithRpcPromise(_0xb00e('0x46'),_0xb00e('0x3c'),{'module':'res_stun_monitor.so'});}else{var _0x27fb1d=fs[_0xb00e('0x40')](path[_0xb00e('0x41')](config[_0xb00e('0x42')],'server/files/templates/network.ejs'),_0xb00e('0x49'));var _0x2b1b77=ejs[_0xb00e('0x44')](_0x27fb1d,{'networks':_0x32a2f1||[]});fs['writeFileSync'](util[_0xb00e('0x4b')]('/etc/asterisk/sip_xcally_%s.conf',_0xfb50da[_0xb00e('0x3d')][_0xb00e('0x23')][_0xb00e('0x4c')]()),_0x2b1b77);return respondWithRpcPromise(_0xb00e('0x46'),_0xb00e('0x3c'),{'module':_0xb00e('0x4d')});}})[_0xb00e('0xa')](function(){return _0x5e863d;})[_0xb00e('0xa')](respondWithResult(_0x60a3cc,0xc9))[_0xb00e('0x13')](handleError(_0x60a3cc,null));};exports[_0xb00e('0x4e')]=function(_0x347bbd,_0x5cdd86){var _0x3bcf7e;return db[_0xb00e('0x21')]['find']({'where':{'id':_0x347bbd[_0xb00e('0x38')]['id']}})[_0xb00e('0xa')](handleEntityNotFound(_0x5cdd86,null))[_0xb00e('0xa')](saveUpdates(_0x347bbd[_0xb00e('0x3d')],null))[_0xb00e('0xa')](function(_0x4e6a37){if(_0x4e6a37){_0x3bcf7e=_0x4e6a37;return db[_0xb00e('0x21')][_0xb00e('0x36')]({'where':{'type':_0x3bcf7e[_0xb00e('0x23')]},'raw':!![]});}return null;})[_0xb00e('0xa')](function(_0x1c6366){if(_0x3bcf7e[_0xb00e('0x23')][_0xb00e('0x3e')]()==_0xb00e('0x3f')){var _0x186318=fs['readFileSync'](path[_0xb00e('0x41')](config[_0xb00e('0x42')],_0xb00e('0x43')),'utf8');var _0x369182=ejs[_0xb00e('0x44')](_0x186318,{'networks':_0x1c6366||[]});fs['writeFileSync'](_0xb00e('0x45'),_0x369182);return respondWithRpcPromise('Reload',_0xb00e('0x4e'),{'module':_0xb00e('0x47')});}else if(_0x3bcf7e['type'][_0xb00e('0x3e')]()==_0xb00e('0x4f')){var _0x11db93=fs[_0xb00e('0x40')](path[_0xb00e('0x41')](config[_0xb00e('0x42')],_0xb00e('0x48')),_0xb00e('0x49'));var _0x327941=ejs[_0xb00e('0x44')](_0x11db93,{'networks':_0x1c6366||[]});fs[_0xb00e('0x50')](_0xb00e('0x4a'),_0x327941);return respondWithRpcPromise(_0xb00e('0x46'),_0xb00e('0x4e'),{'module':'res_stun_monitor.so'});}else{var _0x3ede58=fs['readFileSync'](path[_0xb00e('0x41')](config[_0xb00e('0x42')],_0xb00e('0x51')),'utf8');var _0x4ce55b=ejs[_0xb00e('0x44')](_0x3ede58,{'networks':_0x1c6366||[]});fs[_0xb00e('0x50')](util['format'](_0xb00e('0x52'),_0x347bbd[_0xb00e('0x3d')]['type']['toLowerCase']()),_0x4ce55b);return respondWithRpcPromise(_0xb00e('0x46'),_0xb00e('0x4e'),{'module':_0xb00e('0x4d')});}})[_0xb00e('0xa')](function(_0x1a1d30){if(_0x1a1d30){return _0x3bcf7e;}return null;})[_0xb00e('0xa')](respondWithResult(_0x5cdd86,null))[_0xb00e('0x13')](handleError(_0x5cdd86,null));};exports[_0xb00e('0x1b')]=function(_0x143881,_0x142770){var _0x1ddd96;return db[_0xb00e('0x21')]['find']({'where':{'id':_0x143881[_0xb00e('0x38')]['id']}})[_0xb00e('0xa')](function(_0x1ad692){_0x1ddd96=_0x1ad692;return _0x1ad692;})[_0xb00e('0xa')](handleEntityNotFound(_0x142770,null))[_0xb00e('0xa')](removeEntity(_0x142770,null))[_0xb00e('0xa')](function(){if(_0x1ddd96){return db[_0xb00e('0x21')]['findAll']({'where':{'type':_0x1ddd96[_0xb00e('0x23')]},'raw':!![]});}})[_0xb00e('0xa')](function(_0x34e326){if(_0x1ddd96[_0xb00e('0x23')][_0xb00e('0x3e')]()==_0xb00e('0x3f')){var _0x264a05=fs[_0xb00e('0x40')](path[_0xb00e('0x41')](config[_0xb00e('0x42')],_0xb00e('0x43')),_0xb00e('0x49'));var _0x18203e=ejs['render'](_0x264a05,{'networks':_0x34e326||[]});fs[_0xb00e('0x50')](_0xb00e('0x45'),_0x18203e);return respondWithRpcPromise(_0xb00e('0x46'),_0xb00e('0x1b'),{'module':_0xb00e('0x47')});}else if(_0x1ddd96[_0xb00e('0x23')][_0xb00e('0x3e')]()==_0xb00e('0x4f')){var _0x2b9664=fs[_0xb00e('0x40')](path[_0xb00e('0x41')](config[_0xb00e('0x42')],'server/files/templates/turn_multiple.ejs'),'utf8');var _0xf903fe=ejs['render'](_0x2b9664,{'networks':_0x34e326||[]});fs[_0xb00e('0x50')](_0xb00e('0x4a'),_0xf903fe);return respondWithRpcPromise(_0xb00e('0x46'),_0xb00e('0x1b'),{'module':_0xb00e('0x47')});}else{var _0x26d858=fs[_0xb00e('0x40')](path[_0xb00e('0x41')](config['root'],_0xb00e('0x51')),'utf8');var _0x128f3b=ejs[_0xb00e('0x44')](_0x26d858,{'networks':_0x34e326||[]});fs['writeFileSync'](util[_0xb00e('0x4b')](_0xb00e('0x52'),_0x1ddd96['type']['toLowerCase']()),_0x128f3b);return respondWithRpcPromise(_0xb00e('0x46'),_0xb00e('0x1b'),{'module':'chan_sip.so'});}})[_0xb00e('0x13')](handleError(_0x142770,null));};