Built motion from commit (unavailable).|2.5.15
[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 _0x2ae7=['../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','debug','Network,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','Network,\x20%s,\x20%s','message','status','json','count','offset','limit','set','Content-Range','save','update','stack','send','index','map','Network','rawAttributes','type','key','model','name','query','keys','intersection','attributes','fields','length','hasOwnProperty','sort','filters','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','sequelize','transaction','create','body','toUpperCase','STUN','readFileSync','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','join','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','root','server/files/templates/network.ejs','format','chan_sip.so','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','destroy','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0xaf56b7,_0x4b1e95){var _0x5e5ee8=function(_0x1a57ba){while(--_0x1a57ba){_0xaf56b7['push'](_0xaf56b7['shift']());}};_0x5e5ee8(++_0x4b1e95);}(_0x2ae7,0x12f));var _0x72ae=function(_0xa66cb6,_0xbb629e){_0xa66cb6=_0xa66cb6-0x0;var _0x6111f2=_0x2ae7[_0xa66cb6];return _0x6111f2;};'use strict';var pdf=require(_0x72ae('0x0'));var emlformat=require(_0x72ae('0x1'));var rimraf=require(_0x72ae('0x2'));var zipdir=require(_0x72ae('0x3'));var jsonpatch=require(_0x72ae('0x4'));var rp=require(_0x72ae('0x5'));var moment=require(_0x72ae('0x6'));var BPromise=require(_0x72ae('0x7'));var Mustache=require(_0x72ae('0x8'));var util=require(_0x72ae('0x9'));var path=require(_0x72ae('0xa'));var sox=require(_0x72ae('0xb'));var csv=require(_0x72ae('0xc'));var ejs=require(_0x72ae('0xd'));var fs=require('fs');var _=require(_0x72ae('0xe'));var squel=require(_0x72ae('0xf'));var crypto=require(_0x72ae('0x10'));var jsforce=require(_0x72ae('0x11'));var deskjs=require('desk.js');var toCsv=require(_0x72ae('0xc'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x72ae('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x72ae('0x13'));var as=require(_0x72ae('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x72ae('0x15'))(_0x72ae('0x16'));var utils=require(_0x72ae('0x17'));var config=require(_0x72ae('0x18'));var licenseUtil=require(_0x72ae('0x19'));var db=require(_0x72ae('0x1a'))['db'];var jayson=require(_0x72ae('0x1b'));var client=jayson[_0x72ae('0x1c')][_0x72ae('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x22328b,_0x2f7766,_0x35e53a,_0x3f549d){return new BPromise(function(_0x285140,_0x334d1e){var _0x199151=_0x3f549d||client;return _0x199151[_0x72ae('0x1e')](_0x22328b,_0x35e53a)[_0x72ae('0x1f')](function(_0x4c89a7){logger[_0x72ae('0x20')]('Network,\x20%s,\x20%s',_0x2f7766,'request\x20sent');logger[_0x72ae('0x21')](_0x72ae('0x22'),_0x2f7766,_0x72ae('0x23'),JSON[_0x72ae('0x24')](_0x4c89a7));if(_0x4c89a7[_0x72ae('0x25')]){if(_0x4c89a7[_0x72ae('0x25')][_0x72ae('0x26')]===0x1f4){logger[_0x72ae('0x25')](_0x72ae('0x27'),_0x2f7766,_0x4c89a7['error']['message']);return _0x334d1e(_0x4c89a7['error'][_0x72ae('0x28')]);}logger[_0x72ae('0x25')](_0x72ae('0x27'),_0x2f7766,_0x4c89a7[_0x72ae('0x25')]['message']);return _0x285140(_0x4c89a7[_0x72ae('0x25')][_0x72ae('0x28')]);}else{logger['info']('Network,\x20%s,\x20%s',_0x2f7766,_0x72ae('0x23'));_0x285140(_0x4c89a7['result'][_0x72ae('0x28')]);}})['catch'](function(_0x1df515){logger[_0x72ae('0x25')](_0x72ae('0x27'),_0x2f7766,_0x1df515);_0x334d1e(_0x1df515);});});}function respondWithStatusCode(_0x10e09f,_0x2f84a0){_0x2f84a0=_0x2f84a0||0xcc;return function(_0x42e527){if(_0x42e527){return _0x10e09f['sendStatus'](_0x2f84a0);}return _0x10e09f['status'](_0x2f84a0)['end']();};}function respondWithResult(_0xaec6bf,_0x384f48){_0x384f48=_0x384f48||0xc8;return function(_0x1f1618){if(_0x1f1618){return _0xaec6bf[_0x72ae('0x29')](_0x384f48)[_0x72ae('0x2a')](_0x1f1618);}};}function respondWithFilteredResult(_0x4b46ef,_0x49c787){return function(_0x28d1cc){if(_0x28d1cc){var _0x2bd661=_0x28d1cc[_0x72ae('0x2b')],_0x3a1dc1=_0x49c787[_0x72ae('0x2c')],_0x77bcac=_0x49c787[_0x72ae('0x2c')]+_0x49c787[_0x72ae('0x2d')],_0x13209e;if(_0x77bcac>=_0x2bd661){_0x77bcac=_0x2bd661;_0x13209e=0xc8;}else{_0x13209e=0xce;}_0x4b46ef['status'](_0x13209e);return _0x4b46ef[_0x72ae('0x2e')](_0x72ae('0x2f'),_0x3a1dc1+'-'+_0x77bcac+'/'+_0x2bd661)[_0x72ae('0x2a')](_0x28d1cc);}return null;};}function patchUpdates(_0x13d4ac){return function(_0xcd6588){try{jsonpatch['apply'](_0xcd6588,_0x13d4ac,!![]);}catch(_0x33970b){return BPromise['reject'](_0x33970b);}return _0xcd6588[_0x72ae('0x30')]();};}function saveUpdates(_0x30839c,_0x12d264){return function(_0x2fd1dc){if(_0x2fd1dc){return _0x2fd1dc[_0x72ae('0x31')](_0x30839c)[_0x72ae('0x1f')](function(_0x34dc16){return _0x34dc16;});}return null;};}function removeEntity(_0x452347,_0x59a579){return function(_0x4ed637){if(_0x4ed637){return _0x4ed637['destroy']()[_0x72ae('0x1f')](function(){_0x452347['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4d643f,_0x541a66){return function(_0x41bd9d){if(!_0x41bd9d){_0x4d643f['sendStatus'](0x194);}return _0x41bd9d;};}function handleError(_0x221cfe,_0x304033){_0x304033=_0x304033||0x1f4;return function(_0x252946){logger['error'](_0x252946[_0x72ae('0x32')]);if(_0x252946['name']){delete _0x252946['name'];}_0x221cfe['status'](_0x304033)[_0x72ae('0x33')](_0x252946);};}exports[_0x72ae('0x34')]=function(_0x3b8eb5,_0xaf6f6f){var _0x3a75ea={},_0x2a3447={},_0x1f9f01={'count':0x0,'rows':[]};var _0x1d4cd2=_[_0x72ae('0x35')](db[_0x72ae('0x36')][_0x72ae('0x37')],function(_0x257af8){return{'name':_0x257af8['fieldName'],'type':_0x257af8[_0x72ae('0x38')][_0x72ae('0x39')]};});_0x2a3447[_0x72ae('0x3a')]=_[_0x72ae('0x35')](_0x1d4cd2,_0x72ae('0x3b'));_0x2a3447[_0x72ae('0x3c')]=_[_0x72ae('0x3d')](_0x3b8eb5[_0x72ae('0x3c')]);_0x2a3447['filters']=_[_0x72ae('0x3e')](_0x2a3447[_0x72ae('0x3a')],_0x2a3447['query']);_0x3a75ea[_0x72ae('0x3f')]=_[_0x72ae('0x3e')](_0x2a3447[_0x72ae('0x3a')],qs['fields'](_0x3b8eb5[_0x72ae('0x3c')][_0x72ae('0x40')]));_0x3a75ea['attributes']=_0x3a75ea[_0x72ae('0x3f')][_0x72ae('0x41')]?_0x3a75ea[_0x72ae('0x3f')]:_0x2a3447['model'];if(!_0x3b8eb5[_0x72ae('0x3c')][_0x72ae('0x42')]('nolimit')){_0x3a75ea['limit']=qs[_0x72ae('0x2d')](_0x3b8eb5['query'][_0x72ae('0x2d')]);_0x3a75ea[_0x72ae('0x2c')]=qs[_0x72ae('0x2c')](_0x3b8eb5[_0x72ae('0x3c')][_0x72ae('0x2c')]);}_0x3a75ea['order']=qs[_0x72ae('0x43')](_0x3b8eb5[_0x72ae('0x3c')][_0x72ae('0x43')]);_0x3a75ea['where']=qs[_0x72ae('0x44')](_[_0x72ae('0x45')](_0x3b8eb5['query'],_0x2a3447[_0x72ae('0x44')]),_0x1d4cd2);if(_0x3b8eb5[_0x72ae('0x3c')][_0x72ae('0x46')]){_0x3a75ea[_0x72ae('0x47')]=_[_0x72ae('0x48')](_0x3a75ea[_0x72ae('0x47')],{'$or':_[_0x72ae('0x35')](_0x1d4cd2,function(_0x484d59){if(_0x484d59[_0x72ae('0x38')]!==_0x72ae('0x49')){var _0x31508c={};_0x31508c[_0x484d59[_0x72ae('0x3b')]]={'$like':'%'+_0x3b8eb5[_0x72ae('0x3c')][_0x72ae('0x46')]+'%'};return _0x31508c;}})});}_0x3a75ea=_[_0x72ae('0x48')]({},_0x3a75ea,_0x3b8eb5[_0x72ae('0x4a')]);var _0x18bbb9={'where':_0x3a75ea[_0x72ae('0x47')]};return db['Network'][_0x72ae('0x2b')](_0x18bbb9)[_0x72ae('0x1f')](function(_0x34436c){_0x1f9f01[_0x72ae('0x2b')]=_0x34436c;if(_0x3b8eb5[_0x72ae('0x3c')][_0x72ae('0x4b')]){_0x3a75ea[_0x72ae('0x4c')]=[{'all':!![]}];}return db['Network'][_0x72ae('0x4d')](_0x3a75ea);})[_0x72ae('0x1f')](function(_0xa47e50){_0x1f9f01[_0x72ae('0x4e')]=_0xa47e50;return _0x1f9f01;})[_0x72ae('0x1f')](respondWithFilteredResult(_0xaf6f6f,_0x3a75ea))[_0x72ae('0x4f')](handleError(_0xaf6f6f,null));};exports[_0x72ae('0x50')]=function(_0x3c5e95,_0x1d6a02){var _0x426015={'raw':!![],'where':{'id':_0x3c5e95[_0x72ae('0x51')]['id']}},_0x53ddef={};_0x53ddef[_0x72ae('0x3a')]=_[_0x72ae('0x3d')](db[_0x72ae('0x36')][_0x72ae('0x37')]);_0x53ddef[_0x72ae('0x3c')]=_[_0x72ae('0x3d')](_0x3c5e95[_0x72ae('0x3c')]);_0x53ddef[_0x72ae('0x44')]=_[_0x72ae('0x3e')](_0x53ddef[_0x72ae('0x3a')],_0x53ddef[_0x72ae('0x3c')]);_0x426015['attributes']=_[_0x72ae('0x3e')](_0x53ddef['model'],qs['fields'](_0x3c5e95['query'][_0x72ae('0x40')]));_0x426015[_0x72ae('0x3f')]=_0x426015[_0x72ae('0x3f')][_0x72ae('0x41')]?_0x426015['attributes']:_0x53ddef[_0x72ae('0x3a')];if(_0x3c5e95[_0x72ae('0x3c')][_0x72ae('0x4b')]){_0x426015['include']=[{'all':!![]}];}_0x426015=_[_0x72ae('0x48')]({},_0x426015,_0x3c5e95[_0x72ae('0x4a')]);return db[_0x72ae('0x36')][_0x72ae('0x52')](_0x426015)['then'](handleEntityNotFound(_0x1d6a02,null))[_0x72ae('0x1f')](respondWithResult(_0x1d6a02,null))[_0x72ae('0x4f')](handleError(_0x1d6a02,null));};exports['create']=function(_0x739a80,_0x2f866c,_0x58b761){var _0x4a575f;return db[_0x72ae('0x53')][_0x72ae('0x54')](function(_0x4da95c){return db[_0x72ae('0x36')][_0x72ae('0x55')](_0x739a80[_0x72ae('0x56')],{'raw':!![]})[_0x72ae('0x1f')](function(_0x48a23f){_0x4a575f=_0x48a23f;return db['Network'][_0x72ae('0x4d')]({'where':{'type':_0x739a80['body'][_0x72ae('0x38')]},'raw':!![]});})[_0x72ae('0x1f')](function(_0x5e0cb8){if(_0x4a575f[_0x72ae('0x38')][_0x72ae('0x57')]()==_0x72ae('0x58')){var _0x306924=fs[_0x72ae('0x59')](path['join'](config['root'],_0x72ae('0x5a')),_0x72ae('0x5b'));var _0x5e4360=ejs[_0x72ae('0x5c')](_0x306924,{'networks':_0x5e0cb8||[]});fs[_0x72ae('0x5d')](_0x72ae('0x5e'),_0x5e4360);return respondWithRpcPromise(_0x72ae('0x5f'),_0x72ae('0x55'),{'module':_0x72ae('0x60')});}else if(_0x4a575f[_0x72ae('0x38')][_0x72ae('0x57')]()==_0x72ae('0x61')){var _0x261b93=fs[_0x72ae('0x59')](path[_0x72ae('0x62')](config['root'],_0x72ae('0x63')),_0x72ae('0x5b'));var _0x5c4fc4=ejs['render'](_0x261b93,{'networks':_0x5e0cb8||[]});fs['writeFileSync'](_0x72ae('0x64'),_0x5c4fc4);return respondWithRpcPromise(_0x72ae('0x5f'),_0x72ae('0x55'),{'module':_0x72ae('0x60')});}else{var _0x76c642=fs[_0x72ae('0x59')](path[_0x72ae('0x62')](config[_0x72ae('0x65')],_0x72ae('0x66')),'utf8');var _0x47dc77=ejs[_0x72ae('0x5c')](_0x76c642,{'networks':_0x5e0cb8||[]});fs[_0x72ae('0x5d')](util[_0x72ae('0x67')]('/etc/asterisk/sip_xcally_%s.conf',_0x739a80['body'][_0x72ae('0x38')]['toLowerCase']()),_0x47dc77);return respondWithRpcPromise(_0x72ae('0x5f'),'create',{'module':_0x72ae('0x68')});}return null;})[_0x72ae('0x1f')](function(){return _0x4a575f;});})[_0x72ae('0x1f')](respondWithResult(_0x2f866c,0xc9))['catch'](handleError(_0x2f866c,null));};exports['update']=function(_0x2dc6be,_0x16b0ae,_0x20039b){var _0x20b0d9;return db[_0x72ae('0x53')][_0x72ae('0x54')](function(_0x2099e7){return db['Network'][_0x72ae('0x52')]({'where':{'id':_0x2dc6be[_0x72ae('0x51')]['id']}})[_0x72ae('0x1f')](handleEntityNotFound(_0x16b0ae,null))[_0x72ae('0x1f')](saveUpdates(_0x2dc6be[_0x72ae('0x56')],null))[_0x72ae('0x1f')](function(_0x5c8f59){if(_0x5c8f59){_0x20b0d9=_0x5c8f59;return db[_0x72ae('0x36')]['findAll']({'where':{'type':_0x20b0d9[_0x72ae('0x38')]},'raw':!![]});}return null;})[_0x72ae('0x1f')](function(_0x47e3a3){if(_0x20b0d9[_0x72ae('0x38')][_0x72ae('0x57')]()==_0x72ae('0x58')){var _0x461f67=fs['readFileSync'](path[_0x72ae('0x62')](config[_0x72ae('0x65')],_0x72ae('0x5a')),_0x72ae('0x5b'));var _0xd2c169=ejs[_0x72ae('0x5c')](_0x461f67,{'networks':_0x47e3a3||[]});fs['writeFileSync'](_0x72ae('0x5e'),_0xd2c169);return respondWithRpcPromise(_0x72ae('0x5f'),_0x72ae('0x31'),{'module':_0x72ae('0x60')});}else if(_0x20b0d9[_0x72ae('0x38')][_0x72ae('0x57')]()==_0x72ae('0x61')){var _0x442bcc=fs['readFileSync'](path[_0x72ae('0x62')](config[_0x72ae('0x65')],_0x72ae('0x63')),_0x72ae('0x5b'));var _0x53e62d=ejs[_0x72ae('0x5c')](_0x442bcc,{'networks':_0x47e3a3||[]});fs[_0x72ae('0x5d')](_0x72ae('0x64'),_0x53e62d);return respondWithRpcPromise(_0x72ae('0x5f'),_0x72ae('0x31'),{'module':'res_stun_monitor.so'});}else{var _0x5553a3=fs['readFileSync'](path[_0x72ae('0x62')](config[_0x72ae('0x65')],_0x72ae('0x66')),_0x72ae('0x5b'));var _0x5ce2a5=ejs[_0x72ae('0x5c')](_0x5553a3,{'networks':_0x47e3a3||[]});fs[_0x72ae('0x5d')](util['format'](_0x72ae('0x69'),_0x2dc6be[_0x72ae('0x56')]['type'][_0x72ae('0x6a')]()),_0x5ce2a5);return respondWithRpcPromise('Reload',_0x72ae('0x31'),{'module':_0x72ae('0x68')});}return null;})[_0x72ae('0x1f')](function(_0x57d1f2){if(_0x57d1f2){return _0x20b0d9;}return null;});})['then'](respondWithResult(_0x16b0ae,null))[_0x72ae('0x4f')](handleError(_0x16b0ae,null));};exports[_0x72ae('0x6b')]=function(_0x24ca8,_0x393bfe,_0x1b30db){var _0x13f6e9;return db[_0x72ae('0x36')]['find']({'where':{'id':_0x24ca8[_0x72ae('0x51')]['id']}})['then'](function(_0xf4e111){_0x13f6e9=_0xf4e111;return _0xf4e111;})[_0x72ae('0x1f')](handleEntityNotFound(_0x393bfe,null))['then'](removeEntity(_0x393bfe,null))[_0x72ae('0x1f')](function(){if(_0x13f6e9){return db[_0x72ae('0x36')][_0x72ae('0x4d')]({'where':{'type':_0x13f6e9[_0x72ae('0x38')]},'raw':!![]});}})[_0x72ae('0x1f')](function(_0x412631){if(_0x13f6e9['type'][_0x72ae('0x57')]()==_0x72ae('0x58')){var _0x13958b=fs['readFileSync'](path[_0x72ae('0x62')](config[_0x72ae('0x65')],_0x72ae('0x5a')),_0x72ae('0x5b'));var _0x21b1ae=ejs['render'](_0x13958b,{'networks':_0x412631||[]});fs[_0x72ae('0x5d')](_0x72ae('0x5e'),_0x21b1ae);return respondWithRpcPromise('Reload',_0x72ae('0x6b'),{'module':'res_stun_monitor.so'});}else if(_0x13f6e9[_0x72ae('0x38')]['toUpperCase']()==_0x72ae('0x61')){var _0x2a54d2=fs[_0x72ae('0x59')](path[_0x72ae('0x62')](config[_0x72ae('0x65')],_0x72ae('0x63')),_0x72ae('0x5b'));var _0xe13e30=ejs[_0x72ae('0x5c')](_0x2a54d2,{'networks':_0x412631||[]});fs[_0x72ae('0x5d')](_0x72ae('0x64'),_0xe13e30);return respondWithRpcPromise('Reload',_0x72ae('0x6b'),{'module':_0x72ae('0x60')});}else{var _0x3c67c0=fs['readFileSync'](path[_0x72ae('0x62')](config['root'],_0x72ae('0x66')),_0x72ae('0x5b'));var _0x2d143a=ejs[_0x72ae('0x5c')](_0x3c67c0,{'networks':_0x412631||[]});fs[_0x72ae('0x5d')](util[_0x72ae('0x67')](_0x72ae('0x69'),_0x24ca8['body'][_0x72ae('0x38')][_0x72ae('0x6a')]()),_0x2d143a);return respondWithRpcPromise(_0x72ae('0x5f'),_0x72ae('0x6b'),{'module':_0x72ae('0x68')});}return null;})[_0x72ae('0x4f')](handleError(_0x393bfe,null));};