Built motion from commit 936e8062.|2.5.33
[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 _0xbbea=['bluebird','mustache','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','end','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','update','destroy','sendStatus','stack','name','send','index','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','filter','where','options','Network','includeAll','include','findAll','rows','show','params','merge','find','sequelize','transaction','body','STUN','readFileSync','join','root','utf8','render','/etc/asterisk/stun_xcally.conf','Reload','create','res_stun_monitor.so','toUpperCase','TURN','server/files/templates/turn_multiple.ejs','writeFileSync','/etc/asterisk/turn_xcally.conf','format','toLowerCase','chan_sip.so','server/files/templates/stun_multiple.ejs','/etc/asterisk/sip_xcally_%s.conf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x435fdd,_0x311fb5){var _0x9ba46c=function(_0x20c8c){while(--_0x20c8c){_0x435fdd['push'](_0x435fdd['shift']());}};_0x9ba46c(++_0x311fb5);}(_0xbbea,0xda));var _0xabbe=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0xbbea[_0x167cc1];return _0x10bc4b;};'use strict';var emlformat=require(_0xabbe('0x0'));var rimraf=require(_0xabbe('0x1'));var zipdir=require(_0xabbe('0x2'));var jsonpatch=require(_0xabbe('0x3'));var rp=require(_0xabbe('0x4'));var moment=require(_0xabbe('0x5'));var BPromise=require(_0xabbe('0x6'));var Mustache=require(_0xabbe('0x7'));var util=require(_0xabbe('0x8'));var path=require(_0xabbe('0x9'));var sox=require(_0xabbe('0xa'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xabbe('0xb'));var _=require(_0xabbe('0xc'));var squel=require(_0xabbe('0xd'));var crypto=require(_0xabbe('0xe'));var jsforce=require(_0xabbe('0xf'));var deskjs=require(_0xabbe('0x10'));var toCsv=require('to-csv');var querystring=require(_0xabbe('0x11'));var Papa=require(_0xabbe('0x12'));var Redis=require(_0xabbe('0x13'));var authService=require('../../components/auth/service');var qs=require(_0xabbe('0x14'));var as=require(_0xabbe('0x15'));var hardwareService=require(_0xabbe('0x16'));var logger=require(_0xabbe('0x17'))(_0xabbe('0x18'));var utils=require(_0xabbe('0x19'));var config=require(_0xabbe('0x1a'));var licenseUtil=require(_0xabbe('0x1b'));var db=require(_0xabbe('0x1c'))['db'];var jayson=require(_0xabbe('0x1d'));var client=jayson[_0xabbe('0x1e')][_0xabbe('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x5ede9d,_0x598173,_0x4d5efa,_0x5d46a5){return new BPromise(function(_0x12eb2b,_0x32f540){var _0x5de343=_0x5d46a5||client;return _0x5de343[_0xabbe('0x20')](_0x5ede9d,_0x4d5efa)[_0xabbe('0x21')](function(_0x18738b){logger[_0xabbe('0x22')](_0xabbe('0x23'),_0x598173,_0xabbe('0x24'));logger[_0xabbe('0x25')](_0xabbe('0x26'),_0x598173,_0xabbe('0x24'),JSON[_0xabbe('0x27')](_0x18738b));if(_0x18738b['error']){if(_0x18738b[_0xabbe('0x28')]['code']===0x1f4){logger['error'](_0xabbe('0x23'),_0x598173,_0x18738b[_0xabbe('0x28')][_0xabbe('0x29')]);return _0x32f540(_0x18738b[_0xabbe('0x28')][_0xabbe('0x29')]);}logger[_0xabbe('0x28')](_0xabbe('0x23'),_0x598173,_0x18738b[_0xabbe('0x28')]['message']);return _0x12eb2b(_0x18738b[_0xabbe('0x28')]['message']);}else{logger[_0xabbe('0x22')](_0xabbe('0x23'),_0x598173,_0xabbe('0x24'));_0x12eb2b(_0x18738b['result'][_0xabbe('0x29')]);}})[_0xabbe('0x2a')](function(_0x5b3495){logger[_0xabbe('0x28')](_0xabbe('0x23'),_0x598173,_0x5b3495);_0x32f540(_0x5b3495);});});}function respondWithStatusCode(_0x325325,_0x3bc466){_0x3bc466=_0x3bc466||0xcc;return function(_0x11e931){if(_0x11e931){return _0x325325['sendStatus'](_0x3bc466);}return _0x325325['status'](_0x3bc466)[_0xabbe('0x2b')]();};}function respondWithResult(_0x510639,_0x424f0e){_0x424f0e=_0x424f0e||0xc8;return function(_0x4178f8){if(_0x4178f8){return _0x510639[_0xabbe('0x2c')](_0x424f0e)['json'](_0x4178f8);}};}function respondWithFilteredResult(_0x20b04f,_0x37d02d){return function(_0x3e8cd6){if(_0x3e8cd6){var _0x581854=typeof _0x37d02d[_0xabbe('0x2d')]===_0xabbe('0x2e')&&typeof _0x37d02d[_0xabbe('0x2f')]===_0xabbe('0x2e');var _0xcf8b45=_0x3e8cd6[_0xabbe('0x30')];var _0x13fdcc=_0x581854?0x0:_0x37d02d[_0xabbe('0x2d')];var _0x458422=_0x581854?_0x3e8cd6[_0xabbe('0x30')]:_0x37d02d['offset']+_0x37d02d[_0xabbe('0x2f')];var _0x99e5ad;if(_0x458422>=_0xcf8b45){_0x458422=_0xcf8b45;_0x99e5ad=0xc8;}else{_0x99e5ad=0xce;}_0x20b04f[_0xabbe('0x2c')](_0x99e5ad);return _0x20b04f[_0xabbe('0x31')](_0xabbe('0x32'),_0x13fdcc+'-'+_0x458422+'/'+_0xcf8b45)[_0xabbe('0x33')](_0x3e8cd6);}return null;};}function patchUpdates(_0xb2fc3d){return function(_0x1f56e5){try{jsonpatch[_0xabbe('0x34')](_0x1f56e5,_0xb2fc3d,!![]);}catch(_0x5186b3){return BPromise[_0xabbe('0x35')](_0x5186b3);}return _0x1f56e5['save']();};}function saveUpdates(_0x5c1cca,_0x5507e4){return function(_0x1cab0){if(_0x1cab0){return _0x1cab0[_0xabbe('0x36')](_0x5c1cca)[_0xabbe('0x21')](function(_0x2369de){return _0x2369de;});}return null;};}function removeEntity(_0x41b77d,_0x15c331){return function(_0x142981){if(_0x142981){return _0x142981[_0xabbe('0x37')]()['then'](function(){_0x41b77d[_0xabbe('0x2c')](0xcc)[_0xabbe('0x2b')]();});}};}function handleEntityNotFound(_0x57784c,_0x466a05){return function(_0x1c60ce){if(!_0x1c60ce){_0x57784c[_0xabbe('0x38')](0x194);}return _0x1c60ce;};}function handleError(_0x98fd99,_0x4a6f65){_0x4a6f65=_0x4a6f65||0x1f4;return function(_0x334d65){logger[_0xabbe('0x28')](_0x334d65[_0xabbe('0x39')]);if(_0x334d65[_0xabbe('0x3a')]){delete _0x334d65[_0xabbe('0x3a')];}_0x98fd99[_0xabbe('0x2c')](_0x4a6f65)[_0xabbe('0x3b')](_0x334d65);};}exports[_0xabbe('0x3c')]=function(_0x423f61,_0x177993){var _0x33997e={},_0x7fa8a9={},_0xeee855={'count':0x0,'rows':[]};var _0x2bee83=_['map'](db['Network'][_0xabbe('0x3d')],function(_0x4ed640){return{'name':_0x4ed640[_0xabbe('0x3e')],'type':_0x4ed640[_0xabbe('0x3f')][_0xabbe('0x40')]};});_0x7fa8a9[_0xabbe('0x41')]=_[_0xabbe('0x42')](_0x2bee83,_0xabbe('0x3a'));_0x7fa8a9[_0xabbe('0x43')]=_[_0xabbe('0x44')](_0x423f61[_0xabbe('0x43')]);_0x7fa8a9[_0xabbe('0x45')]=_['intersection'](_0x7fa8a9['model'],_0x7fa8a9[_0xabbe('0x43')]);_0x33997e['attributes']=_[_0xabbe('0x46')](_0x7fa8a9[_0xabbe('0x41')],qs['fields'](_0x423f61[_0xabbe('0x43')][_0xabbe('0x47')]));_0x33997e[_0xabbe('0x48')]=_0x33997e[_0xabbe('0x48')][_0xabbe('0x49')]?_0x33997e['attributes']:_0x7fa8a9['model'];if(!_0x423f61['query']['hasOwnProperty'](_0xabbe('0x4a'))){_0x33997e['limit']=qs[_0xabbe('0x2f')](_0x423f61[_0xabbe('0x43')][_0xabbe('0x2f')]);_0x33997e['offset']=qs[_0xabbe('0x2d')](_0x423f61[_0xabbe('0x43')][_0xabbe('0x2d')]);}_0x33997e[_0xabbe('0x4b')]=qs[_0xabbe('0x4c')](_0x423f61[_0xabbe('0x43')][_0xabbe('0x4c')]);_0x33997e['where']=qs['filters'](_['pick'](_0x423f61['query'],_0x7fa8a9['filters']),_0x2bee83);if(_0x423f61[_0xabbe('0x43')][_0xabbe('0x4d')]){_0x33997e[_0xabbe('0x4e')]=_['merge'](_0x33997e['where'],{'$or':_['map'](_0x2bee83,function(_0x48dba9){if(_0x48dba9['type']!=='VIRTUAL'){var _0x580da4={};_0x580da4[_0x48dba9[_0xabbe('0x3a')]]={'$like':'%'+_0x423f61[_0xabbe('0x43')]['filter']+'%'};return _0x580da4;}})});}_0x33997e=_['merge']({},_0x33997e,_0x423f61[_0xabbe('0x4f')]);var _0xc630ff={'where':_0x33997e[_0xabbe('0x4e')]};return db[_0xabbe('0x50')][_0xabbe('0x30')](_0xc630ff)[_0xabbe('0x21')](function(_0x569ca5){_0xeee855[_0xabbe('0x30')]=_0x569ca5;if(_0x423f61[_0xabbe('0x43')][_0xabbe('0x51')]){_0x33997e[_0xabbe('0x52')]=[{'all':!![]}];}return db[_0xabbe('0x50')][_0xabbe('0x53')](_0x33997e);})[_0xabbe('0x21')](function(_0x415656){_0xeee855[_0xabbe('0x54')]=_0x415656;return _0xeee855;})[_0xabbe('0x21')](respondWithFilteredResult(_0x177993,_0x33997e))[_0xabbe('0x2a')](handleError(_0x177993,null));};exports[_0xabbe('0x55')]=function(_0x4bf1b6,_0x43488e){var _0x5812c1={'raw':!![],'where':{'id':_0x4bf1b6[_0xabbe('0x56')]['id']}},_0x238bc6={};_0x238bc6[_0xabbe('0x41')]=_[_0xabbe('0x44')](db[_0xabbe('0x50')][_0xabbe('0x3d')]);_0x238bc6[_0xabbe('0x43')]=_['keys'](_0x4bf1b6[_0xabbe('0x43')]);_0x238bc6[_0xabbe('0x45')]=_['intersection'](_0x238bc6[_0xabbe('0x41')],_0x238bc6[_0xabbe('0x43')]);_0x5812c1[_0xabbe('0x48')]=_['intersection'](_0x238bc6[_0xabbe('0x41')],qs[_0xabbe('0x47')](_0x4bf1b6[_0xabbe('0x43')][_0xabbe('0x47')]));_0x5812c1[_0xabbe('0x48')]=_0x5812c1[_0xabbe('0x48')][_0xabbe('0x49')]?_0x5812c1['attributes']:_0x238bc6[_0xabbe('0x41')];if(_0x4bf1b6[_0xabbe('0x43')]['includeAll']){_0x5812c1[_0xabbe('0x52')]=[{'all':!![]}];}_0x5812c1=_[_0xabbe('0x57')]({},_0x5812c1,_0x4bf1b6[_0xabbe('0x4f')]);return db['Network'][_0xabbe('0x58')](_0x5812c1)[_0xabbe('0x21')](handleEntityNotFound(_0x43488e,null))[_0xabbe('0x21')](respondWithResult(_0x43488e,null))[_0xabbe('0x2a')](handleError(_0x43488e,null));};exports['create']=function(_0x156274,_0xa06977,_0x25377c){var _0x541f33;return db[_0xabbe('0x59')][_0xabbe('0x5a')](function(_0x43522d){return db[_0xabbe('0x50')]['create'](_0x156274['body'],{'raw':!![]})[_0xabbe('0x21')](function(_0x4efb97){_0x541f33=_0x4efb97;return db['Network'][_0xabbe('0x53')]({'where':{'type':_0x156274[_0xabbe('0x5b')]['type']},'raw':!![]});})[_0xabbe('0x21')](function(_0x50b8b0){if(_0x541f33[_0xabbe('0x3f')]['toUpperCase']()==_0xabbe('0x5c')){var _0x30c107=fs[_0xabbe('0x5d')](path[_0xabbe('0x5e')](config[_0xabbe('0x5f')],'server/files/templates/stun_multiple.ejs'),_0xabbe('0x60'));var _0x5b5b72=ejs[_0xabbe('0x61')](_0x30c107,{'networks':_0x50b8b0||[]});fs['writeFileSync'](_0xabbe('0x62'),_0x5b5b72);return respondWithRpcPromise(_0xabbe('0x63'),_0xabbe('0x64'),{'module':_0xabbe('0x65')});}else if(_0x541f33[_0xabbe('0x3f')][_0xabbe('0x66')]()==_0xabbe('0x67')){var _0x318574=fs['readFileSync'](path[_0xabbe('0x5e')](config[_0xabbe('0x5f')],_0xabbe('0x68')),_0xabbe('0x60'));var _0x1094d3=ejs[_0xabbe('0x61')](_0x318574,{'networks':_0x50b8b0||[]});fs[_0xabbe('0x69')](_0xabbe('0x6a'),_0x1094d3);return respondWithRpcPromise(_0xabbe('0x63'),_0xabbe('0x64'),{'module':_0xabbe('0x65')});}else{var _0x4fac17=fs[_0xabbe('0x5d')](path['join'](config['root'],'server/files/templates/network.ejs'),_0xabbe('0x60'));var _0x5db09b=ejs[_0xabbe('0x61')](_0x4fac17,{'networks':_0x50b8b0||[]});fs[_0xabbe('0x69')](util[_0xabbe('0x6b')]('/etc/asterisk/sip_xcally_%s.conf',_0x156274['body'][_0xabbe('0x3f')][_0xabbe('0x6c')]()),_0x5db09b);return respondWithRpcPromise(_0xabbe('0x63'),_0xabbe('0x64'),{'module':_0xabbe('0x6d')});}return null;})[_0xabbe('0x21')](function(){return _0x541f33;});})[_0xabbe('0x21')](respondWithResult(_0xa06977,0xc9))[_0xabbe('0x2a')](handleError(_0xa06977,null));};exports[_0xabbe('0x36')]=function(_0x32cd60,_0x3e8149,_0x1ccfd9){var _0x192159;return db[_0xabbe('0x59')][_0xabbe('0x5a')](function(_0x1e17e2){return db[_0xabbe('0x50')]['find']({'where':{'id':_0x32cd60[_0xabbe('0x56')]['id']}})[_0xabbe('0x21')](handleEntityNotFound(_0x3e8149,null))[_0xabbe('0x21')](saveUpdates(_0x32cd60['body'],null))['then'](function(_0x50756e){if(_0x50756e){_0x192159=_0x50756e;return db[_0xabbe('0x50')]['findAll']({'where':{'type':_0x192159[_0xabbe('0x3f')]},'raw':!![]});}return null;})['then'](function(_0x554cf7){if(_0x192159[_0xabbe('0x3f')]['toUpperCase']()==_0xabbe('0x5c')){var _0x1b7b10=fs[_0xabbe('0x5d')](path[_0xabbe('0x5e')](config[_0xabbe('0x5f')],_0xabbe('0x6e')),_0xabbe('0x60'));var _0x216f9a=ejs[_0xabbe('0x61')](_0x1b7b10,{'networks':_0x554cf7||[]});fs[_0xabbe('0x69')]('/etc/asterisk/stun_xcally.conf',_0x216f9a);return respondWithRpcPromise(_0xabbe('0x63'),_0xabbe('0x36'),{'module':_0xabbe('0x65')});}else if(_0x192159['type']['toUpperCase']()=='TURN'){var _0x261604=fs[_0xabbe('0x5d')](path[_0xabbe('0x5e')](config[_0xabbe('0x5f')],'server/files/templates/turn_multiple.ejs'),_0xabbe('0x60'));var _0x2152bf=ejs['render'](_0x261604,{'networks':_0x554cf7||[]});fs[_0xabbe('0x69')](_0xabbe('0x6a'),_0x2152bf);return respondWithRpcPromise(_0xabbe('0x63'),_0xabbe('0x36'),{'module':_0xabbe('0x65')});}else{var _0x6ebc94=fs['readFileSync'](path[_0xabbe('0x5e')](config[_0xabbe('0x5f')],'server/files/templates/network.ejs'),_0xabbe('0x60'));var _0x5b0b94=ejs[_0xabbe('0x61')](_0x6ebc94,{'networks':_0x554cf7||[]});fs[_0xabbe('0x69')](util[_0xabbe('0x6b')](_0xabbe('0x6f'),_0x32cd60[_0xabbe('0x5b')][_0xabbe('0x3f')][_0xabbe('0x6c')]()),_0x5b0b94);return respondWithRpcPromise(_0xabbe('0x63'),'update',{'module':_0xabbe('0x6d')});}return null;})[_0xabbe('0x21')](function(_0x32ff08){if(_0x32ff08){return _0x192159;}return null;});})['then'](respondWithResult(_0x3e8149,null))[_0xabbe('0x2a')](handleError(_0x3e8149,null));};exports[_0xabbe('0x37')]=function(_0x36d034,_0x5f11be,_0x5ae1d9){var _0x5a20b2;return db[_0xabbe('0x50')][_0xabbe('0x58')]({'where':{'id':_0x36d034[_0xabbe('0x56')]['id']}})[_0xabbe('0x21')](function(_0x733256){_0x5a20b2=_0x733256;return _0x733256;})[_0xabbe('0x21')](handleEntityNotFound(_0x5f11be,null))[_0xabbe('0x21')](removeEntity(_0x5f11be,null))[_0xabbe('0x21')](function(){if(_0x5a20b2){return db['Network'][_0xabbe('0x53')]({'where':{'type':_0x5a20b2[_0xabbe('0x3f')]},'raw':!![]});}})[_0xabbe('0x21')](function(_0x46e6d7){if(_0x5a20b2[_0xabbe('0x3f')][_0xabbe('0x66')]()==_0xabbe('0x5c')){var _0x1430bf=fs[_0xabbe('0x5d')](path[_0xabbe('0x5e')](config[_0xabbe('0x5f')],'server/files/templates/stun_multiple.ejs'),_0xabbe('0x60'));var _0x33026f=ejs[_0xabbe('0x61')](_0x1430bf,{'networks':_0x46e6d7||[]});fs[_0xabbe('0x69')](_0xabbe('0x62'),_0x33026f);return respondWithRpcPromise('Reload',_0xabbe('0x37'),{'module':_0xabbe('0x65')});}else if(_0x5a20b2[_0xabbe('0x3f')]['toUpperCase']()=='TURN'){var _0x1f6eb3=fs[_0xabbe('0x5d')](path[_0xabbe('0x5e')](config[_0xabbe('0x5f')],_0xabbe('0x68')),_0xabbe('0x60'));var _0x2c1ea3=ejs[_0xabbe('0x61')](_0x1f6eb3,{'networks':_0x46e6d7||[]});fs['writeFileSync'](_0xabbe('0x6a'),_0x2c1ea3);return respondWithRpcPromise(_0xabbe('0x63'),'destroy',{'module':_0xabbe('0x65')});}else{var _0xe404a4=fs[_0xabbe('0x5d')](path[_0xabbe('0x5e')](config[_0xabbe('0x5f')],'server/files/templates/network.ejs'),'utf8');var _0xcebb62=ejs['render'](_0xe404a4,{'networks':_0x46e6d7||[]});fs['writeFileSync'](util[_0xabbe('0x6b')](_0xabbe('0x6f'),_0x36d034[_0xabbe('0x5b')][_0xabbe('0x3f')][_0xabbe('0x6c')]()),_0xcebb62);return respondWithRpcPromise(_0xabbe('0x63'),'destroy',{'module':_0xabbe('0x6d')});}return null;})[_0xabbe('0x2a')](handleError(_0x5f11be,null));};