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 _0x839e=['server/files/templates/network.ejs','/etc/asterisk/sip_xcally_%s.conf','chan_sip.so','transaction','/etc/asterisk/turn_xcally.conf','format','toLowerCase','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','jayson/promise','client','http','test','Sequelize','info','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','Network,\x20%s,\x20%s','catch','status','end','json','count','offset','limit','Content-Range','reject','save','update','destroy','then','sendStatus','name','Network','fieldName','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filter','merge','map','options','includeAll','include','findAll','rows','show','params','rawAttributes','length','find','create','sequelize','body','STUN','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','/etc/asterisk/stun_xcally.conf','Reload','res_stun_monitor.so','toUpperCase','TURN','server/files/templates/turn_multiple.ejs'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x839e,0xdb));var _0xe839=function(_0x331e77,_0x114123){_0x331e77=_0x331e77-0x0;var _0x5b1b95=_0x839e[_0x331e77];return _0x5b1b95;};'use strict';var pdf=require(_0xe839('0x0'));var emlformat=require(_0xe839('0x1'));var rimraf=require(_0xe839('0x2'));var zipdir=require(_0xe839('0x3'));var jsonpatch=require(_0xe839('0x4'));var rp=require('request-promise');var moment=require(_0xe839('0x5'));var BPromise=require(_0xe839('0x6'));var Mustache=require(_0xe839('0x7'));var util=require(_0xe839('0x8'));var path=require(_0xe839('0x9'));var sox=require('sox');var csv=require(_0xe839('0xa'));var ejs=require(_0xe839('0xb'));var fs=require('fs');var _=require(_0xe839('0xc'));var squel=require(_0xe839('0xd'));var crypto=require(_0xe839('0xe'));var jsforce=require(_0xe839('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xe839('0xa'));var querystring=require(_0xe839('0x10'));var Papa=require(_0xe839('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xe839('0x12'));var as=require(_0xe839('0x13'));var hardwareService=require(_0xe839('0x14'));var logger=require(_0xe839('0x15'))(_0xe839('0x16'));var utils=require(_0xe839('0x17'));var config=require(_0xe839('0x18'));var db=require('../../mysqldb')['db'];var jayson=require(_0xe839('0x19'));var client=jayson[_0xe839('0x1a')][_0xe839('0x1b')]({'port':0x232a});function checkPasswordPattern(_0x355f29,_0x1b8f18,_0x4636dc){if(_0x4636dc){var _0x5f0458=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x5f0458[_0xe839('0x1c')](_0x1b8f18)){return _0x355f29;}else{throw new db[(_0xe839('0x1d'))]['ValidationError']('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0x355f29;}}function respondWithRpcPromise(_0x5b46ad,_0x2639ad,_0x5cce71,_0x12832e){return new BPromise(function(_0x8977ae,_0x6f9c5e){var _0x5e5bd5=_0x12832e||client;return _0x5e5bd5['request'](_0x5b46ad,_0x5cce71)['then'](function(_0xa70585){logger[_0xe839('0x1e')]('Network,\x20%s,\x20%s',_0x2639ad,_0xe839('0x1f'));logger[_0xe839('0x20')](_0xe839('0x21'),_0x2639ad,_0xe839('0x1f'),JSON[_0xe839('0x22')](_0xa70585));if(_0xa70585[_0xe839('0x23')]){if(_0xa70585[_0xe839('0x23')][_0xe839('0x24')]===0x1f4){logger['error']('Network,\x20%s,\x20%s',_0x2639ad,_0xa70585[_0xe839('0x23')]['message']);return _0x6f9c5e(_0xa70585[_0xe839('0x23')][_0xe839('0x25')]);}logger['error'](_0xe839('0x26'),_0x2639ad,_0xa70585['error'][_0xe839('0x25')]);return _0x8977ae(_0xa70585[_0xe839('0x23')][_0xe839('0x25')]);}else{logger[_0xe839('0x1e')]('Network,\x20%s,\x20%s',_0x2639ad,_0xe839('0x1f'));_0x8977ae(_0xa70585['result']['message']);}})[_0xe839('0x27')](function(_0x166fb6){logger[_0xe839('0x23')](_0xe839('0x26'),_0x2639ad,_0x166fb6);_0x6f9c5e(_0x166fb6);});});}function respondWithStatusCode(_0xffc36d,_0x489c12){_0x489c12=_0x489c12||0xcc;return function(_0x4bc913){if(_0x4bc913){return _0xffc36d['sendStatus'](_0x489c12);}return _0xffc36d[_0xe839('0x28')](_0x489c12)[_0xe839('0x29')]();};}function respondWithResult(_0x37ec50,_0x5ca881){_0x5ca881=_0x5ca881||0xc8;return function(_0x8eb4ad){if(_0x8eb4ad){return _0x37ec50[_0xe839('0x28')](_0x5ca881)[_0xe839('0x2a')](_0x8eb4ad);}};}function respondWithFilteredResult(_0x4eb19d,_0xbc779b){return function(_0x5ae6e4){if(_0x5ae6e4){var _0x5267cd=_0x5ae6e4[_0xe839('0x2b')],_0x495135=_0xbc779b[_0xe839('0x2c')],_0x1ea6ca=_0xbc779b['offset']+_0xbc779b[_0xe839('0x2d')],_0x170591;if(_0x1ea6ca>=_0x5267cd){_0x1ea6ca=_0x5267cd;_0x170591=0xc8;}else{_0x170591=0xce;}_0x4eb19d['status'](_0x170591);return _0x4eb19d['set'](_0xe839('0x2e'),_0x495135+'-'+_0x1ea6ca+'/'+_0x5267cd)[_0xe839('0x2a')](_0x5ae6e4);}return null;};}function patchUpdates(_0x9c5d47){return function(_0x17e26e){try{jsonpatch['apply'](_0x17e26e,_0x9c5d47,!![]);}catch(_0x4db494){return BPromise[_0xe839('0x2f')](_0x4db494);}return _0x17e26e[_0xe839('0x30')]();};}function saveUpdates(_0x170d96,_0x4a6710){return function(_0xfef952){if(_0xfef952){return _0xfef952[_0xe839('0x31')](_0x170d96)['then'](function(_0x1952aa){return _0x1952aa;});}return null;};}function removeEntity(_0x25771b,_0x316fa0){return function(_0x1edf0e){if(_0x1edf0e){return _0x1edf0e[_0xe839('0x32')]()[_0xe839('0x33')](function(){_0x25771b[_0xe839('0x28')](0xcc)['end']();});}};}function handleEntityNotFound(_0xa54fcc,_0x226e1e){return function(_0x140906){if(!_0x140906){_0xa54fcc[_0xe839('0x34')](0x194);}return _0x140906;};}function handleError(_0x63f1b,_0x54268a){_0x54268a=_0x54268a||0x1f4;return function(_0x5124c7){logger['error'](_0x5124c7['stack']);if(_0x5124c7[_0xe839('0x35')]){delete _0x5124c7[_0xe839('0x35')];}_0x63f1b[_0xe839('0x28')](_0x54268a)['send'](_0x5124c7);};}exports['index']=function(_0x399bbd,_0x3e6720){var _0x3e78c1={},_0x280a2f={},_0x308261={'count':0x0,'rows':[]};var _0x40b564=_['map'](db[_0xe839('0x36')]['rawAttributes'],function(_0x290acd){return{'name':_0x290acd[_0xe839('0x37')],'type':_0x290acd[_0xe839('0x38')]['key']};});_0x280a2f[_0xe839('0x39')]=_['map'](_0x40b564,_0xe839('0x35'));_0x280a2f[_0xe839('0x3a')]=_[_0xe839('0x3b')](_0x399bbd[_0xe839('0x3a')]);_0x280a2f[_0xe839('0x3c')]=_[_0xe839('0x3d')](_0x280a2f[_0xe839('0x39')],_0x280a2f[_0xe839('0x3a')]);_0x3e78c1[_0xe839('0x3e')]=_[_0xe839('0x3d')](_0x280a2f[_0xe839('0x39')],qs[_0xe839('0x3f')](_0x399bbd[_0xe839('0x3a')][_0xe839('0x3f')]));_0x3e78c1[_0xe839('0x3e')]=_0x3e78c1['attributes']['length']?_0x3e78c1['attributes']:_0x280a2f['model'];if(!_0x399bbd[_0xe839('0x3a')][_0xe839('0x40')](_0xe839('0x41'))){_0x3e78c1[_0xe839('0x2d')]=qs[_0xe839('0x2d')](_0x399bbd[_0xe839('0x3a')][_0xe839('0x2d')]);_0x3e78c1[_0xe839('0x2c')]=qs[_0xe839('0x2c')](_0x399bbd[_0xe839('0x3a')][_0xe839('0x2c')]);}_0x3e78c1[_0xe839('0x42')]=qs[_0xe839('0x43')](_0x399bbd[_0xe839('0x3a')][_0xe839('0x43')]);_0x3e78c1[_0xe839('0x44')]=qs[_0xe839('0x3c')](_['pick'](_0x399bbd[_0xe839('0x3a')],_0x280a2f['filters']),_0x40b564);if(_0x399bbd[_0xe839('0x3a')][_0xe839('0x45')]){_0x3e78c1[_0xe839('0x44')]=_[_0xe839('0x46')](_0x3e78c1['where'],{'$or':_[_0xe839('0x47')](_0x40b564,function(_0x45f34e){if(_0x45f34e[_0xe839('0x38')]!=='VIRTUAL'){var _0x1455b8={};_0x1455b8[_0x45f34e[_0xe839('0x35')]]={'$like':'%'+_0x399bbd[_0xe839('0x3a')][_0xe839('0x45')]+'%'};return _0x1455b8;}})});}_0x3e78c1=_[_0xe839('0x46')]({},_0x3e78c1,_0x399bbd[_0xe839('0x48')]);var _0x2f40de={'where':_0x3e78c1[_0xe839('0x44')]};return db['Network']['count'](_0x2f40de)[_0xe839('0x33')](function(_0x212ba0){_0x308261[_0xe839('0x2b')]=_0x212ba0;if(_0x399bbd[_0xe839('0x3a')][_0xe839('0x49')]){_0x3e78c1[_0xe839('0x4a')]=[{'all':!![]}];}return db[_0xe839('0x36')][_0xe839('0x4b')](_0x3e78c1);})['then'](function(_0x4d2fe8){_0x308261[_0xe839('0x4c')]=_0x4d2fe8;return _0x308261;})['then'](respondWithFilteredResult(_0x3e6720,_0x3e78c1))[_0xe839('0x27')](handleError(_0x3e6720,null));};exports[_0xe839('0x4d')]=function(_0xd3991,_0x5dd03e){var _0x3bb8c4={'raw':!![],'where':{'id':_0xd3991[_0xe839('0x4e')]['id']}},_0x5be8c1={};_0x5be8c1[_0xe839('0x39')]=_['keys'](db['Network'][_0xe839('0x4f')]);_0x5be8c1['query']=_['keys'](_0xd3991['query']);_0x5be8c1['filters']=_['intersection'](_0x5be8c1[_0xe839('0x39')],_0x5be8c1[_0xe839('0x3a')]);_0x3bb8c4[_0xe839('0x3e')]=_[_0xe839('0x3d')](_0x5be8c1[_0xe839('0x39')],qs[_0xe839('0x3f')](_0xd3991[_0xe839('0x3a')][_0xe839('0x3f')]));_0x3bb8c4[_0xe839('0x3e')]=_0x3bb8c4['attributes'][_0xe839('0x50')]?_0x3bb8c4['attributes']:_0x5be8c1[_0xe839('0x39')];if(_0xd3991[_0xe839('0x3a')]['includeAll']){_0x3bb8c4[_0xe839('0x4a')]=[{'all':!![]}];}_0x3bb8c4=_['merge']({},_0x3bb8c4,_0xd3991[_0xe839('0x48')]);return db[_0xe839('0x36')][_0xe839('0x51')](_0x3bb8c4)['then'](handleEntityNotFound(_0x5dd03e,null))[_0xe839('0x33')](respondWithResult(_0x5dd03e,null))[_0xe839('0x27')](handleError(_0x5dd03e,null));};exports[_0xe839('0x52')]=function(_0x3e1e9b,_0x547ff2,_0x3762cd){var _0x3c406f;return db[_0xe839('0x53')]['transaction'](function(_0x2e4a3e){return db[_0xe839('0x36')][_0xe839('0x52')](_0x3e1e9b[_0xe839('0x54')],{'raw':!![]})['then'](function(_0x4ee212){_0x3c406f=_0x4ee212;return db[_0xe839('0x36')]['findAll']({'where':{'type':_0x3e1e9b[_0xe839('0x54')][_0xe839('0x38')]},'raw':!![]});})['then'](function(_0x57fc0a){if(_0x3c406f[_0xe839('0x38')]['toUpperCase']()==_0xe839('0x55')){var _0x1362d5=fs[_0xe839('0x56')](path[_0xe839('0x57')](config[_0xe839('0x58')],_0xe839('0x59')),_0xe839('0x5a'));var _0x14d411=ejs[_0xe839('0x5b')](_0x1362d5,{'networks':_0x57fc0a||[]});fs[_0xe839('0x5c')](_0xe839('0x5d'),_0x14d411);return respondWithRpcPromise(_0xe839('0x5e'),_0xe839('0x52'),{'module':_0xe839('0x5f')});}else if(_0x3c406f[_0xe839('0x38')][_0xe839('0x60')]()==_0xe839('0x61')){var _0x5d02eb=fs[_0xe839('0x56')](path[_0xe839('0x57')](config['root'],_0xe839('0x62')),_0xe839('0x5a'));var _0x17039b=ejs[_0xe839('0x5b')](_0x5d02eb,{'networks':_0x57fc0a||[]});fs['writeFileSync']('/etc/asterisk/turn_xcally.conf',_0x17039b);return respondWithRpcPromise('Reload',_0xe839('0x52'),{'module':_0xe839('0x5f')});}else{var _0x5ef2e6=fs[_0xe839('0x56')](path['join'](config[_0xe839('0x58')],_0xe839('0x63')),_0xe839('0x5a'));var _0x5130a2=ejs[_0xe839('0x5b')](_0x5ef2e6,{'networks':_0x57fc0a||[]});fs[_0xe839('0x5c')](util['format'](_0xe839('0x64'),_0x3e1e9b[_0xe839('0x54')]['type']['toLowerCase']()),_0x5130a2);return respondWithRpcPromise(_0xe839('0x5e'),_0xe839('0x52'),{'module':_0xe839('0x65')});}return null;})[_0xe839('0x33')](function(){return _0x3c406f;});})['then'](respondWithResult(_0x547ff2,0xc9))[_0xe839('0x27')](handleError(_0x547ff2,null));};exports['update']=function(_0x50e97f,_0x53df9b,_0x1bf290){var _0x44b171;return db[_0xe839('0x53')][_0xe839('0x66')](function(_0x411803){return db[_0xe839('0x36')]['find']({'where':{'id':_0x50e97f[_0xe839('0x4e')]['id']}})[_0xe839('0x33')](handleEntityNotFound(_0x53df9b,null))[_0xe839('0x33')](saveUpdates(_0x50e97f['body'],null))['then'](function(_0x52843b){if(_0x52843b){_0x44b171=_0x52843b;return db[_0xe839('0x36')]['findAll']({'where':{'type':_0x44b171[_0xe839('0x38')]},'raw':!![]});}return null;})[_0xe839('0x33')](function(_0x412699){if(_0x44b171[_0xe839('0x38')][_0xe839('0x60')]()==_0xe839('0x55')){var _0x1ba83d=fs[_0xe839('0x56')](path[_0xe839('0x57')](config[_0xe839('0x58')],'server/files/templates/stun_multiple.ejs'),_0xe839('0x5a'));var _0x1bde31=ejs[_0xe839('0x5b')](_0x1ba83d,{'networks':_0x412699||[]});fs['writeFileSync'](_0xe839('0x5d'),_0x1bde31);return respondWithRpcPromise(_0xe839('0x5e'),_0xe839('0x31'),{'module':_0xe839('0x5f')});}else if(_0x44b171[_0xe839('0x38')]['toUpperCase']()==_0xe839('0x61')){var _0x4e7084=fs[_0xe839('0x56')](path[_0xe839('0x57')](config[_0xe839('0x58')],_0xe839('0x62')),_0xe839('0x5a'));var _0x22b23c=ejs[_0xe839('0x5b')](_0x4e7084,{'networks':_0x412699||[]});fs[_0xe839('0x5c')](_0xe839('0x67'),_0x22b23c);return respondWithRpcPromise(_0xe839('0x5e'),_0xe839('0x31'),{'module':_0xe839('0x5f')});}else{var _0x1040db=fs['readFileSync'](path['join'](config[_0xe839('0x58')],_0xe839('0x63')),_0xe839('0x5a'));var _0x365da2=ejs['render'](_0x1040db,{'networks':_0x412699||[]});fs['writeFileSync'](util[_0xe839('0x68')](_0xe839('0x64'),_0x50e97f['body'][_0xe839('0x38')]['toLowerCase']()),_0x365da2);return respondWithRpcPromise(_0xe839('0x5e'),_0xe839('0x31'),{'module':_0xe839('0x65')});}return null;})['then'](function(_0x42f4d5){if(_0x42f4d5){return _0x44b171;}return null;});})[_0xe839('0x33')](respondWithResult(_0x53df9b,null))['catch'](handleError(_0x53df9b,null));};exports[_0xe839('0x32')]=function(_0x1ba1a0,_0x8e9fc0,_0x556410){var _0x27b122;return db[_0xe839('0x36')][_0xe839('0x51')]({'where':{'id':_0x1ba1a0[_0xe839('0x4e')]['id']}})['then'](function(_0x21a871){_0x27b122=_0x21a871;return _0x21a871;})['then'](handleEntityNotFound(_0x8e9fc0,null))['then'](removeEntity(_0x8e9fc0,null))[_0xe839('0x33')](function(){if(_0x27b122){return db[_0xe839('0x36')][_0xe839('0x4b')]({'where':{'type':_0x27b122['type']},'raw':!![]});}})['then'](function(_0x5a822b){if(_0x27b122[_0xe839('0x38')]['toUpperCase']()=='STUN'){var _0x11c4b2=fs[_0xe839('0x56')](path[_0xe839('0x57')](config[_0xe839('0x58')],_0xe839('0x59')),'utf8');var _0x453d93=ejs[_0xe839('0x5b')](_0x11c4b2,{'networks':_0x5a822b||[]});fs[_0xe839('0x5c')](_0xe839('0x5d'),_0x453d93);return respondWithRpcPromise(_0xe839('0x5e'),'destroy',{'module':_0xe839('0x5f')});}else if(_0x27b122['type'][_0xe839('0x60')]()==_0xe839('0x61')){var _0x2b1c3b=fs[_0xe839('0x56')](path['join'](config[_0xe839('0x58')],_0xe839('0x62')),_0xe839('0x5a'));var _0x362bfa=ejs[_0xe839('0x5b')](_0x2b1c3b,{'networks':_0x5a822b||[]});fs[_0xe839('0x5c')](_0xe839('0x67'),_0x362bfa);return respondWithRpcPromise(_0xe839('0x5e'),_0xe839('0x32'),{'module':_0xe839('0x5f')});}else{var _0xb5fdc9=fs[_0xe839('0x56')](path[_0xe839('0x57')](config[_0xe839('0x58')],_0xe839('0x63')),_0xe839('0x5a'));var _0x4a2bbe=ejs[_0xe839('0x5b')](_0xb5fdc9,{'networks':_0x5a822b||[]});fs[_0xe839('0x5c')](util[_0xe839('0x68')]('/etc/asterisk/sip_xcally_%s.conf',_0x1ba1a0[_0xe839('0x54')][_0xe839('0x38')][_0xe839('0x69')]()),_0x4a2bbe);return respondWithRpcPromise(_0xe839('0x5e'),'destroy',{'module':'chan_sip.so'});}return null;})[_0xe839('0x27')](handleError(_0x8e9fc0,null));};