Built motion from commit (unavailable).|2.5.23
[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 _0x9901=['order','where','merge','VIRTUAL','filter','include','findAll','rows','show','params','keys','rawAttributes','includeAll','options','find','create','sequelize','body','toUpperCase','STUN','readFileSync','join','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','TURN','root','server/files/templates/turn_multiple.ejs','server/files/templates/network.ejs','/etc/asterisk/sip_xcally_%s.conf','chan_sip.so','transaction','/etc/asterisk/turn_xcally.conf','destroy','server/files/templates/stun_multiple.ejs','format','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','sox','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','jayson/promise','client','http','request','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','save','update','name','send','map','Network','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit'];(function(_0x1ee0b9,_0x3cddc7){var _0x122c0d=function(_0x374b17){while(--_0x374b17){_0x1ee0b9['push'](_0x1ee0b9['shift']());}};_0x122c0d(++_0x3cddc7);}(_0x9901,0x1bf));var _0x1990=function(_0x1c2aeb,_0x48433c){_0x1c2aeb=_0x1c2aeb-0x0;var _0x783379=_0x9901[_0x1c2aeb];return _0x783379;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x1990('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1990('0x1'));var jsonpatch=require(_0x1990('0x2'));var rp=require(_0x1990('0x3'));var moment=require(_0x1990('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x1990('0x5'));var util=require('util');var path=require('path');var sox=require(_0x1990('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x1990('0x7'));var squel=require(_0x1990('0x8'));var crypto=require(_0x1990('0x9'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x1990('0xa'));var Papa=require(_0x1990('0xb'));var Redis=require(_0x1990('0xc'));var authService=require('../../components/auth/service');var qs=require(_0x1990('0xd'));var as=require(_0x1990('0xe'));var hardwareService=require(_0x1990('0xf'));var logger=require(_0x1990('0x10'))(_0x1990('0x11'));var utils=require(_0x1990('0x12'));var config=require(_0x1990('0x13'));var licenseUtil=require(_0x1990('0x14'));var db=require('../../mysqldb')['db'];var jayson=require(_0x1990('0x15'));var client=jayson[_0x1990('0x16')][_0x1990('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x396c73,_0x4061a2,_0x204fc5,_0x5d5874){return new BPromise(function(_0x472d8a,_0xcdb889){var _0x27382d=_0x5d5874||client;return _0x27382d[_0x1990('0x18')](_0x396c73,_0x204fc5)[_0x1990('0x19')](function(_0x3b463b){logger[_0x1990('0x1a')](_0x1990('0x1b'),_0x4061a2,_0x1990('0x1c'));logger[_0x1990('0x1d')](_0x1990('0x1e'),_0x4061a2,_0x1990('0x1c'),JSON[_0x1990('0x1f')](_0x3b463b));if(_0x3b463b[_0x1990('0x20')]){if(_0x3b463b[_0x1990('0x20')][_0x1990('0x21')]===0x1f4){logger[_0x1990('0x20')](_0x1990('0x1b'),_0x4061a2,_0x3b463b['error'][_0x1990('0x22')]);return _0xcdb889(_0x3b463b[_0x1990('0x20')][_0x1990('0x22')]);}logger[_0x1990('0x20')](_0x1990('0x1b'),_0x4061a2,_0x3b463b['error']['message']);return _0x472d8a(_0x3b463b[_0x1990('0x20')][_0x1990('0x22')]);}else{logger[_0x1990('0x1a')](_0x1990('0x1b'),_0x4061a2,'request\x20sent');_0x472d8a(_0x3b463b[_0x1990('0x23')][_0x1990('0x22')]);}})[_0x1990('0x24')](function(_0x25d82d){logger[_0x1990('0x20')](_0x1990('0x1b'),_0x4061a2,_0x25d82d);_0xcdb889(_0x25d82d);});});}function respondWithStatusCode(_0x35d977,_0x75dd3){_0x75dd3=_0x75dd3||0xcc;return function(_0x54c6e8){if(_0x54c6e8){return _0x35d977[_0x1990('0x25')](_0x75dd3);}return _0x35d977[_0x1990('0x26')](_0x75dd3)[_0x1990('0x27')]();};}function respondWithResult(_0x5e5ecb,_0x1496f1){_0x1496f1=_0x1496f1||0xc8;return function(_0x502b83){if(_0x502b83){return _0x5e5ecb[_0x1990('0x26')](_0x1496f1)[_0x1990('0x28')](_0x502b83);}};}function respondWithFilteredResult(_0x4fef59,_0x2a9866){return function(_0x1d624a){if(_0x1d624a){var _0x240642=_0x1d624a[_0x1990('0x29')],_0x1b4098=_0x2a9866[_0x1990('0x2a')],_0x1e529e=_0x2a9866[_0x1990('0x2a')]+_0x2a9866[_0x1990('0x2b')],_0xcc9752;if(_0x1e529e>=_0x240642){_0x1e529e=_0x240642;_0xcc9752=0xc8;}else{_0xcc9752=0xce;}_0x4fef59['status'](_0xcc9752);return _0x4fef59['set'](_0x1990('0x2c'),_0x1b4098+'-'+_0x1e529e+'/'+_0x240642)[_0x1990('0x28')](_0x1d624a);}return null;};}function patchUpdates(_0x44f13d){return function(_0x329952){try{jsonpatch[_0x1990('0x2d')](_0x329952,_0x44f13d,!![]);}catch(_0x1b555d){return BPromise['reject'](_0x1b555d);}return _0x329952[_0x1990('0x2e')]();};}function saveUpdates(_0x5db44b,_0x411eca){return function(_0x17d474){if(_0x17d474){return _0x17d474[_0x1990('0x2f')](_0x5db44b)['then'](function(_0x4ea4af){return _0x4ea4af;});}return null;};}function removeEntity(_0x21e33f,_0x95facd){return function(_0x583af2){if(_0x583af2){return _0x583af2['destroy']()[_0x1990('0x19')](function(){_0x21e33f[_0x1990('0x26')](0xcc)[_0x1990('0x27')]();});}};}function handleEntityNotFound(_0x15c9b8,_0x391de6){return function(_0x52b25f){if(!_0x52b25f){_0x15c9b8[_0x1990('0x25')](0x194);}return _0x52b25f;};}function handleError(_0x53f540,_0x223780){_0x223780=_0x223780||0x1f4;return function(_0x52e76c){logger[_0x1990('0x20')](_0x52e76c['stack']);if(_0x52e76c[_0x1990('0x30')]){delete _0x52e76c[_0x1990('0x30')];}_0x53f540[_0x1990('0x26')](_0x223780)[_0x1990('0x31')](_0x52e76c);};}exports['index']=function(_0x3c42c4,_0x5ba7c7){var _0x356fcd={},_0x503286={},_0x3770bd={'count':0x0,'rows':[]};var _0x41db9f=_[_0x1990('0x32')](db[_0x1990('0x33')]['rawAttributes'],function(_0x58cb8b){return{'name':_0x58cb8b[_0x1990('0x34')],'type':_0x58cb8b[_0x1990('0x35')][_0x1990('0x36')]};});_0x503286[_0x1990('0x37')]=_[_0x1990('0x32')](_0x41db9f,'name');_0x503286[_0x1990('0x38')]=_['keys'](_0x3c42c4['query']);_0x503286[_0x1990('0x39')]=_[_0x1990('0x3a')](_0x503286[_0x1990('0x37')],_0x503286['query']);_0x356fcd[_0x1990('0x3b')]=_['intersection'](_0x503286[_0x1990('0x37')],qs[_0x1990('0x3c')](_0x3c42c4['query']['fields']));_0x356fcd['attributes']=_0x356fcd['attributes']['length']?_0x356fcd[_0x1990('0x3b')]:_0x503286[_0x1990('0x37')];if(!_0x3c42c4['query'][_0x1990('0x3d')](_0x1990('0x3e'))){_0x356fcd[_0x1990('0x2b')]=qs[_0x1990('0x2b')](_0x3c42c4['query'][_0x1990('0x2b')]);_0x356fcd[_0x1990('0x2a')]=qs[_0x1990('0x2a')](_0x3c42c4[_0x1990('0x38')]['offset']);}_0x356fcd[_0x1990('0x3f')]=qs['sort'](_0x3c42c4[_0x1990('0x38')]['sort']);_0x356fcd[_0x1990('0x40')]=qs[_0x1990('0x39')](_['pick'](_0x3c42c4[_0x1990('0x38')],_0x503286[_0x1990('0x39')]),_0x41db9f);if(_0x3c42c4[_0x1990('0x38')]['filter']){_0x356fcd[_0x1990('0x40')]=_[_0x1990('0x41')](_0x356fcd['where'],{'$or':_[_0x1990('0x32')](_0x41db9f,function(_0x438aad){if(_0x438aad[_0x1990('0x35')]!==_0x1990('0x42')){var _0x574a56={};_0x574a56[_0x438aad[_0x1990('0x30')]]={'$like':'%'+_0x3c42c4[_0x1990('0x38')][_0x1990('0x43')]+'%'};return _0x574a56;}})});}_0x356fcd=_[_0x1990('0x41')]({},_0x356fcd,_0x3c42c4['options']);var _0x49feff={'where':_0x356fcd[_0x1990('0x40')]};return db[_0x1990('0x33')]['count'](_0x49feff)[_0x1990('0x19')](function(_0x725ad8){_0x3770bd['count']=_0x725ad8;if(_0x3c42c4[_0x1990('0x38')]['includeAll']){_0x356fcd[_0x1990('0x44')]=[{'all':!![]}];}return db[_0x1990('0x33')][_0x1990('0x45')](_0x356fcd);})[_0x1990('0x19')](function(_0x24b0e6){_0x3770bd[_0x1990('0x46')]=_0x24b0e6;return _0x3770bd;})[_0x1990('0x19')](respondWithFilteredResult(_0x5ba7c7,_0x356fcd))[_0x1990('0x24')](handleError(_0x5ba7c7,null));};exports[_0x1990('0x47')]=function(_0x1cd6d1,_0x3ec675){var _0x14e21b={'raw':!![],'where':{'id':_0x1cd6d1[_0x1990('0x48')]['id']}},_0x11b230={};_0x11b230['model']=_[_0x1990('0x49')](db['Network'][_0x1990('0x4a')]);_0x11b230[_0x1990('0x38')]=_[_0x1990('0x49')](_0x1cd6d1[_0x1990('0x38')]);_0x11b230[_0x1990('0x39')]=_[_0x1990('0x3a')](_0x11b230[_0x1990('0x37')],_0x11b230['query']);_0x14e21b[_0x1990('0x3b')]=_[_0x1990('0x3a')](_0x11b230[_0x1990('0x37')],qs[_0x1990('0x3c')](_0x1cd6d1[_0x1990('0x38')][_0x1990('0x3c')]));_0x14e21b[_0x1990('0x3b')]=_0x14e21b[_0x1990('0x3b')]['length']?_0x14e21b[_0x1990('0x3b')]:_0x11b230[_0x1990('0x37')];if(_0x1cd6d1[_0x1990('0x38')][_0x1990('0x4b')]){_0x14e21b[_0x1990('0x44')]=[{'all':!![]}];}_0x14e21b=_[_0x1990('0x41')]({},_0x14e21b,_0x1cd6d1[_0x1990('0x4c')]);return db[_0x1990('0x33')][_0x1990('0x4d')](_0x14e21b)['then'](handleEntityNotFound(_0x3ec675,null))[_0x1990('0x19')](respondWithResult(_0x3ec675,null))[_0x1990('0x24')](handleError(_0x3ec675,null));};exports[_0x1990('0x4e')]=function(_0x214ea2,_0x2928ca,_0x903f17){var _0xe73ee8;return db[_0x1990('0x4f')]['transaction'](function(_0x3b4374){return db['Network'][_0x1990('0x4e')](_0x214ea2['body'],{'raw':!![]})[_0x1990('0x19')](function(_0x5dc6c8){_0xe73ee8=_0x5dc6c8;return db[_0x1990('0x33')]['findAll']({'where':{'type':_0x214ea2[_0x1990('0x50')]['type']},'raw':!![]});})[_0x1990('0x19')](function(_0x20478a){if(_0xe73ee8[_0x1990('0x35')][_0x1990('0x51')]()==_0x1990('0x52')){var _0x507776=fs[_0x1990('0x53')](path[_0x1990('0x54')](config['root'],'server/files/templates/stun_multiple.ejs'),_0x1990('0x55'));var _0x26932d=ejs[_0x1990('0x56')](_0x507776,{'networks':_0x20478a||[]});fs[_0x1990('0x57')](_0x1990('0x58'),_0x26932d);return respondWithRpcPromise(_0x1990('0x59'),'create',{'module':_0x1990('0x5a')});}else if(_0xe73ee8['type'][_0x1990('0x51')]()==_0x1990('0x5b')){var _0x4793a1=fs[_0x1990('0x53')](path[_0x1990('0x54')](config[_0x1990('0x5c')],_0x1990('0x5d')),_0x1990('0x55'));var _0x3ecb77=ejs[_0x1990('0x56')](_0x4793a1,{'networks':_0x20478a||[]});fs[_0x1990('0x57')]('/etc/asterisk/turn_xcally.conf',_0x3ecb77);return respondWithRpcPromise('Reload',_0x1990('0x4e'),{'module':'res_stun_monitor.so'});}else{var _0x2ac337=fs[_0x1990('0x53')](path[_0x1990('0x54')](config[_0x1990('0x5c')],_0x1990('0x5e')),_0x1990('0x55'));var _0x28238d=ejs[_0x1990('0x56')](_0x2ac337,{'networks':_0x20478a||[]});fs['writeFileSync'](util['format'](_0x1990('0x5f'),_0x214ea2[_0x1990('0x50')]['type']['toLowerCase']()),_0x28238d);return respondWithRpcPromise(_0x1990('0x59'),_0x1990('0x4e'),{'module':_0x1990('0x60')});}return null;})[_0x1990('0x19')](function(){return _0xe73ee8;});})[_0x1990('0x19')](respondWithResult(_0x2928ca,0xc9))[_0x1990('0x24')](handleError(_0x2928ca,null));};exports[_0x1990('0x2f')]=function(_0x10f0ce,_0x4392cc,_0x2a0420){var _0x6a06db;return db[_0x1990('0x4f')][_0x1990('0x61')](function(_0x48b897){return db['Network'][_0x1990('0x4d')]({'where':{'id':_0x10f0ce['params']['id']}})[_0x1990('0x19')](handleEntityNotFound(_0x4392cc,null))['then'](saveUpdates(_0x10f0ce[_0x1990('0x50')],null))['then'](function(_0x3c5da4){if(_0x3c5da4){_0x6a06db=_0x3c5da4;return db[_0x1990('0x33')][_0x1990('0x45')]({'where':{'type':_0x6a06db[_0x1990('0x35')]},'raw':!![]});}return null;})[_0x1990('0x19')](function(_0x1adbb6){if(_0x6a06db[_0x1990('0x35')]['toUpperCase']()==_0x1990('0x52')){var _0x16c099=fs['readFileSync'](path['join'](config[_0x1990('0x5c')],'server/files/templates/stun_multiple.ejs'),'utf8');var _0x5b4fec=ejs[_0x1990('0x56')](_0x16c099,{'networks':_0x1adbb6||[]});fs[_0x1990('0x57')]('/etc/asterisk/stun_xcally.conf',_0x5b4fec);return respondWithRpcPromise('Reload',_0x1990('0x2f'),{'module':_0x1990('0x5a')});}else if(_0x6a06db[_0x1990('0x35')]['toUpperCase']()=='TURN'){var _0x589d0a=fs[_0x1990('0x53')](path[_0x1990('0x54')](config[_0x1990('0x5c')],'server/files/templates/turn_multiple.ejs'),_0x1990('0x55'));var _0x413b8b=ejs['render'](_0x589d0a,{'networks':_0x1adbb6||[]});fs[_0x1990('0x57')](_0x1990('0x62'),_0x413b8b);return respondWithRpcPromise('Reload',_0x1990('0x2f'),{'module':_0x1990('0x5a')});}else{var _0x5a4268=fs['readFileSync'](path[_0x1990('0x54')](config[_0x1990('0x5c')],_0x1990('0x5e')),_0x1990('0x55'));var _0x3ee556=ejs[_0x1990('0x56')](_0x5a4268,{'networks':_0x1adbb6||[]});fs[_0x1990('0x57')](util['format'](_0x1990('0x5f'),_0x10f0ce[_0x1990('0x50')][_0x1990('0x35')]['toLowerCase']()),_0x3ee556);return respondWithRpcPromise(_0x1990('0x59'),_0x1990('0x2f'),{'module':_0x1990('0x60')});}return null;})['then'](function(_0x4e6d18){if(_0x4e6d18){return _0x6a06db;}return null;});})['then'](respondWithResult(_0x4392cc,null))[_0x1990('0x24')](handleError(_0x4392cc,null));};exports[_0x1990('0x63')]=function(_0x44bc20,_0x432431,_0x3f8559){var _0xd340e7;return db[_0x1990('0x33')][_0x1990('0x4d')]({'where':{'id':_0x44bc20[_0x1990('0x48')]['id']}})['then'](function(_0x1fc62f){_0xd340e7=_0x1fc62f;return _0x1fc62f;})[_0x1990('0x19')](handleEntityNotFound(_0x432431,null))[_0x1990('0x19')](removeEntity(_0x432431,null))[_0x1990('0x19')](function(){if(_0xd340e7){return db[_0x1990('0x33')][_0x1990('0x45')]({'where':{'type':_0xd340e7[_0x1990('0x35')]},'raw':!![]});}})[_0x1990('0x19')](function(_0x5964fa){if(_0xd340e7[_0x1990('0x35')][_0x1990('0x51')]()=='STUN'){var _0x28b82a=fs[_0x1990('0x53')](path[_0x1990('0x54')](config[_0x1990('0x5c')],_0x1990('0x64')),_0x1990('0x55'));var _0x37d200=ejs[_0x1990('0x56')](_0x28b82a,{'networks':_0x5964fa||[]});fs['writeFileSync'](_0x1990('0x58'),_0x37d200);return respondWithRpcPromise(_0x1990('0x59'),'destroy',{'module':_0x1990('0x5a')});}else if(_0xd340e7['type'][_0x1990('0x51')]()==_0x1990('0x5b')){var _0x4c5eed=fs[_0x1990('0x53')](path[_0x1990('0x54')](config[_0x1990('0x5c')],_0x1990('0x5d')),_0x1990('0x55'));var _0x402c40=ejs[_0x1990('0x56')](_0x4c5eed,{'networks':_0x5964fa||[]});fs[_0x1990('0x57')]('/etc/asterisk/turn_xcally.conf',_0x402c40);return respondWithRpcPromise(_0x1990('0x59'),'destroy',{'module':_0x1990('0x5a')});}else{var _0x428d50=fs[_0x1990('0x53')](path[_0x1990('0x54')](config[_0x1990('0x5c')],_0x1990('0x5e')),'utf8');var _0x4af149=ejs[_0x1990('0x56')](_0x428d50,{'networks':_0x5964fa||[]});fs['writeFileSync'](util[_0x1990('0x65')](_0x1990('0x5f'),_0x44bc20[_0x1990('0x50')][_0x1990('0x35')]['toLowerCase']()),_0x4af149);return respondWithRpcPromise(_0x1990('0x59'),'destroy',{'module':_0x1990('0x60')});}return null;})[_0x1990('0x24')](handleError(_0x432431,null));};