Built motion from commit (unavailable).|2.5.1
[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 _0xb100=['fast-json-patch','request-promise','moment','mustache','path','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/environment','../../mysqldb','jayson/promise','client','http','Sequelize','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~!@#$%^&-_=+[{]}.','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','update','then','destroy','stack','name','send','index','map','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','merge','VIRTUAL','filter','options','Network','includeAll','include','findAll','rows','show','params','rawAttributes','find','sequelize','transaction','create','body','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','writeFileSync','Reload','res_stun_monitor.so','toUpperCase','TURN','server/files/templates/turn_multiple.ejs','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','render','format','toLowerCase','chan_sip.so','STUN','/etc/asterisk/stun_xcally.conf','/etc/asterisk/sip_xcally_%s.conf','html-pdf','eml-format','rimraf','zip-dir'];(function(_0x38a326,_0x48003c){var _0xe1b9e5=function(_0x47a069){while(--_0x47a069){_0x38a326['push'](_0x38a326['shift']());}};_0xe1b9e5(++_0x48003c);}(_0xb100,0x143));var _0x0b10=function(_0x25451a,_0x11c823){_0x25451a=_0x25451a-0x0;var _0x20a8aa=_0xb100[_0x25451a];return _0x20a8aa;};'use strict';var pdf=require(_0x0b10('0x0'));var emlformat=require(_0x0b10('0x1'));var rimraf=require(_0x0b10('0x2'));var zipdir=require(_0x0b10('0x3'));var jsonpatch=require(_0x0b10('0x4'));var rp=require(_0x0b10('0x5'));var moment=require(_0x0b10('0x6'));var BPromise=require('bluebird');var Mustache=require(_0x0b10('0x7'));var util=require('util');var path=require(_0x0b10('0x8'));var sox=require('sox');var csv=require(_0x0b10('0x9'));var ejs=require(_0x0b10('0xa'));var fs=require('fs');var _=require(_0x0b10('0xb'));var squel=require('squel');var crypto=require(_0x0b10('0xc'));var jsforce=require(_0x0b10('0xd'));var deskjs=require(_0x0b10('0xe'));var toCsv=require(_0x0b10('0x9'));var querystring=require(_0x0b10('0xf'));var Papa=require(_0x0b10('0x10'));var Redis=require(_0x0b10('0x11'));var authService=require(_0x0b10('0x12'));var qs=require(_0x0b10('0x13'));var as=require(_0x0b10('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x0b10('0x15'));var db=require(_0x0b10('0x16'))['db'];var jayson=require(_0x0b10('0x17'));var client=jayson[_0x0b10('0x18')][_0x0b10('0x19')]({'port':0x232a});function checkPasswordPattern(_0x169fdc,_0x568b8f,_0x4b3291){if(_0x4b3291){var _0x390482=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x390482['test'](_0x568b8f)){return _0x169fdc;}else{throw new db[(_0x0b10('0x1a'))][(_0x0b10('0x1b'))](_0x0b10('0x1c'));}}else{return _0x169fdc;}}function respondWithRpcPromise(_0x3381f6,_0x27b886,_0x30ede5,_0x2813d3){return new BPromise(function(_0x51a57d,_0x51c26f){var _0x40cdcb=_0x2813d3||client;return _0x40cdcb['request'](_0x3381f6,_0x30ede5)['then'](function(_0x19b6c3){logger[_0x0b10('0x1d')](_0x0b10('0x1e'),_0x27b886,_0x0b10('0x1f'));logger[_0x0b10('0x20')](_0x0b10('0x21'),_0x27b886,_0x0b10('0x1f'),JSON[_0x0b10('0x22')](_0x19b6c3));if(_0x19b6c3['error']){if(_0x19b6c3['error']['code']===0x1f4){logger['error'](_0x0b10('0x1e'),_0x27b886,_0x19b6c3[_0x0b10('0x23')][_0x0b10('0x24')]);return _0x51c26f(_0x19b6c3['error']['message']);}logger['error'](_0x0b10('0x1e'),_0x27b886,_0x19b6c3[_0x0b10('0x23')][_0x0b10('0x24')]);return _0x51a57d(_0x19b6c3['error']['message']);}else{logger[_0x0b10('0x1d')](_0x0b10('0x1e'),_0x27b886,_0x0b10('0x1f'));_0x51a57d(_0x19b6c3[_0x0b10('0x25')][_0x0b10('0x24')]);}})[_0x0b10('0x26')](function(_0x2ee4ff){logger[_0x0b10('0x23')](_0x0b10('0x1e'),_0x27b886,_0x2ee4ff);_0x51c26f(_0x2ee4ff);});});}function respondWithStatusCode(_0x44b980,_0x3ca6da){_0x3ca6da=_0x3ca6da||0xcc;return function(_0xe12289){if(_0xe12289){return _0x44b980[_0x0b10('0x27')](_0x3ca6da);}return _0x44b980[_0x0b10('0x28')](_0x3ca6da)[_0x0b10('0x29')]();};}function respondWithResult(_0x517f19,_0x55a40e){_0x55a40e=_0x55a40e||0xc8;return function(_0x563b72){if(_0x563b72){return _0x517f19[_0x0b10('0x28')](_0x55a40e)[_0x0b10('0x2a')](_0x563b72);}};}function respondWithFilteredResult(_0x3646ba,_0x3e04e6){return function(_0x4b4897){if(_0x4b4897){var _0x483084=_0x4b4897[_0x0b10('0x2b')],_0x281179=_0x3e04e6[_0x0b10('0x2c')],_0x3df18d=_0x3e04e6[_0x0b10('0x2c')]+_0x3e04e6[_0x0b10('0x2d')],_0x5efbe9;if(_0x3df18d>=_0x483084){_0x3df18d=_0x483084;_0x5efbe9=0xc8;}else{_0x5efbe9=0xce;}_0x3646ba[_0x0b10('0x28')](_0x5efbe9);return _0x3646ba[_0x0b10('0x2e')](_0x0b10('0x2f'),_0x281179+'-'+_0x3df18d+'/'+_0x483084)[_0x0b10('0x2a')](_0x4b4897);}return null;};}function patchUpdates(_0x1b54cd){return function(_0x4b1685){try{jsonpatch[_0x0b10('0x30')](_0x4b1685,_0x1b54cd,!![]);}catch(_0x535e73){return BPromise['reject'](_0x535e73);}return _0x4b1685['save']();};}function saveUpdates(_0x4b2efb,_0x1042fa){return function(_0x1fde63){if(_0x1fde63){return _0x1fde63[_0x0b10('0x31')](_0x4b2efb)[_0x0b10('0x32')](function(_0xf29d2c){return _0xf29d2c;});}return null;};}function removeEntity(_0x49ec24,_0x4ac7b2){return function(_0x33ece6){if(_0x33ece6){return _0x33ece6[_0x0b10('0x33')]()['then'](function(){_0x49ec24['status'](0xcc)[_0x0b10('0x29')]();});}};}function handleEntityNotFound(_0x1dfa49,_0x3e3f2a){return function(_0x2e7d8e){if(!_0x2e7d8e){_0x1dfa49[_0x0b10('0x27')](0x194);}return _0x2e7d8e;};}function handleError(_0x403f7f,_0x5f1dac){_0x5f1dac=_0x5f1dac||0x1f4;return function(_0xbe8b5d){logger[_0x0b10('0x23')](_0xbe8b5d[_0x0b10('0x34')]);if(_0xbe8b5d[_0x0b10('0x35')]){delete _0xbe8b5d['name'];}_0x403f7f['status'](_0x5f1dac)[_0x0b10('0x36')](_0xbe8b5d);};}exports[_0x0b10('0x37')]=function(_0x5ca996,_0x3c2df5){var _0xf7c769={},_0x21ddc8={},_0xfec06={'count':0x0,'rows':[]};var _0x1d844f=_[_0x0b10('0x38')](db['Network']['rawAttributes'],function(_0x597bca){return{'name':_0x597bca[_0x0b10('0x39')],'type':_0x597bca[_0x0b10('0x3a')]['key']};});_0x21ddc8[_0x0b10('0x3b')]=_[_0x0b10('0x38')](_0x1d844f,'name');_0x21ddc8[_0x0b10('0x3c')]=_[_0x0b10('0x3d')](_0x5ca996[_0x0b10('0x3c')]);_0x21ddc8['filters']=_[_0x0b10('0x3e')](_0x21ddc8[_0x0b10('0x3b')],_0x21ddc8['query']);_0xf7c769[_0x0b10('0x3f')]=_[_0x0b10('0x3e')](_0x21ddc8[_0x0b10('0x3b')],qs[_0x0b10('0x40')](_0x5ca996[_0x0b10('0x3c')][_0x0b10('0x40')]));_0xf7c769[_0x0b10('0x3f')]=_0xf7c769[_0x0b10('0x3f')][_0x0b10('0x41')]?_0xf7c769['attributes']:_0x21ddc8[_0x0b10('0x3b')];if(!_0x5ca996[_0x0b10('0x3c')][_0x0b10('0x42')](_0x0b10('0x43'))){_0xf7c769[_0x0b10('0x2d')]=qs[_0x0b10('0x2d')](_0x5ca996[_0x0b10('0x3c')][_0x0b10('0x2d')]);_0xf7c769['offset']=qs[_0x0b10('0x2c')](_0x5ca996[_0x0b10('0x3c')][_0x0b10('0x2c')]);}_0xf7c769['order']=qs[_0x0b10('0x44')](_0x5ca996[_0x0b10('0x3c')][_0x0b10('0x44')]);_0xf7c769[_0x0b10('0x45')]=qs[_0x0b10('0x46')](_[_0x0b10('0x47')](_0x5ca996[_0x0b10('0x3c')],_0x21ddc8[_0x0b10('0x46')]),_0x1d844f);if(_0x5ca996[_0x0b10('0x3c')]['filter']){_0xf7c769[_0x0b10('0x45')]=_[_0x0b10('0x48')](_0xf7c769[_0x0b10('0x45')],{'$or':_[_0x0b10('0x38')](_0x1d844f,function(_0x49f1c0){if(_0x49f1c0[_0x0b10('0x3a')]!==_0x0b10('0x49')){var _0x3a089f={};_0x3a089f[_0x49f1c0['name']]={'$like':'%'+_0x5ca996[_0x0b10('0x3c')][_0x0b10('0x4a')]+'%'};return _0x3a089f;}})});}_0xf7c769=_['merge']({},_0xf7c769,_0x5ca996[_0x0b10('0x4b')]);var _0xf0bc3c={'where':_0xf7c769[_0x0b10('0x45')]};return db[_0x0b10('0x4c')][_0x0b10('0x2b')](_0xf0bc3c)[_0x0b10('0x32')](function(_0x4b9dc3){_0xfec06[_0x0b10('0x2b')]=_0x4b9dc3;if(_0x5ca996[_0x0b10('0x3c')][_0x0b10('0x4d')]){_0xf7c769[_0x0b10('0x4e')]=[{'all':!![]}];}return db[_0x0b10('0x4c')][_0x0b10('0x4f')](_0xf7c769);})[_0x0b10('0x32')](function(_0x1996fc){_0xfec06[_0x0b10('0x50')]=_0x1996fc;return _0xfec06;})[_0x0b10('0x32')](respondWithFilteredResult(_0x3c2df5,_0xf7c769))[_0x0b10('0x26')](handleError(_0x3c2df5,null));};exports[_0x0b10('0x51')]=function(_0x499f82,_0x352d1a){var _0x13a87f={'raw':!![],'where':{'id':_0x499f82[_0x0b10('0x52')]['id']}},_0x594e79={};_0x594e79[_0x0b10('0x3b')]=_[_0x0b10('0x3d')](db[_0x0b10('0x4c')][_0x0b10('0x53')]);_0x594e79[_0x0b10('0x3c')]=_[_0x0b10('0x3d')](_0x499f82[_0x0b10('0x3c')]);_0x594e79[_0x0b10('0x46')]=_[_0x0b10('0x3e')](_0x594e79['model'],_0x594e79[_0x0b10('0x3c')]);_0x13a87f[_0x0b10('0x3f')]=_[_0x0b10('0x3e')](_0x594e79['model'],qs[_0x0b10('0x40')](_0x499f82[_0x0b10('0x3c')]['fields']));_0x13a87f[_0x0b10('0x3f')]=_0x13a87f['attributes'][_0x0b10('0x41')]?_0x13a87f[_0x0b10('0x3f')]:_0x594e79[_0x0b10('0x3b')];if(_0x499f82[_0x0b10('0x3c')][_0x0b10('0x4d')]){_0x13a87f[_0x0b10('0x4e')]=[{'all':!![]}];}_0x13a87f=_[_0x0b10('0x48')]({},_0x13a87f,_0x499f82[_0x0b10('0x4b')]);return db[_0x0b10('0x4c')][_0x0b10('0x54')](_0x13a87f)['then'](handleEntityNotFound(_0x352d1a,null))[_0x0b10('0x32')](respondWithResult(_0x352d1a,null))[_0x0b10('0x26')](handleError(_0x352d1a,null));};exports['create']=function(_0x3c8531,_0x34f26b,_0x3a9e5b){var _0x590c8d;return db[_0x0b10('0x55')][_0x0b10('0x56')](function(_0x416895){return db[_0x0b10('0x4c')][_0x0b10('0x57')](_0x3c8531[_0x0b10('0x58')],{'raw':!![]})['then'](function(_0x56bda1){_0x590c8d=_0x56bda1;return db[_0x0b10('0x4c')][_0x0b10('0x4f')]({'where':{'type':_0x3c8531['body']['type']},'raw':!![]});})['then'](function(_0x25b12c){if(_0x590c8d[_0x0b10('0x3a')]['toUpperCase']()=='STUN'){var _0x25bcf7=fs[_0x0b10('0x59')](path[_0x0b10('0x5a')](config[_0x0b10('0x5b')],_0x0b10('0x5c')),_0x0b10('0x5d'));var _0x1548cf=ejs['render'](_0x25bcf7,{'networks':_0x25b12c||[]});fs[_0x0b10('0x5e')]('/etc/asterisk/stun_xcally.conf',_0x1548cf);return respondWithRpcPromise(_0x0b10('0x5f'),'create',{'module':_0x0b10('0x60')});}else if(_0x590c8d[_0x0b10('0x3a')][_0x0b10('0x61')]()==_0x0b10('0x62')){var _0x5ef44b=fs['readFileSync'](path[_0x0b10('0x5a')](config[_0x0b10('0x5b')],_0x0b10('0x63')),'utf8');var _0x1df44e=ejs['render'](_0x5ef44b,{'networks':_0x25b12c||[]});fs[_0x0b10('0x5e')](_0x0b10('0x64'),_0x1df44e);return respondWithRpcPromise('Reload',_0x0b10('0x57'),{'module':'res_stun_monitor.so'});}else{var _0x3b2388=fs[_0x0b10('0x59')](path['join'](config[_0x0b10('0x5b')],_0x0b10('0x65')),_0x0b10('0x5d'));var _0x5e4a5f=ejs[_0x0b10('0x66')](_0x3b2388,{'networks':_0x25b12c||[]});fs['writeFileSync'](util[_0x0b10('0x67')]('/etc/asterisk/sip_xcally_%s.conf',_0x3c8531[_0x0b10('0x58')][_0x0b10('0x3a')][_0x0b10('0x68')]()),_0x5e4a5f);return respondWithRpcPromise(_0x0b10('0x5f'),_0x0b10('0x57'),{'module':_0x0b10('0x69')});}return null;})[_0x0b10('0x32')](function(){return _0x590c8d;});})[_0x0b10('0x32')](respondWithResult(_0x34f26b,0xc9))['catch'](handleError(_0x34f26b,null));};exports['update']=function(_0x3225cb,_0x4ba5e7,_0x1038ab){var _0x39d1b4;return db[_0x0b10('0x55')]['transaction'](function(_0x1b3fb2){return db['Network'][_0x0b10('0x54')]({'where':{'id':_0x3225cb[_0x0b10('0x52')]['id']}})['then'](handleEntityNotFound(_0x4ba5e7,null))[_0x0b10('0x32')](saveUpdates(_0x3225cb['body'],null))[_0x0b10('0x32')](function(_0x473ecc){if(_0x473ecc){_0x39d1b4=_0x473ecc;return db[_0x0b10('0x4c')][_0x0b10('0x4f')]({'where':{'type':_0x39d1b4[_0x0b10('0x3a')]},'raw':!![]});}return null;})[_0x0b10('0x32')](function(_0x42ce4c){if(_0x39d1b4[_0x0b10('0x3a')][_0x0b10('0x61')]()==_0x0b10('0x6a')){var _0x3a1e25=fs[_0x0b10('0x59')](path[_0x0b10('0x5a')](config[_0x0b10('0x5b')],_0x0b10('0x5c')),'utf8');var _0x29fc06=ejs['render'](_0x3a1e25,{'networks':_0x42ce4c||[]});fs[_0x0b10('0x5e')](_0x0b10('0x6b'),_0x29fc06);return respondWithRpcPromise(_0x0b10('0x5f'),_0x0b10('0x31'),{'module':'res_stun_monitor.so'});}else if(_0x39d1b4[_0x0b10('0x3a')][_0x0b10('0x61')]()=='TURN'){var _0xbdc55a=fs[_0x0b10('0x59')](path['join'](config[_0x0b10('0x5b')],'server/files/templates/turn_multiple.ejs'),_0x0b10('0x5d'));var _0x56be08=ejs[_0x0b10('0x66')](_0xbdc55a,{'networks':_0x42ce4c||[]});fs[_0x0b10('0x5e')](_0x0b10('0x64'),_0x56be08);return respondWithRpcPromise('Reload',_0x0b10('0x31'),{'module':_0x0b10('0x60')});}else{var _0x17129a=fs['readFileSync'](path[_0x0b10('0x5a')](config['root'],_0x0b10('0x65')),_0x0b10('0x5d'));var _0x15b6b4=ejs['render'](_0x17129a,{'networks':_0x42ce4c||[]});fs[_0x0b10('0x5e')](util[_0x0b10('0x67')](_0x0b10('0x6c'),_0x3225cb[_0x0b10('0x58')]['type'][_0x0b10('0x68')]()),_0x15b6b4);return respondWithRpcPromise(_0x0b10('0x5f'),_0x0b10('0x31'),{'module':_0x0b10('0x69')});}return null;})[_0x0b10('0x32')](function(_0xcd6840){if(_0xcd6840){return _0x39d1b4;}return null;});})[_0x0b10('0x32')](respondWithResult(_0x4ba5e7,null))[_0x0b10('0x26')](handleError(_0x4ba5e7,null));};exports[_0x0b10('0x33')]=function(_0x52563b,_0x2627c0,_0x1b97ad){var _0x43cfcf;return db[_0x0b10('0x4c')][_0x0b10('0x54')]({'where':{'id':_0x52563b[_0x0b10('0x52')]['id']}})[_0x0b10('0x32')](function(_0x57f02e){_0x43cfcf=_0x57f02e;return _0x57f02e;})[_0x0b10('0x32')](handleEntityNotFound(_0x2627c0,null))[_0x0b10('0x32')](removeEntity(_0x2627c0,null))['then'](function(){if(_0x43cfcf){return db[_0x0b10('0x4c')][_0x0b10('0x4f')]({'where':{'type':_0x43cfcf[_0x0b10('0x3a')]},'raw':!![]});}})[_0x0b10('0x32')](function(_0x2c14f8){if(_0x43cfcf[_0x0b10('0x3a')][_0x0b10('0x61')]()==_0x0b10('0x6a')){var _0x1280dc=fs[_0x0b10('0x59')](path[_0x0b10('0x5a')](config[_0x0b10('0x5b')],_0x0b10('0x5c')),_0x0b10('0x5d'));var _0x45e72d=ejs['render'](_0x1280dc,{'networks':_0x2c14f8||[]});fs['writeFileSync'](_0x0b10('0x6b'),_0x45e72d);return respondWithRpcPromise('Reload','destroy',{'module':_0x0b10('0x60')});}else if(_0x43cfcf['type'][_0x0b10('0x61')]()==_0x0b10('0x62')){var _0x193fc7=fs[_0x0b10('0x59')](path[_0x0b10('0x5a')](config[_0x0b10('0x5b')],'server/files/templates/turn_multiple.ejs'),'utf8');var _0x3a984b=ejs[_0x0b10('0x66')](_0x193fc7,{'networks':_0x2c14f8||[]});fs[_0x0b10('0x5e')](_0x0b10('0x64'),_0x3a984b);return respondWithRpcPromise(_0x0b10('0x5f'),_0x0b10('0x33'),{'module':_0x0b10('0x60')});}else{var _0x33bde3=fs[_0x0b10('0x59')](path['join'](config[_0x0b10('0x5b')],_0x0b10('0x65')),_0x0b10('0x5d'));var _0xf6b2cb=ejs[_0x0b10('0x66')](_0x33bde3,{'networks':_0x2c14f8||[]});fs[_0x0b10('0x5e')](util['format']('/etc/asterisk/sip_xcally_%s.conf',_0x52563b[_0x0b10('0x58')][_0x0b10('0x3a')][_0x0b10('0x68')]()),_0xf6b2cb);return respondWithRpcPromise(_0x0b10('0x5f'),_0x0b10('0x33'),{'module':'chan_sip.so'});}return null;})[_0x0b10('0x26')](handleError(_0x2627c0,null));};