Built motion from commit (unavailable).|2.5.4
[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 _0x9d55=['fields','length','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','filter','include','findAll','rows','show','params','includeAll','options','create','sequelize','body','toUpperCase','readFileSync','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','toLowerCase','chan_sip.so','transaction','find','STUN','server/files/templates/stun_multiple.ejs','update','destroy','/etc/asterisk/sip_xcally_%s.conf','zip-dir','fast-json-patch','request-promise','moment','util','sox','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','http','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','info','Network,\x20%s,\x20%s','request\x20sent','Network,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','reject','save','stack','name','index','map','Network','rawAttributes','type','key','model','query','keys','filters','intersection','attributes'];(function(_0x1738c1,_0x1ae7a7){var _0x7e9634=function(_0x122e62){while(--_0x122e62){_0x1738c1['push'](_0x1738c1['shift']());}};_0x7e9634(++_0x1ae7a7);}(_0x9d55,0xfe));var _0x59d5=function(_0x39b000,_0x38e834){_0x39b000=_0x39b000-0x0;var _0x3884c1=_0x9d55[_0x39b000];return _0x3884c1;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x59d5('0x0'));var jsonpatch=require(_0x59d5('0x1'));var rp=require(_0x59d5('0x2'));var moment=require(_0x59d5('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x59d5('0x4'));var path=require('path');var sox=require(_0x59d5('0x5'));var csv=require(_0x59d5('0x6'));var ejs=require(_0x59d5('0x7'));var fs=require('fs');var _=require(_0x59d5('0x8'));var squel=require(_0x59d5('0x9'));var crypto=require('crypto');var jsforce=require(_0x59d5('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x59d5('0x6'));var querystring=require(_0x59d5('0xb'));var Papa=require(_0x59d5('0xc'));var Redis=require(_0x59d5('0xd'));var authService=require(_0x59d5('0xe'));var qs=require(_0x59d5('0xf'));var as=require(_0x59d5('0x10'));var hardwareService=require(_0x59d5('0x11'));var logger=require('../../config/logger')(_0x59d5('0x12'));var utils=require(_0x59d5('0x13'));var config=require(_0x59d5('0x14'));var db=require(_0x59d5('0x15'))['db'];var jayson=require('jayson/promise');var client=jayson['client'][_0x59d5('0x16')]({'port':0x232a});function checkPasswordPattern(_0x5f3edf,_0x3414a3,_0x245e99){if(_0x245e99){var _0x234a8a=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x234a8a['test'](_0x3414a3)){return _0x5f3edf;}else{throw new db['Sequelize']['ValidationError'](_0x59d5('0x17'));}}else{return _0x5f3edf;}}function respondWithRpcPromise(_0x2d4c9e,_0x3a09eb,_0x50c331,_0x1a5257){return new BPromise(function(_0x31b7b4,_0x1bd37f){var _0x272647=_0x1a5257||client;return _0x272647[_0x59d5('0x18')](_0x2d4c9e,_0x50c331)[_0x59d5('0x19')](function(_0xb14ef2){logger[_0x59d5('0x1a')](_0x59d5('0x1b'),_0x3a09eb,_0x59d5('0x1c'));logger['debug'](_0x59d5('0x1d'),_0x3a09eb,_0x59d5('0x1c'),JSON['stringify'](_0xb14ef2));if(_0xb14ef2[_0x59d5('0x1e')]){if(_0xb14ef2[_0x59d5('0x1e')][_0x59d5('0x1f')]===0x1f4){logger['error'](_0x59d5('0x1b'),_0x3a09eb,_0xb14ef2[_0x59d5('0x1e')][_0x59d5('0x20')]);return _0x1bd37f(_0xb14ef2[_0x59d5('0x1e')][_0x59d5('0x20')]);}logger[_0x59d5('0x1e')](_0x59d5('0x1b'),_0x3a09eb,_0xb14ef2[_0x59d5('0x1e')][_0x59d5('0x20')]);return _0x31b7b4(_0xb14ef2[_0x59d5('0x1e')][_0x59d5('0x20')]);}else{logger[_0x59d5('0x1a')](_0x59d5('0x1b'),_0x3a09eb,_0x59d5('0x1c'));_0x31b7b4(_0xb14ef2[_0x59d5('0x21')][_0x59d5('0x20')]);}})[_0x59d5('0x22')](function(_0x2ad36a){logger[_0x59d5('0x1e')](_0x59d5('0x1b'),_0x3a09eb,_0x2ad36a);_0x1bd37f(_0x2ad36a);});});}function respondWithStatusCode(_0x210e2e,_0x210fba){_0x210fba=_0x210fba||0xcc;return function(_0x4c9ae0){if(_0x4c9ae0){return _0x210e2e[_0x59d5('0x23')](_0x210fba);}return _0x210e2e[_0x59d5('0x24')](_0x210fba)[_0x59d5('0x25')]();};}function respondWithResult(_0x44b02e,_0x3931f2){_0x3931f2=_0x3931f2||0xc8;return function(_0x3a66b2){if(_0x3a66b2){return _0x44b02e['status'](_0x3931f2)['json'](_0x3a66b2);}};}function respondWithFilteredResult(_0x429e7c,_0x3c1f15){return function(_0x21e4c0){if(_0x21e4c0){var _0x265ed8=_0x21e4c0[_0x59d5('0x26')],_0x57b4a5=_0x3c1f15[_0x59d5('0x27')],_0x551ff0=_0x3c1f15[_0x59d5('0x27')]+_0x3c1f15[_0x59d5('0x28')],_0x3c0635;if(_0x551ff0>=_0x265ed8){_0x551ff0=_0x265ed8;_0x3c0635=0xc8;}else{_0x3c0635=0xce;}_0x429e7c['status'](_0x3c0635);return _0x429e7c[_0x59d5('0x29')](_0x59d5('0x2a'),_0x57b4a5+'-'+_0x551ff0+'/'+_0x265ed8)[_0x59d5('0x2b')](_0x21e4c0);}return null;};}function patchUpdates(_0x3dcdf9){return function(_0x5ebedf){try{jsonpatch[_0x59d5('0x2c')](_0x5ebedf,_0x3dcdf9,!![]);}catch(_0x4c4417){return BPromise[_0x59d5('0x2d')](_0x4c4417);}return _0x5ebedf[_0x59d5('0x2e')]();};}function saveUpdates(_0x3f6c1d,_0x13a7a2){return function(_0x202701){if(_0x202701){return _0x202701['update'](_0x3f6c1d)[_0x59d5('0x19')](function(_0x573ec7){return _0x573ec7;});}return null;};}function removeEntity(_0x2dd676,_0x53ac97){return function(_0x35ef81){if(_0x35ef81){return _0x35ef81['destroy']()['then'](function(){_0x2dd676[_0x59d5('0x24')](0xcc)['end']();});}};}function handleEntityNotFound(_0x11793a,_0x303f10){return function(_0x6303a1){if(!_0x6303a1){_0x11793a[_0x59d5('0x23')](0x194);}return _0x6303a1;};}function handleError(_0x98af6a,_0x37aae3){_0x37aae3=_0x37aae3||0x1f4;return function(_0x3d1348){logger[_0x59d5('0x1e')](_0x3d1348[_0x59d5('0x2f')]);if(_0x3d1348['name']){delete _0x3d1348[_0x59d5('0x30')];}_0x98af6a[_0x59d5('0x24')](_0x37aae3)['send'](_0x3d1348);};}exports[_0x59d5('0x31')]=function(_0x16f86c,_0x3c812c){var _0x11b32e={},_0x4e441b={},_0x24d828={'count':0x0,'rows':[]};var _0xc0c2f=_[_0x59d5('0x32')](db[_0x59d5('0x33')][_0x59d5('0x34')],function(_0x14d0ec){return{'name':_0x14d0ec['fieldName'],'type':_0x14d0ec[_0x59d5('0x35')][_0x59d5('0x36')]};});_0x4e441b[_0x59d5('0x37')]=_[_0x59d5('0x32')](_0xc0c2f,_0x59d5('0x30'));_0x4e441b[_0x59d5('0x38')]=_[_0x59d5('0x39')](_0x16f86c['query']);_0x4e441b[_0x59d5('0x3a')]=_[_0x59d5('0x3b')](_0x4e441b[_0x59d5('0x37')],_0x4e441b['query']);_0x11b32e[_0x59d5('0x3c')]=_[_0x59d5('0x3b')](_0x4e441b[_0x59d5('0x37')],qs['fields'](_0x16f86c['query'][_0x59d5('0x3d')]));_0x11b32e[_0x59d5('0x3c')]=_0x11b32e['attributes'][_0x59d5('0x3e')]?_0x11b32e[_0x59d5('0x3c')]:_0x4e441b[_0x59d5('0x37')];if(!_0x16f86c[_0x59d5('0x38')][_0x59d5('0x3f')]('nolimit')){_0x11b32e[_0x59d5('0x28')]=qs[_0x59d5('0x28')](_0x16f86c[_0x59d5('0x38')]['limit']);_0x11b32e[_0x59d5('0x27')]=qs['offset'](_0x16f86c[_0x59d5('0x38')][_0x59d5('0x27')]);}_0x11b32e[_0x59d5('0x40')]=qs[_0x59d5('0x41')](_0x16f86c[_0x59d5('0x38')][_0x59d5('0x41')]);_0x11b32e[_0x59d5('0x42')]=qs[_0x59d5('0x3a')](_[_0x59d5('0x43')](_0x16f86c['query'],_0x4e441b[_0x59d5('0x3a')]),_0xc0c2f);if(_0x16f86c[_0x59d5('0x38')]['filter']){_0x11b32e[_0x59d5('0x42')]=_[_0x59d5('0x44')](_0x11b32e[_0x59d5('0x42')],{'$or':_[_0x59d5('0x32')](_0xc0c2f,function(_0x1f91ce){if(_0x1f91ce[_0x59d5('0x35')]!==_0x59d5('0x45')){var _0x396248={};_0x396248[_0x1f91ce[_0x59d5('0x30')]]={'$like':'%'+_0x16f86c[_0x59d5('0x38')][_0x59d5('0x46')]+'%'};return _0x396248;}})});}_0x11b32e=_['merge']({},_0x11b32e,_0x16f86c['options']);var _0x527f6c={'where':_0x11b32e['where']};return db[_0x59d5('0x33')]['count'](_0x527f6c)[_0x59d5('0x19')](function(_0x321f86){_0x24d828[_0x59d5('0x26')]=_0x321f86;if(_0x16f86c[_0x59d5('0x38')]['includeAll']){_0x11b32e[_0x59d5('0x47')]=[{'all':!![]}];}return db[_0x59d5('0x33')][_0x59d5('0x48')](_0x11b32e);})[_0x59d5('0x19')](function(_0xbb0a5){_0x24d828[_0x59d5('0x49')]=_0xbb0a5;return _0x24d828;})[_0x59d5('0x19')](respondWithFilteredResult(_0x3c812c,_0x11b32e))[_0x59d5('0x22')](handleError(_0x3c812c,null));};exports[_0x59d5('0x4a')]=function(_0x32f36b,_0x6c3eab){var _0x874d16={'raw':!![],'where':{'id':_0x32f36b[_0x59d5('0x4b')]['id']}},_0x16af62={};_0x16af62[_0x59d5('0x37')]=_[_0x59d5('0x39')](db[_0x59d5('0x33')][_0x59d5('0x34')]);_0x16af62[_0x59d5('0x38')]=_[_0x59d5('0x39')](_0x32f36b[_0x59d5('0x38')]);_0x16af62[_0x59d5('0x3a')]=_[_0x59d5('0x3b')](_0x16af62[_0x59d5('0x37')],_0x16af62['query']);_0x874d16[_0x59d5('0x3c')]=_[_0x59d5('0x3b')](_0x16af62[_0x59d5('0x37')],qs[_0x59d5('0x3d')](_0x32f36b[_0x59d5('0x38')][_0x59d5('0x3d')]));_0x874d16[_0x59d5('0x3c')]=_0x874d16['attributes']['length']?_0x874d16['attributes']:_0x16af62[_0x59d5('0x37')];if(_0x32f36b[_0x59d5('0x38')][_0x59d5('0x4c')]){_0x874d16['include']=[{'all':!![]}];}_0x874d16=_[_0x59d5('0x44')]({},_0x874d16,_0x32f36b[_0x59d5('0x4d')]);return db[_0x59d5('0x33')]['find'](_0x874d16)[_0x59d5('0x19')](handleEntityNotFound(_0x6c3eab,null))[_0x59d5('0x19')](respondWithResult(_0x6c3eab,null))[_0x59d5('0x22')](handleError(_0x6c3eab,null));};exports[_0x59d5('0x4e')]=function(_0x33f601,_0x5cb128,_0x13fd1b){var _0x5e197c;return db[_0x59d5('0x4f')]['transaction'](function(_0x460cba){return db[_0x59d5('0x33')][_0x59d5('0x4e')](_0x33f601[_0x59d5('0x50')],{'raw':!![]})[_0x59d5('0x19')](function(_0x303883){_0x5e197c=_0x303883;return db[_0x59d5('0x33')]['findAll']({'where':{'type':_0x33f601[_0x59d5('0x50')][_0x59d5('0x35')]},'raw':!![]});})[_0x59d5('0x19')](function(_0x538b70){if(_0x5e197c[_0x59d5('0x35')][_0x59d5('0x51')]()=='STUN'){var _0x399711=fs[_0x59d5('0x52')](path['join'](config['root'],'server/files/templates/stun_multiple.ejs'),_0x59d5('0x53'));var _0x398642=ejs[_0x59d5('0x54')](_0x399711,{'networks':_0x538b70||[]});fs[_0x59d5('0x55')](_0x59d5('0x56'),_0x398642);return respondWithRpcPromise(_0x59d5('0x57'),_0x59d5('0x4e'),{'module':_0x59d5('0x58')});}else if(_0x5e197c[_0x59d5('0x35')]['toUpperCase']()==_0x59d5('0x59')){var _0x2ba61f=fs['readFileSync'](path[_0x59d5('0x5a')](config['root'],_0x59d5('0x5b')),'utf8');var _0x5c0c73=ejs[_0x59d5('0x54')](_0x2ba61f,{'networks':_0x538b70||[]});fs[_0x59d5('0x55')](_0x59d5('0x5c'),_0x5c0c73);return respondWithRpcPromise('Reload','create',{'module':_0x59d5('0x58')});}else{var _0x533b28=fs[_0x59d5('0x52')](path[_0x59d5('0x5a')](config[_0x59d5('0x5d')],_0x59d5('0x5e')),_0x59d5('0x53'));var _0x3b0317=ejs[_0x59d5('0x54')](_0x533b28,{'networks':_0x538b70||[]});fs['writeFileSync'](util[_0x59d5('0x5f')]('/etc/asterisk/sip_xcally_%s.conf',_0x33f601[_0x59d5('0x50')]['type'][_0x59d5('0x60')]()),_0x3b0317);return respondWithRpcPromise(_0x59d5('0x57'),_0x59d5('0x4e'),{'module':_0x59d5('0x61')});}return null;})[_0x59d5('0x19')](function(){return _0x5e197c;});})['then'](respondWithResult(_0x5cb128,0xc9))[_0x59d5('0x22')](handleError(_0x5cb128,null));};exports['update']=function(_0x27227f,_0x229137,_0x328810){var _0x4aadf9;return db[_0x59d5('0x4f')][_0x59d5('0x62')](function(_0x3f9d66){return db[_0x59d5('0x33')][_0x59d5('0x63')]({'where':{'id':_0x27227f[_0x59d5('0x4b')]['id']}})['then'](handleEntityNotFound(_0x229137,null))[_0x59d5('0x19')](saveUpdates(_0x27227f['body'],null))[_0x59d5('0x19')](function(_0x14a258){if(_0x14a258){_0x4aadf9=_0x14a258;return db[_0x59d5('0x33')][_0x59d5('0x48')]({'where':{'type':_0x4aadf9['type']},'raw':!![]});}return null;})['then'](function(_0x46aade){if(_0x4aadf9[_0x59d5('0x35')][_0x59d5('0x51')]()==_0x59d5('0x64')){var _0x22124e=fs[_0x59d5('0x52')](path[_0x59d5('0x5a')](config['root'],_0x59d5('0x65')),_0x59d5('0x53'));var _0x112f56=ejs[_0x59d5('0x54')](_0x22124e,{'networks':_0x46aade||[]});fs[_0x59d5('0x55')](_0x59d5('0x56'),_0x112f56);return respondWithRpcPromise(_0x59d5('0x57'),'update',{'module':'res_stun_monitor.so'});}else if(_0x4aadf9[_0x59d5('0x35')]['toUpperCase']()==_0x59d5('0x59')){var _0x197ee6=fs[_0x59d5('0x52')](path[_0x59d5('0x5a')](config[_0x59d5('0x5d')],_0x59d5('0x5b')),'utf8');var _0x3989ed=ejs[_0x59d5('0x54')](_0x197ee6,{'networks':_0x46aade||[]});fs[_0x59d5('0x55')](_0x59d5('0x5c'),_0x3989ed);return respondWithRpcPromise(_0x59d5('0x57'),'update',{'module':'res_stun_monitor.so'});}else{var _0x9d05d4=fs[_0x59d5('0x52')](path[_0x59d5('0x5a')](config[_0x59d5('0x5d')],_0x59d5('0x5e')),_0x59d5('0x53'));var _0x4a6200=ejs[_0x59d5('0x54')](_0x9d05d4,{'networks':_0x46aade||[]});fs[_0x59d5('0x55')](util[_0x59d5('0x5f')]('/etc/asterisk/sip_xcally_%s.conf',_0x27227f[_0x59d5('0x50')][_0x59d5('0x35')]['toLowerCase']()),_0x4a6200);return respondWithRpcPromise('Reload',_0x59d5('0x66'),{'module':'chan_sip.so'});}return null;})[_0x59d5('0x19')](function(_0x12fceb){if(_0x12fceb){return _0x4aadf9;}return null;});})[_0x59d5('0x19')](respondWithResult(_0x229137,null))[_0x59d5('0x22')](handleError(_0x229137,null));};exports['destroy']=function(_0x28d7c,_0x3bfc3f,_0x4d0df1){var _0x2f4671;return db['Network'][_0x59d5('0x63')]({'where':{'id':_0x28d7c[_0x59d5('0x4b')]['id']}})[_0x59d5('0x19')](function(_0x130df4){_0x2f4671=_0x130df4;return _0x130df4;})[_0x59d5('0x19')](handleEntityNotFound(_0x3bfc3f,null))[_0x59d5('0x19')](removeEntity(_0x3bfc3f,null))['then'](function(){if(_0x2f4671){return db['Network'][_0x59d5('0x48')]({'where':{'type':_0x2f4671[_0x59d5('0x35')]},'raw':!![]});}})[_0x59d5('0x19')](function(_0x4013b8){if(_0x2f4671['type'][_0x59d5('0x51')]()==_0x59d5('0x64')){var _0x1c3ccd=fs['readFileSync'](path[_0x59d5('0x5a')](config['root'],_0x59d5('0x65')),_0x59d5('0x53'));var _0x1e617e=ejs[_0x59d5('0x54')](_0x1c3ccd,{'networks':_0x4013b8||[]});fs[_0x59d5('0x55')]('/etc/asterisk/stun_xcally.conf',_0x1e617e);return respondWithRpcPromise(_0x59d5('0x57'),_0x59d5('0x67'),{'module':_0x59d5('0x58')});}else if(_0x2f4671['type'][_0x59d5('0x51')]()==_0x59d5('0x59')){var _0x5716e7=fs[_0x59d5('0x52')](path[_0x59d5('0x5a')](config['root'],_0x59d5('0x5b')),'utf8');var _0x2c7b47=ejs[_0x59d5('0x54')](_0x5716e7,{'networks':_0x4013b8||[]});fs[_0x59d5('0x55')](_0x59d5('0x5c'),_0x2c7b47);return respondWithRpcPromise(_0x59d5('0x57'),_0x59d5('0x67'),{'module':'res_stun_monitor.so'});}else{var _0x5603a9=fs[_0x59d5('0x52')](path[_0x59d5('0x5a')](config['root'],'server/files/templates/network.ejs'),_0x59d5('0x53'));var _0x228634=ejs['render'](_0x5603a9,{'networks':_0x4013b8||[]});fs[_0x59d5('0x55')](util[_0x59d5('0x5f')](_0x59d5('0x68'),_0x28d7c[_0x59d5('0x50')][_0x59d5('0x35')][_0x59d5('0x60')]()),_0x228634);return respondWithRpcPromise(_0x59d5('0x57'),_0x59d5('0x67'),{'module':_0x59d5('0x61')});}return null;})[_0x59d5('0x22')](handleError(_0x3bfc3f,null));};