Built motion from commit (unavailable).|2.5.12
[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 _0x6a67=['root','utf8','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','server/files/templates/turn_multiple.ejs','render','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','update','transaction','server/files/templates/stun_multiple.ejs','destroy','format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/util','jayson/promise','client','then','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','Network,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','count','offset','limit','Content-Range','json','apply','reject','save','stack','name','index','map','Network','rawAttributes','fieldName','type','key','model','query','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','options','includeAll','include','findAll','show','params','length','find','create','sequelize','body','toUpperCase','STUN','readFileSync','join'];(function(_0x5d679e,_0x2569ff){var _0x50c826=function(_0x343b15){while(--_0x343b15){_0x5d679e['push'](_0x5d679e['shift']());}};_0x50c826(++_0x2569ff);}(_0x6a67,0x78));var _0x76a6=function(_0xbb36a0,_0x1cb1e4){_0xbb36a0=_0xbb36a0-0x0;var _0x306db2=_0x6a67[_0xbb36a0];return _0x306db2;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x76a6('0x0'));var jsonpatch=require(_0x76a6('0x1'));var rp=require(_0x76a6('0x2'));var moment=require(_0x76a6('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x76a6('0x4'));var util=require(_0x76a6('0x5'));var path=require(_0x76a6('0x6'));var sox=require(_0x76a6('0x7'));var csv=require(_0x76a6('0x8'));var ejs=require(_0x76a6('0x9'));var fs=require('fs');var _=require(_0x76a6('0xa'));var squel=require('squel');var crypto=require(_0x76a6('0xb'));var jsforce=require(_0x76a6('0xc'));var deskjs=require(_0x76a6('0xd'));var toCsv=require(_0x76a6('0x8'));var querystring=require(_0x76a6('0xe'));var Papa=require(_0x76a6('0xf'));var Redis=require(_0x76a6('0x10'));var authService=require(_0x76a6('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x76a6('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x76a6('0x13'));var db=require('../../mysqldb')['db'];var jayson=require(_0x76a6('0x14'));var client=jayson[_0x76a6('0x15')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3f338a,_0x3f300d,_0x3f1552,_0x5a838c){return new BPromise(function(_0x453570,_0x2ecb5e){var _0x3a72c2=_0x5a838c||client;return _0x3a72c2['request'](_0x3f338a,_0x3f1552)[_0x76a6('0x16')](function(_0xb2a9c3){logger['info']('Network,\x20%s,\x20%s',_0x3f300d,_0x76a6('0x17'));logger[_0x76a6('0x18')](_0x76a6('0x19'),_0x3f300d,_0x76a6('0x17'),JSON[_0x76a6('0x1a')](_0xb2a9c3));if(_0xb2a9c3[_0x76a6('0x1b')]){if(_0xb2a9c3[_0x76a6('0x1b')][_0x76a6('0x1c')]===0x1f4){logger[_0x76a6('0x1b')](_0x76a6('0x1d'),_0x3f300d,_0xb2a9c3[_0x76a6('0x1b')]['message']);return _0x2ecb5e(_0xb2a9c3[_0x76a6('0x1b')][_0x76a6('0x1e')]);}logger['error'](_0x76a6('0x1d'),_0x3f300d,_0xb2a9c3[_0x76a6('0x1b')][_0x76a6('0x1e')]);return _0x453570(_0xb2a9c3['error'][_0x76a6('0x1e')]);}else{logger['info']('Network,\x20%s,\x20%s',_0x3f300d,_0x76a6('0x17'));_0x453570(_0xb2a9c3[_0x76a6('0x1f')][_0x76a6('0x1e')]);}})[_0x76a6('0x20')](function(_0x1c5be9){logger[_0x76a6('0x1b')]('Network,\x20%s,\x20%s',_0x3f300d,_0x1c5be9);_0x2ecb5e(_0x1c5be9);});});}function respondWithStatusCode(_0x30fa90,_0x3cfedf){_0x3cfedf=_0x3cfedf||0xcc;return function(_0x1f633a){if(_0x1f633a){return _0x30fa90[_0x76a6('0x21')](_0x3cfedf);}return _0x30fa90[_0x76a6('0x22')](_0x3cfedf)[_0x76a6('0x23')]();};}function respondWithResult(_0x1e45da,_0x44d457){_0x44d457=_0x44d457||0xc8;return function(_0x4799d9){if(_0x4799d9){return _0x1e45da[_0x76a6('0x22')](_0x44d457)['json'](_0x4799d9);}};}function respondWithFilteredResult(_0x2e8001,_0x3e272e){return function(_0x5462e1){if(_0x5462e1){var _0x39dfc5=_0x5462e1[_0x76a6('0x24')],_0x6e99bb=_0x3e272e[_0x76a6('0x25')],_0x21d709=_0x3e272e[_0x76a6('0x25')]+_0x3e272e[_0x76a6('0x26')],_0x40cb1e;if(_0x21d709>=_0x39dfc5){_0x21d709=_0x39dfc5;_0x40cb1e=0xc8;}else{_0x40cb1e=0xce;}_0x2e8001[_0x76a6('0x22')](_0x40cb1e);return _0x2e8001['set'](_0x76a6('0x27'),_0x6e99bb+'-'+_0x21d709+'/'+_0x39dfc5)[_0x76a6('0x28')](_0x5462e1);}return null;};}function patchUpdates(_0x569e36){return function(_0x324466){try{jsonpatch[_0x76a6('0x29')](_0x324466,_0x569e36,!![]);}catch(_0x11a0fa){return BPromise[_0x76a6('0x2a')](_0x11a0fa);}return _0x324466[_0x76a6('0x2b')]();};}function saveUpdates(_0xa1254b,_0x7e3f3b){return function(_0x3a288b){if(_0x3a288b){return _0x3a288b['update'](_0xa1254b)['then'](function(_0x31f494){return _0x31f494;});}return null;};}function removeEntity(_0x455682,_0x3a9140){return function(_0x599d90){if(_0x599d90){return _0x599d90['destroy']()['then'](function(){_0x455682['status'](0xcc)[_0x76a6('0x23')]();});}};}function handleEntityNotFound(_0x5f5869,_0x25aac9){return function(_0x27e551){if(!_0x27e551){_0x5f5869[_0x76a6('0x21')](0x194);}return _0x27e551;};}function handleError(_0x55b3d3,_0x288790){_0x288790=_0x288790||0x1f4;return function(_0x1a921a){logger[_0x76a6('0x1b')](_0x1a921a[_0x76a6('0x2c')]);if(_0x1a921a[_0x76a6('0x2d')]){delete _0x1a921a[_0x76a6('0x2d')];}_0x55b3d3[_0x76a6('0x22')](_0x288790)['send'](_0x1a921a);};}exports[_0x76a6('0x2e')]=function(_0x9dc9ce,_0x33da0b){var _0x204609={},_0xcce1a3={},_0x4c3d7e={'count':0x0,'rows':[]};var _0x2b846f=_[_0x76a6('0x2f')](db[_0x76a6('0x30')][_0x76a6('0x31')],function(_0x58ea28){return{'name':_0x58ea28[_0x76a6('0x32')],'type':_0x58ea28[_0x76a6('0x33')][_0x76a6('0x34')]};});_0xcce1a3[_0x76a6('0x35')]=_['map'](_0x2b846f,_0x76a6('0x2d'));_0xcce1a3['query']=_['keys'](_0x9dc9ce[_0x76a6('0x36')]);_0xcce1a3['filters']=_['intersection'](_0xcce1a3['model'],_0xcce1a3[_0x76a6('0x36')]);_0x204609[_0x76a6('0x37')]=_[_0x76a6('0x38')](_0xcce1a3[_0x76a6('0x35')],qs['fields'](_0x9dc9ce[_0x76a6('0x36')][_0x76a6('0x39')]));_0x204609[_0x76a6('0x37')]=_0x204609['attributes']['length']?_0x204609[_0x76a6('0x37')]:_0xcce1a3[_0x76a6('0x35')];if(!_0x9dc9ce[_0x76a6('0x36')][_0x76a6('0x3a')](_0x76a6('0x3b'))){_0x204609[_0x76a6('0x26')]=qs[_0x76a6('0x26')](_0x9dc9ce[_0x76a6('0x36')][_0x76a6('0x26')]);_0x204609[_0x76a6('0x25')]=qs['offset'](_0x9dc9ce[_0x76a6('0x36')][_0x76a6('0x25')]);}_0x204609[_0x76a6('0x3c')]=qs[_0x76a6('0x3d')](_0x9dc9ce[_0x76a6('0x36')][_0x76a6('0x3d')]);_0x204609[_0x76a6('0x3e')]=qs[_0x76a6('0x3f')](_[_0x76a6('0x40')](_0x9dc9ce['query'],_0xcce1a3[_0x76a6('0x3f')]),_0x2b846f);if(_0x9dc9ce[_0x76a6('0x36')][_0x76a6('0x41')]){_0x204609[_0x76a6('0x3e')]=_['merge'](_0x204609[_0x76a6('0x3e')],{'$or':_[_0x76a6('0x2f')](_0x2b846f,function(_0x48d391){if(_0x48d391['type']!=='VIRTUAL'){var _0x203480={};_0x203480[_0x48d391[_0x76a6('0x2d')]]={'$like':'%'+_0x9dc9ce[_0x76a6('0x36')][_0x76a6('0x41')]+'%'};return _0x203480;}})});}_0x204609=_[_0x76a6('0x42')]({},_0x204609,_0x9dc9ce[_0x76a6('0x43')]);var _0x145b4a={'where':_0x204609[_0x76a6('0x3e')]};return db[_0x76a6('0x30')]['count'](_0x145b4a)[_0x76a6('0x16')](function(_0x2514b3){_0x4c3d7e[_0x76a6('0x24')]=_0x2514b3;if(_0x9dc9ce[_0x76a6('0x36')][_0x76a6('0x44')]){_0x204609[_0x76a6('0x45')]=[{'all':!![]}];}return db[_0x76a6('0x30')][_0x76a6('0x46')](_0x204609);})[_0x76a6('0x16')](function(_0x587060){_0x4c3d7e['rows']=_0x587060;return _0x4c3d7e;})[_0x76a6('0x16')](respondWithFilteredResult(_0x33da0b,_0x204609))[_0x76a6('0x20')](handleError(_0x33da0b,null));};exports[_0x76a6('0x47')]=function(_0x53bf1e,_0x36bd48){var _0x397b04={'raw':!![],'where':{'id':_0x53bf1e[_0x76a6('0x48')]['id']}},_0x5b3f71={};_0x5b3f71[_0x76a6('0x35')]=_['keys'](db[_0x76a6('0x30')][_0x76a6('0x31')]);_0x5b3f71[_0x76a6('0x36')]=_['keys'](_0x53bf1e[_0x76a6('0x36')]);_0x5b3f71[_0x76a6('0x3f')]=_[_0x76a6('0x38')](_0x5b3f71['model'],_0x5b3f71[_0x76a6('0x36')]);_0x397b04[_0x76a6('0x37')]=_['intersection'](_0x5b3f71[_0x76a6('0x35')],qs[_0x76a6('0x39')](_0x53bf1e['query'][_0x76a6('0x39')]));_0x397b04[_0x76a6('0x37')]=_0x397b04[_0x76a6('0x37')][_0x76a6('0x49')]?_0x397b04[_0x76a6('0x37')]:_0x5b3f71[_0x76a6('0x35')];if(_0x53bf1e[_0x76a6('0x36')][_0x76a6('0x44')]){_0x397b04['include']=[{'all':!![]}];}_0x397b04=_[_0x76a6('0x42')]({},_0x397b04,_0x53bf1e[_0x76a6('0x43')]);return db[_0x76a6('0x30')][_0x76a6('0x4a')](_0x397b04)[_0x76a6('0x16')](handleEntityNotFound(_0x36bd48,null))['then'](respondWithResult(_0x36bd48,null))[_0x76a6('0x20')](handleError(_0x36bd48,null));};exports[_0x76a6('0x4b')]=function(_0x3e70b7,_0x13e9de,_0x45880a){var _0x290fa1;return db[_0x76a6('0x4c')]['transaction'](function(_0x3f69b9){return db[_0x76a6('0x30')][_0x76a6('0x4b')](_0x3e70b7[_0x76a6('0x4d')],{'raw':!![]})[_0x76a6('0x16')](function(_0x3217c1){_0x290fa1=_0x3217c1;return db[_0x76a6('0x30')]['findAll']({'where':{'type':_0x3e70b7[_0x76a6('0x4d')][_0x76a6('0x33')]},'raw':!![]});})[_0x76a6('0x16')](function(_0x21cb24){if(_0x290fa1['type'][_0x76a6('0x4e')]()==_0x76a6('0x4f')){var _0x573b04=fs[_0x76a6('0x50')](path[_0x76a6('0x51')](config[_0x76a6('0x52')],'server/files/templates/stun_multiple.ejs'),_0x76a6('0x53'));var _0x1e5e50=ejs['render'](_0x573b04,{'networks':_0x21cb24||[]});fs[_0x76a6('0x54')](_0x76a6('0x55'),_0x1e5e50);return respondWithRpcPromise(_0x76a6('0x56'),_0x76a6('0x4b'),{'module':_0x76a6('0x57')});}else if(_0x290fa1['type'][_0x76a6('0x4e')]()==_0x76a6('0x58')){var _0x5cc7e6=fs[_0x76a6('0x50')](path[_0x76a6('0x51')](config[_0x76a6('0x52')],_0x76a6('0x59')),_0x76a6('0x53'));var _0x3f8e3e=ejs[_0x76a6('0x5a')](_0x5cc7e6,{'networks':_0x21cb24||[]});fs[_0x76a6('0x54')](_0x76a6('0x5b'),_0x3f8e3e);return respondWithRpcPromise(_0x76a6('0x56'),_0x76a6('0x4b'),{'module':'res_stun_monitor.so'});}else{var _0x54f80c=fs[_0x76a6('0x50')](path[_0x76a6('0x51')](config[_0x76a6('0x52')],_0x76a6('0x5c')),_0x76a6('0x53'));var _0x3338bd=ejs[_0x76a6('0x5a')](_0x54f80c,{'networks':_0x21cb24||[]});fs[_0x76a6('0x54')](util['format'](_0x76a6('0x5d'),_0x3e70b7[_0x76a6('0x4d')][_0x76a6('0x33')][_0x76a6('0x5e')]()),_0x3338bd);return respondWithRpcPromise(_0x76a6('0x56'),_0x76a6('0x4b'),{'module':_0x76a6('0x5f')});}return null;})[_0x76a6('0x16')](function(){return _0x290fa1;});})[_0x76a6('0x16')](respondWithResult(_0x13e9de,0xc9))['catch'](handleError(_0x13e9de,null));};exports[_0x76a6('0x60')]=function(_0xc34b20,_0x3356f3,_0x5dff01){var _0x4c3b41;return db[_0x76a6('0x4c')][_0x76a6('0x61')](function(_0x1861c2){return db[_0x76a6('0x30')][_0x76a6('0x4a')]({'where':{'id':_0xc34b20[_0x76a6('0x48')]['id']}})[_0x76a6('0x16')](handleEntityNotFound(_0x3356f3,null))[_0x76a6('0x16')](saveUpdates(_0xc34b20[_0x76a6('0x4d')],null))[_0x76a6('0x16')](function(_0x1974f7){if(_0x1974f7){_0x4c3b41=_0x1974f7;return db[_0x76a6('0x30')][_0x76a6('0x46')]({'where':{'type':_0x4c3b41[_0x76a6('0x33')]},'raw':!![]});}return null;})['then'](function(_0x179354){if(_0x4c3b41['type'][_0x76a6('0x4e')]()==_0x76a6('0x4f')){var _0xabc3df=fs[_0x76a6('0x50')](path[_0x76a6('0x51')](config[_0x76a6('0x52')],_0x76a6('0x62')),_0x76a6('0x53'));var _0x322a09=ejs['render'](_0xabc3df,{'networks':_0x179354||[]});fs[_0x76a6('0x54')](_0x76a6('0x55'),_0x322a09);return respondWithRpcPromise('Reload','update',{'module':_0x76a6('0x57')});}else if(_0x4c3b41[_0x76a6('0x33')][_0x76a6('0x4e')]()==_0x76a6('0x58')){var _0x25226d=fs[_0x76a6('0x50')](path[_0x76a6('0x51')](config[_0x76a6('0x52')],'server/files/templates/turn_multiple.ejs'),_0x76a6('0x53'));var _0x54701e=ejs[_0x76a6('0x5a')](_0x25226d,{'networks':_0x179354||[]});fs[_0x76a6('0x54')]('/etc/asterisk/turn_xcally.conf',_0x54701e);return respondWithRpcPromise(_0x76a6('0x56'),'update',{'module':_0x76a6('0x57')});}else{var _0x1cdcf1=fs['readFileSync'](path[_0x76a6('0x51')](config[_0x76a6('0x52')],'server/files/templates/network.ejs'),_0x76a6('0x53'));var _0x13f238=ejs[_0x76a6('0x5a')](_0x1cdcf1,{'networks':_0x179354||[]});fs[_0x76a6('0x54')](util['format'](_0x76a6('0x5d'),_0xc34b20[_0x76a6('0x4d')]['type'][_0x76a6('0x5e')]()),_0x13f238);return respondWithRpcPromise(_0x76a6('0x56'),_0x76a6('0x60'),{'module':_0x76a6('0x5f')});}return null;})['then'](function(_0x5edd16){if(_0x5edd16){return _0x4c3b41;}return null;});})[_0x76a6('0x16')](respondWithResult(_0x3356f3,null))['catch'](handleError(_0x3356f3,null));};exports[_0x76a6('0x63')]=function(_0x4e6568,_0x4f3072,_0x4da819){var _0x1bf196;return db[_0x76a6('0x30')]['find']({'where':{'id':_0x4e6568[_0x76a6('0x48')]['id']}})[_0x76a6('0x16')](function(_0x2052f5){_0x1bf196=_0x2052f5;return _0x2052f5;})[_0x76a6('0x16')](handleEntityNotFound(_0x4f3072,null))[_0x76a6('0x16')](removeEntity(_0x4f3072,null))[_0x76a6('0x16')](function(){if(_0x1bf196){return db[_0x76a6('0x30')][_0x76a6('0x46')]({'where':{'type':_0x1bf196[_0x76a6('0x33')]},'raw':!![]});}})[_0x76a6('0x16')](function(_0x46e7b1){if(_0x1bf196[_0x76a6('0x33')][_0x76a6('0x4e')]()==_0x76a6('0x4f')){var _0x3f5a8b=fs['readFileSync'](path[_0x76a6('0x51')](config[_0x76a6('0x52')],_0x76a6('0x62')),'utf8');var _0x8e4246=ejs[_0x76a6('0x5a')](_0x3f5a8b,{'networks':_0x46e7b1||[]});fs[_0x76a6('0x54')](_0x76a6('0x55'),_0x8e4246);return respondWithRpcPromise('Reload',_0x76a6('0x63'),{'module':_0x76a6('0x57')});}else if(_0x1bf196['type'][_0x76a6('0x4e')]()=='TURN'){var _0x61b089=fs['readFileSync'](path[_0x76a6('0x51')](config[_0x76a6('0x52')],_0x76a6('0x59')),_0x76a6('0x53'));var _0x4156c3=ejs['render'](_0x61b089,{'networks':_0x46e7b1||[]});fs[_0x76a6('0x54')](_0x76a6('0x5b'),_0x4156c3);return respondWithRpcPromise(_0x76a6('0x56'),'destroy',{'module':_0x76a6('0x57')});}else{var _0xc3b443=fs['readFileSync'](path['join'](config['root'],_0x76a6('0x5c')),_0x76a6('0x53'));var _0xf57fe7=ejs[_0x76a6('0x5a')](_0xc3b443,{'networks':_0x46e7b1||[]});fs[_0x76a6('0x54')](util[_0x76a6('0x64')](_0x76a6('0x5d'),_0x4e6568[_0x76a6('0x4d')]['type'][_0x76a6('0x5e')]()),_0xf57fe7);return respondWithRpcPromise(_0x76a6('0x56'),_0x76a6('0x63'),{'module':_0x76a6('0x5f')});}return null;})[_0x76a6('0x20')](handleError(_0x4f3072,null));};