Built motion from commit 1fd437e9.|2.6.19
[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 _0xd2f3=['rows','show','params','rawAttributes','fields','find','create','body','toUpperCase','STUN','join','root','server/files/templates/stun_multiple.ejs','utf8','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','readFileSync','server/files/templates/turn_multiple.ejs','render','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','ejs','lodash','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','jayson/promise','client','http','request','Network,\x20%s,\x20%s','request\x20sent','Network,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','status','offset','undefined','limit','count','set','json','update','then','destroy','send','Network','fieldName','type','key','map','name','query','keys','intersection','model','attributes','length','hasOwnProperty','nolimit','order','sort','filters','filter','where','VIRTUAL','merge','includeAll','include','findAll'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xd2f3,0x6d));var _0x3d2f=function(_0x43cf91,_0x197109){_0x43cf91=_0x43cf91-0x0;var _0x1f0fdb=_0xd2f3[_0x43cf91];return _0x1f0fdb;};'use strict';var util=require('util');var path=require('path');var ejs=require(_0x3d2f('0x0'));var fs=require('fs');var _=require(_0x3d2f('0x1'));var qs=require(_0x3d2f('0x2'));var logger=require(_0x3d2f('0x3'))(_0x3d2f('0x4'));var config=require(_0x3d2f('0x5'));var db=require(_0x3d2f('0x6'))['db'];var jayson=require(_0x3d2f('0x7'));var client=jayson[_0x3d2f('0x8')][_0x3d2f('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1d0684,_0x1fee7d,_0x59c640,_0x4b6e90){return new Promise(function(_0x187ea0,_0x3a981d){var _0x1c6de4=_0x4b6e90||client;return _0x1c6de4[_0x3d2f('0xa')](_0x1d0684,_0x59c640)['then'](function(_0x50fa9b){logger['info'](_0x3d2f('0xb'),_0x1fee7d,_0x3d2f('0xc'));logger['debug'](_0x3d2f('0xd'),_0x1fee7d,_0x3d2f('0xc'),JSON[_0x3d2f('0xe')](_0x50fa9b));if(_0x50fa9b['error']){if(_0x50fa9b[_0x3d2f('0xf')]['code']===0x1f4){logger[_0x3d2f('0xf')](_0x3d2f('0xb'),_0x1fee7d,_0x50fa9b[_0x3d2f('0xf')][_0x3d2f('0x10')]);return _0x3a981d(_0x50fa9b[_0x3d2f('0xf')][_0x3d2f('0x10')]);}logger[_0x3d2f('0xf')](_0x3d2f('0xb'),_0x1fee7d,_0x50fa9b[_0x3d2f('0xf')][_0x3d2f('0x10')]);return _0x187ea0(_0x50fa9b['error']['message']);}else{logger['info']('Network,\x20%s,\x20%s',_0x1fee7d,_0x3d2f('0xc'));_0x187ea0(_0x50fa9b['result'][_0x3d2f('0x10')]);}})[_0x3d2f('0x11')](function(_0x1e96fd){logger[_0x3d2f('0xf')](_0x3d2f('0xb'),_0x1fee7d,_0x1e96fd);_0x3a981d(_0x1e96fd);});});}function respondWithResult(_0xbb7995,_0x1d5bad){_0x1d5bad=_0x1d5bad||0xc8;return function(_0x3a4b56){if(_0x3a4b56){return _0xbb7995[_0x3d2f('0x12')](_0x1d5bad)['json'](_0x3a4b56);}};}function respondWithFilteredResult(_0x2610a5,_0x93b790){return function(_0x1abe6d){if(_0x1abe6d){var _0x4aefc9=typeof _0x93b790[_0x3d2f('0x13')]===_0x3d2f('0x14')&&typeof _0x93b790[_0x3d2f('0x15')]===_0x3d2f('0x14');var _0x45b8c8=_0x1abe6d[_0x3d2f('0x16')];var _0x1eb758=_0x4aefc9?0x0:_0x93b790[_0x3d2f('0x13')];var _0x4b694a=_0x4aefc9?_0x1abe6d[_0x3d2f('0x16')]:_0x93b790[_0x3d2f('0x13')]+_0x93b790[_0x3d2f('0x15')];var _0x382527;if(_0x4b694a>=_0x45b8c8){_0x4b694a=_0x45b8c8;_0x382527=0xc8;}else{_0x382527=0xce;}_0x2610a5[_0x3d2f('0x12')](_0x382527);return _0x2610a5[_0x3d2f('0x17')]('Content-Range',_0x1eb758+'-'+_0x4b694a+'/'+_0x45b8c8)[_0x3d2f('0x18')](_0x1abe6d);}return null;};}function saveUpdates(_0xf482d0){return function(_0x5daefc){if(_0x5daefc){return _0x5daefc[_0x3d2f('0x19')](_0xf482d0)[_0x3d2f('0x1a')](function(_0x547a02){return _0x547a02;});}return null;};}function removeEntity(_0x568942){return function(_0x377113){if(_0x377113){return _0x377113[_0x3d2f('0x1b')]()[_0x3d2f('0x1a')](function(){_0x568942[_0x3d2f('0x12')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4accab){return function(_0x570df8){if(!_0x570df8){_0x4accab['sendStatus'](0x194);}return _0x570df8;};}function handleError(_0xa80fb0,_0x5b4009){_0x5b4009=_0x5b4009||0x1f4;return function(_0x2875e2){logger['error'](_0x2875e2['stack']);if(_0x2875e2['name']){delete _0x2875e2['name'];}_0xa80fb0[_0x3d2f('0x12')](_0x5b4009)[_0x3d2f('0x1c')](_0x2875e2);};}exports['index']=function(_0x39bea0,_0x40fd3e){var _0x13b7fd={},_0x352951={},_0x8d4b6a={'count':0x0,'rows':[]};var _0x16bff1=_['map'](db[_0x3d2f('0x1d')]['rawAttributes'],function(_0x51f2c2){return{'name':_0x51f2c2[_0x3d2f('0x1e')],'type':_0x51f2c2[_0x3d2f('0x1f')][_0x3d2f('0x20')]};});_0x352951['model']=_[_0x3d2f('0x21')](_0x16bff1,_0x3d2f('0x22'));_0x352951[_0x3d2f('0x23')]=_[_0x3d2f('0x24')](_0x39bea0[_0x3d2f('0x23')]);_0x352951['filters']=_[_0x3d2f('0x25')](_0x352951[_0x3d2f('0x26')],_0x352951['query']);_0x13b7fd[_0x3d2f('0x27')]=_[_0x3d2f('0x25')](_0x352951[_0x3d2f('0x26')],qs['fields'](_0x39bea0[_0x3d2f('0x23')]['fields']));_0x13b7fd[_0x3d2f('0x27')]=_0x13b7fd[_0x3d2f('0x27')][_0x3d2f('0x28')]?_0x13b7fd[_0x3d2f('0x27')]:_0x352951['model'];if(!_0x39bea0[_0x3d2f('0x23')][_0x3d2f('0x29')](_0x3d2f('0x2a'))){_0x13b7fd[_0x3d2f('0x15')]=qs['limit'](_0x39bea0[_0x3d2f('0x23')][_0x3d2f('0x15')]);_0x13b7fd['offset']=qs['offset'](_0x39bea0[_0x3d2f('0x23')][_0x3d2f('0x13')]);}_0x13b7fd[_0x3d2f('0x2b')]=qs['sort'](_0x39bea0[_0x3d2f('0x23')][_0x3d2f('0x2c')]);_0x13b7fd['where']=qs[_0x3d2f('0x2d')](_['pick'](_0x39bea0[_0x3d2f('0x23')],_0x352951[_0x3d2f('0x2d')]),_0x16bff1);if(_0x39bea0[_0x3d2f('0x23')][_0x3d2f('0x2e')]){_0x13b7fd[_0x3d2f('0x2f')]=_['merge'](_0x13b7fd[_0x3d2f('0x2f')],{'$or':_[_0x3d2f('0x21')](_0x16bff1,function(_0x42e0c1){if(_0x42e0c1['type']!==_0x3d2f('0x30')){var _0x5ce5f7={};_0x5ce5f7[_0x42e0c1[_0x3d2f('0x22')]]={'$like':'%'+_0x39bea0[_0x3d2f('0x23')][_0x3d2f('0x2e')]+'%'};return _0x5ce5f7;}})});}_0x13b7fd=_[_0x3d2f('0x31')]({},_0x13b7fd,_0x39bea0['options']);var _0x415bd8={'where':_0x13b7fd[_0x3d2f('0x2f')]};return db[_0x3d2f('0x1d')][_0x3d2f('0x16')](_0x415bd8)[_0x3d2f('0x1a')](function(_0x529627){_0x8d4b6a[_0x3d2f('0x16')]=_0x529627;if(_0x39bea0[_0x3d2f('0x23')][_0x3d2f('0x32')]){_0x13b7fd[_0x3d2f('0x33')]=[{'all':!![]}];}return db[_0x3d2f('0x1d')][_0x3d2f('0x34')](_0x13b7fd);})[_0x3d2f('0x1a')](function(_0x6baa64){_0x8d4b6a[_0x3d2f('0x35')]=_0x6baa64;return _0x8d4b6a;})[_0x3d2f('0x1a')](respondWithFilteredResult(_0x40fd3e,_0x13b7fd))['catch'](handleError(_0x40fd3e,null));};exports[_0x3d2f('0x36')]=function(_0xba403d,_0x444c09){var _0x178963={'raw':!![],'where':{'id':_0xba403d[_0x3d2f('0x37')]['id']}},_0x1931b8={};_0x1931b8[_0x3d2f('0x26')]=_[_0x3d2f('0x24')](db[_0x3d2f('0x1d')][_0x3d2f('0x38')]);_0x1931b8['query']=_['keys'](_0xba403d[_0x3d2f('0x23')]);_0x1931b8['filters']=_[_0x3d2f('0x25')](_0x1931b8[_0x3d2f('0x26')],_0x1931b8[_0x3d2f('0x23')]);_0x178963[_0x3d2f('0x27')]=_['intersection'](_0x1931b8[_0x3d2f('0x26')],qs['fields'](_0xba403d[_0x3d2f('0x23')][_0x3d2f('0x39')]));_0x178963['attributes']=_0x178963[_0x3d2f('0x27')][_0x3d2f('0x28')]?_0x178963[_0x3d2f('0x27')]:_0x1931b8[_0x3d2f('0x26')];if(_0xba403d[_0x3d2f('0x23')][_0x3d2f('0x32')]){_0x178963[_0x3d2f('0x33')]=[{'all':!![]}];}_0x178963=_[_0x3d2f('0x31')]({},_0x178963,_0xba403d['options']);return db['Network'][_0x3d2f('0x3a')](_0x178963)[_0x3d2f('0x1a')](handleEntityNotFound(_0x444c09,null))[_0x3d2f('0x1a')](respondWithResult(_0x444c09,null))[_0x3d2f('0x11')](handleError(_0x444c09,null));};exports[_0x3d2f('0x3b')]=function(_0x585004,_0x4d5872){var _0x274fc6;return db[_0x3d2f('0x1d')][_0x3d2f('0x3b')](_0x585004[_0x3d2f('0x3c')],{'raw':!![]})[_0x3d2f('0x1a')](function(_0x27d0fb){_0x274fc6=_0x27d0fb;return db[_0x3d2f('0x1d')]['findAll']({'where':{'type':_0x585004['body']['type']},'raw':!![]});})[_0x3d2f('0x1a')](function(_0x47b1df){if(_0x274fc6[_0x3d2f('0x1f')][_0x3d2f('0x3d')]()==_0x3d2f('0x3e')){var _0x3e658e=fs['readFileSync'](path[_0x3d2f('0x3f')](config[_0x3d2f('0x40')],_0x3d2f('0x41')),_0x3d2f('0x42'));var _0x530562=ejs['render'](_0x3e658e,{'networks':_0x47b1df||[]});fs[_0x3d2f('0x43')](_0x3d2f('0x44'),_0x530562);return respondWithRpcPromise(_0x3d2f('0x45'),_0x3d2f('0x3b'),{'module':_0x3d2f('0x46')});}else if(_0x274fc6['type'][_0x3d2f('0x3d')]()==_0x3d2f('0x47')){var _0x4b2d3b=fs[_0x3d2f('0x48')](path[_0x3d2f('0x3f')](config[_0x3d2f('0x40')],_0x3d2f('0x49')),_0x3d2f('0x42'));var _0x472638=ejs[_0x3d2f('0x4a')](_0x4b2d3b,{'networks':_0x47b1df||[]});fs[_0x3d2f('0x43')](_0x3d2f('0x4b'),_0x472638);return respondWithRpcPromise(_0x3d2f('0x45'),_0x3d2f('0x3b'),{'module':_0x3d2f('0x46')});}else{var _0x320748=fs[_0x3d2f('0x48')](path[_0x3d2f('0x3f')](config[_0x3d2f('0x40')],_0x3d2f('0x4c')),_0x3d2f('0x42'));var _0x568ff6=ejs['render'](_0x320748,{'networks':_0x47b1df||[]});fs[_0x3d2f('0x43')](util[_0x3d2f('0x4d')](_0x3d2f('0x4e'),_0x585004[_0x3d2f('0x3c')][_0x3d2f('0x1f')][_0x3d2f('0x4f')]()),_0x568ff6);return respondWithRpcPromise('Reload','create',{'module':'chan_sip.so'});}})['then'](function(){return _0x274fc6;})[_0x3d2f('0x1a')](respondWithResult(_0x4d5872,0xc9))[_0x3d2f('0x11')](handleError(_0x4d5872,null));};exports['update']=function(_0xa1c675,_0x4aa102){var _0x19efb4;return db[_0x3d2f('0x1d')]['find']({'where':{'id':_0xa1c675[_0x3d2f('0x37')]['id']}})['then'](handleEntityNotFound(_0x4aa102,null))['then'](saveUpdates(_0xa1c675[_0x3d2f('0x3c')],null))['then'](function(_0x466591){if(_0x466591){_0x19efb4=_0x466591;return db[_0x3d2f('0x1d')][_0x3d2f('0x34')]({'where':{'type':_0x19efb4[_0x3d2f('0x1f')]},'raw':!![]});}return null;})['then'](function(_0xda4bcc){if(_0x19efb4[_0x3d2f('0x1f')][_0x3d2f('0x3d')]()==_0x3d2f('0x3e')){var _0x5a403e=fs['readFileSync'](path[_0x3d2f('0x3f')](config[_0x3d2f('0x40')],'server/files/templates/stun_multiple.ejs'),_0x3d2f('0x42'));var _0x3d6d04=ejs[_0x3d2f('0x4a')](_0x5a403e,{'networks':_0xda4bcc||[]});fs[_0x3d2f('0x43')](_0x3d2f('0x44'),_0x3d6d04);return respondWithRpcPromise('Reload',_0x3d2f('0x19'),{'module':_0x3d2f('0x46')});}else if(_0x19efb4[_0x3d2f('0x1f')][_0x3d2f('0x3d')]()==_0x3d2f('0x47')){var _0xacc87d=fs[_0x3d2f('0x48')](path[_0x3d2f('0x3f')](config['root'],_0x3d2f('0x49')),_0x3d2f('0x42'));var _0x5f26fa=ejs[_0x3d2f('0x4a')](_0xacc87d,{'networks':_0xda4bcc||[]});fs[_0x3d2f('0x43')](_0x3d2f('0x4b'),_0x5f26fa);return respondWithRpcPromise(_0x3d2f('0x45'),_0x3d2f('0x19'),{'module':_0x3d2f('0x46')});}else{var _0x1094a7=fs[_0x3d2f('0x48')](path['join'](config[_0x3d2f('0x40')],_0x3d2f('0x4c')),'utf8');var _0x33f00a=ejs['render'](_0x1094a7,{'networks':_0xda4bcc||[]});fs['writeFileSync'](util[_0x3d2f('0x4d')](_0x3d2f('0x4e'),_0xa1c675[_0x3d2f('0x3c')][_0x3d2f('0x1f')][_0x3d2f('0x4f')]()),_0x33f00a);return respondWithRpcPromise(_0x3d2f('0x45'),_0x3d2f('0x19'),{'module':'chan_sip.so'});}})['then'](function(_0x1686c8){if(_0x1686c8){return _0x19efb4;}return null;})[_0x3d2f('0x1a')](respondWithResult(_0x4aa102,null))['catch'](handleError(_0x4aa102,null));};exports[_0x3d2f('0x1b')]=function(_0x574999,_0x5d45bb){var _0x51857b;return db[_0x3d2f('0x1d')][_0x3d2f('0x3a')]({'where':{'id':_0x574999[_0x3d2f('0x37')]['id']}})['then'](function(_0x2fb7e2){_0x51857b=_0x2fb7e2;return _0x2fb7e2;})[_0x3d2f('0x1a')](handleEntityNotFound(_0x5d45bb,null))['then'](removeEntity(_0x5d45bb,null))[_0x3d2f('0x1a')](function(){if(_0x51857b){return db[_0x3d2f('0x1d')]['findAll']({'where':{'type':_0x51857b[_0x3d2f('0x1f')]},'raw':!![]});}})[_0x3d2f('0x1a')](function(_0x671a55){if(_0x51857b[_0x3d2f('0x1f')][_0x3d2f('0x3d')]()==_0x3d2f('0x3e')){var _0x2d3744=fs[_0x3d2f('0x48')](path[_0x3d2f('0x3f')](config[_0x3d2f('0x40')],_0x3d2f('0x41')),_0x3d2f('0x42'));var _0x33f972=ejs[_0x3d2f('0x4a')](_0x2d3744,{'networks':_0x671a55||[]});fs[_0x3d2f('0x43')](_0x3d2f('0x44'),_0x33f972);return respondWithRpcPromise(_0x3d2f('0x45'),_0x3d2f('0x1b'),{'module':'res_stun_monitor.so'});}else if(_0x51857b[_0x3d2f('0x1f')][_0x3d2f('0x3d')]()==_0x3d2f('0x47')){var _0x8cc563=fs[_0x3d2f('0x48')](path[_0x3d2f('0x3f')](config[_0x3d2f('0x40')],_0x3d2f('0x49')),'utf8');var _0x1b3d34=ejs[_0x3d2f('0x4a')](_0x8cc563,{'networks':_0x671a55||[]});fs[_0x3d2f('0x43')]('/etc/asterisk/turn_xcally.conf',_0x1b3d34);return respondWithRpcPromise('Reload',_0x3d2f('0x1b'),{'module':_0x3d2f('0x46')});}else{var _0x52c4d2=fs[_0x3d2f('0x48')](path[_0x3d2f('0x3f')](config[_0x3d2f('0x40')],_0x3d2f('0x4c')),_0x3d2f('0x42'));var _0x1511d6=ejs['render'](_0x52c4d2,{'networks':_0x671a55||[]});fs[_0x3d2f('0x43')](util[_0x3d2f('0x4d')](_0x3d2f('0x4e'),_0x51857b['type'][_0x3d2f('0x4f')]()),_0x1511d6);return respondWithRpcPromise(_0x3d2f('0x45'),'destroy',{'module':_0x3d2f('0x50')});}})[_0x3d2f('0x11')](handleError(_0x5d45bb,null));};