09b82d5c7df2266033d44f6ca28aec5654b95649
[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 _0x992b=['hasOwnProperty','nolimit','sort','where','filters','filter','merge','map','type','key','VIRTUAL','field','options','Network','findAll','rows','show','params','includeAll','include','create','sequelize','body','join','root','utf8','render','writeFileSync','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','Reload','chan_sip.so','transaction','find','readFileSync','destroy','server/files/templates/network.ejs','html-pdf','eml-format','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','jayson/promise','client','http','request','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','apply','save','update','stack','name','send','index','rawAttributes','model','query','keys','intersection','attributes','fields','length'];(function(_0x56616e,_0x2f036b){var _0x5b7d95=function(_0x593254){while(--_0x593254){_0x56616e['push'](_0x56616e['shift']());}};_0x5b7d95(++_0x2f036b);}(_0x992b,0x149));var _0xb992=function(_0x5ed506,_0x530e00){_0x5ed506=_0x5ed506-0x0;var _0x3845d4=_0x992b[_0x5ed506];return _0x3845d4;};'use strict';var pdf=require(_0xb992('0x0'));var emlformat=require(_0xb992('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xb992('0x2'));var rp=require('request-promise');var moment=require(_0xb992('0x3'));var BPromise=require(_0xb992('0x4'));var Mustache=require(_0xb992('0x5'));var util=require(_0xb992('0x6'));var path=require(_0xb992('0x7'));var sox=require(_0xb992('0x8'));var csv=require(_0xb992('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xb992('0xa'));var squel=require(_0xb992('0xb'));var crypto=require('crypto');var jsforce=require(_0xb992('0xc'));var deskjs=require(_0xb992('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xb992('0xe'));var Redis=require(_0xb992('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xb992('0x10'));var hardwareService=require(_0xb992('0x11'));var logger=require('../../config/logger')(_0xb992('0x12'));var utils=require(_0xb992('0x13'));var config=require(_0xb992('0x14'));var db=require('../../mysqldb')['db'];var jayson=require(_0xb992('0x15'));var client=jayson[_0xb992('0x16')][_0xb992('0x17')]({'port':0x232a});function checkPasswordPattern(_0x81c87e,_0x1b9f44,_0x4ed8dd){if(_0x4ed8dd){var _0x53d8fb=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x53d8fb['test'](_0x1b9f44)){return _0x81c87e;}else{throw new Error('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 _0x81c87e;}}function respondWithRpcPromise(_0x19757b,_0x5523ca,_0xc651e5,_0x11b3e9){return new BPromise(function(_0x11095a,_0x51ec37){var _0x1fe5d4=_0x11b3e9||client;return _0x1fe5d4[_0xb992('0x18')](_0x19757b,_0xc651e5)[_0xb992('0x19')](function(_0x47b0cf){logger[_0xb992('0x1a')](_0xb992('0x1b'),_0x5523ca,_0xb992('0x1c'));logger[_0xb992('0x1d')](_0xb992('0x1e'),_0x5523ca,_0xb992('0x1c'),JSON['stringify'](_0x47b0cf));if(_0x47b0cf['error']){if(_0x47b0cf[_0xb992('0x1f')][_0xb992('0x20')]===0x1f4){logger[_0xb992('0x1f')](_0xb992('0x1b'),_0x5523ca,_0x47b0cf[_0xb992('0x1f')][_0xb992('0x21')]);return _0x51ec37(_0x47b0cf['error'][_0xb992('0x21')]);}logger['error'](_0xb992('0x1b'),_0x5523ca,_0x47b0cf[_0xb992('0x1f')][_0xb992('0x21')]);return _0x11095a(_0x47b0cf[_0xb992('0x1f')][_0xb992('0x21')]);}else{logger[_0xb992('0x1a')](_0xb992('0x1b'),_0x5523ca,'request\x20sent');_0x11095a(_0x47b0cf[_0xb992('0x22')][_0xb992('0x21')]);}})[_0xb992('0x23')](function(_0x30a33d){logger['error'](_0xb992('0x1b'),_0x5523ca,_0x30a33d);_0x51ec37(_0x30a33d);});});}function respondWithStatusCode(_0xcdd331,_0x5a4bbb){_0x5a4bbb=_0x5a4bbb||0xcc;return function(_0x5779c6){if(_0x5779c6){return _0xcdd331[_0xb992('0x24')](_0x5a4bbb);}return _0xcdd331[_0xb992('0x25')](_0x5a4bbb)[_0xb992('0x26')]();};}function respondWithResult(_0x75243c,_0x31c655){_0x31c655=_0x31c655||0xc8;return function(_0x5c0c00){if(_0x5c0c00){return _0x75243c['status'](_0x31c655)[_0xb992('0x27')](_0x5c0c00);}};}function respondWithFilteredResult(_0x286b39,_0x428409){return function(_0x54713a){if(_0x54713a){var _0x182704=_0x54713a[_0xb992('0x28')],_0x5e9016=_0x428409['offset'],_0x8963a3=_0x428409[_0xb992('0x29')]+_0x428409[_0xb992('0x2a')],_0x4396dd;if(_0x8963a3>=_0x182704){_0x8963a3=_0x182704;_0x4396dd=0xc8;}else{_0x4396dd=0xce;}_0x286b39[_0xb992('0x25')](_0x4396dd);return _0x286b39[_0xb992('0x2b')]('Content-Range',_0x5e9016+'-'+_0x8963a3+'/'+_0x182704)['json'](_0x54713a);}return null;};}function patchUpdates(_0x151a5e){return function(_0x3906bb){try{jsonpatch[_0xb992('0x2c')](_0x3906bb,_0x151a5e,!![]);}catch(_0x13f5c3){return BPromise['reject'](_0x13f5c3);}return _0x3906bb[_0xb992('0x2d')]();};}function saveUpdates(_0xcf39bc,_0x37957a){return function(_0x3de26a){if(_0x3de26a){return _0x3de26a[_0xb992('0x2e')](_0xcf39bc)['then'](function(_0x9718f4){return _0x9718f4;});}return null;};}function removeEntity(_0x4d11b5,_0x2cae36){return function(_0x506b12){if(_0x506b12){return _0x506b12['destroy']()[_0xb992('0x19')](function(){_0x4d11b5[_0xb992('0x25')](0xcc)['end']();});}};}function handleEntityNotFound(_0xf855f8,_0x51f792){return function(_0x19a306){if(!_0x19a306){_0xf855f8[_0xb992('0x24')](0x194);}return _0x19a306;};}function handleError(_0x317acb,_0x2bd1ec){_0x2bd1ec=_0x2bd1ec||0x1f4;return function(_0xf41009){logger[_0xb992('0x1f')](_0xf41009[_0xb992('0x2f')]);if(_0xf41009[_0xb992('0x30')]){delete _0xf41009[_0xb992('0x30')];}_0x317acb[_0xb992('0x25')](_0x2bd1ec)[_0xb992('0x31')](_0xf41009);};}exports[_0xb992('0x32')]=function(_0x5df6b5,_0x3240cd){var _0x41e933={},_0x3f22b7={},_0x571e07={'count':0x0,'rows':[]};var _0x2ca177=db['Network'][_0xb992('0x33')];_0x3f22b7[_0xb992('0x34')]=_['keys'](_0x2ca177);_0x3f22b7[_0xb992('0x35')]=_[_0xb992('0x36')](_0x5df6b5[_0xb992('0x35')]);_0x3f22b7['filters']=_[_0xb992('0x37')](_0x3f22b7[_0xb992('0x34')],_0x3f22b7[_0xb992('0x35')]);_0x41e933[_0xb992('0x38')]=_[_0xb992('0x37')](_0x3f22b7['model'],qs[_0xb992('0x39')](_0x5df6b5[_0xb992('0x35')][_0xb992('0x39')]));_0x41e933[_0xb992('0x38')]=_0x41e933['attributes'][_0xb992('0x3a')]?_0x41e933['attributes']:_0x3f22b7[_0xb992('0x34')];if(!_0x5df6b5[_0xb992('0x35')][_0xb992('0x3b')](_0xb992('0x3c'))){_0x41e933['limit']=qs[_0xb992('0x2a')](_0x5df6b5[_0xb992('0x35')][_0xb992('0x2a')]);_0x41e933[_0xb992('0x29')]=qs['offset'](_0x5df6b5['query'][_0xb992('0x29')]);}_0x41e933['order']=qs[_0xb992('0x3d')](_0x5df6b5['query'][_0xb992('0x3d')]);_0x41e933[_0xb992('0x3e')]=qs[_0xb992('0x3f')](_['pick'](_0x5df6b5[_0xb992('0x35')],_0x3f22b7['filters']));if(_0x5df6b5['query'][_0xb992('0x40')]){_0x41e933[_0xb992('0x3e')]=_[_0xb992('0x41')](_0x41e933['where'],{'$or':_[_0xb992('0x42')](_0x2ca177,function(_0x2e330f){if(_0x2e330f[_0xb992('0x43')][_0xb992('0x44')]!==_0xb992('0x45')){var _0x3977be={};_0x3977be[_0x2e330f[_0xb992('0x46')]]={'$like':'%'+_0x5df6b5[_0xb992('0x35')][_0xb992('0x40')]+'%'};return _0x3977be;}})});}_0x41e933=_[_0xb992('0x41')]({},_0x41e933,_0x5df6b5[_0xb992('0x47')]);var _0x270b16={'where':_0x41e933['where']};return db[_0xb992('0x48')]['count'](_0x270b16)[_0xb992('0x19')](function(_0x33d7a2){_0x571e07['count']=_0x33d7a2;if(_0x5df6b5['query']['includeAll']){_0x41e933['include']=[{'all':!![]}];}return db['Network'][_0xb992('0x49')](_0x41e933);})[_0xb992('0x19')](function(_0x1c6a1f){_0x571e07[_0xb992('0x4a')]=_0x1c6a1f;return _0x571e07;})[_0xb992('0x19')](respondWithFilteredResult(_0x3240cd,_0x41e933))[_0xb992('0x23')](handleError(_0x3240cd,null));};exports[_0xb992('0x4b')]=function(_0x40f3c8,_0xb600f2){var _0x54b179={'raw':!![],'where':{'id':_0x40f3c8[_0xb992('0x4c')]['id']}},_0x5d78db={};_0x5d78db[_0xb992('0x34')]=_['keys'](db[_0xb992('0x48')][_0xb992('0x33')]);_0x5d78db['query']=_[_0xb992('0x36')](_0x40f3c8[_0xb992('0x35')]);_0x5d78db[_0xb992('0x3f')]=_[_0xb992('0x37')](_0x5d78db[_0xb992('0x34')],_0x5d78db[_0xb992('0x35')]);_0x54b179[_0xb992('0x38')]=_[_0xb992('0x37')](_0x5d78db[_0xb992('0x34')],qs[_0xb992('0x39')](_0x40f3c8[_0xb992('0x35')][_0xb992('0x39')]));_0x54b179[_0xb992('0x38')]=_0x54b179[_0xb992('0x38')]['length']?_0x54b179[_0xb992('0x38')]:_0x5d78db['model'];if(_0x40f3c8[_0xb992('0x35')][_0xb992('0x4d')]){_0x54b179[_0xb992('0x4e')]=[{'all':!![]}];}_0x54b179=_[_0xb992('0x41')]({},_0x54b179,_0x40f3c8['options']);return db['Network']['find'](_0x54b179)[_0xb992('0x19')](handleEntityNotFound(_0xb600f2,null))[_0xb992('0x19')](respondWithResult(_0xb600f2,null))[_0xb992('0x23')](handleError(_0xb600f2,null));};exports[_0xb992('0x4f')]=function(_0x4452a8,_0x5bd94b,_0x4cce43){var _0x29fd69;return db[_0xb992('0x50')]['transaction'](function(_0x45e6b4){return db[_0xb992('0x48')][_0xb992('0x4f')](_0x4452a8[_0xb992('0x51')],{'raw':!![]})[_0xb992('0x19')](function(_0x1268f3){_0x29fd69=_0x1268f3;return db[_0xb992('0x48')]['findAll']({'where':{'type':_0x4452a8[_0xb992('0x51')][_0xb992('0x43')]},'raw':!![]});})[_0xb992('0x19')](function(_0x5e4da7){var _0x1ac1db=fs['readFileSync'](path[_0xb992('0x52')](config[_0xb992('0x53')],'server/files/templates/network.ejs'),_0xb992('0x54'));var _0x1e83b9=ejs[_0xb992('0x55')](_0x1ac1db,{'networks':_0x5e4da7||[]});fs[_0xb992('0x56')](util[_0xb992('0x57')](_0xb992('0x58'),_0x4452a8['body']['type'][_0xb992('0x59')]()),_0x1e83b9);})[_0xb992('0x19')](function(){return respondWithRpcPromise(_0xb992('0x5a'),_0xb992('0x4f'),{'module':_0xb992('0x5b')});})[_0xb992('0x19')](function(){return _0x29fd69;});})[_0xb992('0x19')](respondWithResult(_0x5bd94b,0xc9))['catch'](handleError(_0x5bd94b,null));};exports['update']=function(_0x28a5b9,_0x5fe4d3,_0x4f12c5){var _0x2e8502;return db['sequelize'][_0xb992('0x5c')](function(_0x1f56c3){return db['Network'][_0xb992('0x5d')]({'where':{'id':_0x28a5b9[_0xb992('0x4c')]['id']}})[_0xb992('0x19')](handleEntityNotFound(_0x5fe4d3,null))[_0xb992('0x19')](saveUpdates(_0x28a5b9[_0xb992('0x51')],null))['then'](function(_0x5af98a){if(_0x5af98a){_0x2e8502=_0x5af98a;return db[_0xb992('0x48')]['findAll']({'where':{'type':_0x2e8502[_0xb992('0x43')]},'raw':!![]});}return null;})[_0xb992('0x19')](function(_0x49df29){if(_0x49df29){var _0x1df8e8=fs[_0xb992('0x5e')](path[_0xb992('0x52')](config[_0xb992('0x53')],'server/files/templates/network.ejs'),'utf8');var _0x2d5724=ejs[_0xb992('0x55')](_0x1df8e8,{'networks':_0x49df29||[]});fs[_0xb992('0x56')](util[_0xb992('0x57')]('/etc/asterisk/sip_xcally_%s.conf',_0x2e8502['type'][_0xb992('0x59')]()),_0x2d5724);return respondWithRpcPromise(_0xb992('0x5a'),_0xb992('0x2e'),{'module':_0xb992('0x5b')});}return null;})[_0xb992('0x19')](function(_0x253523){if(_0x253523){return _0x2e8502;}return null;});})[_0xb992('0x19')](respondWithResult(_0x5fe4d3,null))[_0xb992('0x23')](handleError(_0x5fe4d3,null));};exports[_0xb992('0x5f')]=function(_0x2ef433,_0xb0647d,_0x287ff8){var _0xb25cde;return db[_0xb992('0x48')][_0xb992('0x5d')]({'where':{'id':_0x2ef433[_0xb992('0x4c')]['id']}})[_0xb992('0x19')](function(_0x1e0b42){_0xb25cde=_0x1e0b42;return _0x1e0b42;})[_0xb992('0x19')](handleEntityNotFound(_0xb0647d,null))[_0xb992('0x19')](removeEntity(_0xb0647d,null))[_0xb992('0x19')](function(){if(_0xb25cde){return db[_0xb992('0x48')][_0xb992('0x49')]({'where':{'type':_0xb25cde[_0xb992('0x43')]},'raw':!![]});}})[_0xb992('0x19')](function(_0x4798c6){if(_0x4798c6){var _0x45c661=fs[_0xb992('0x5e')](path['join'](config[_0xb992('0x53')],_0xb992('0x60')),_0xb992('0x54'));var _0x51ca16=ejs[_0xb992('0x55')](_0x45c661,{'networks':_0x4798c6||[]});fs[_0xb992('0x56')](util[_0xb992('0x57')](_0xb992('0x58'),_0xb25cde[_0xb992('0x43')][_0xb992('0x59')]()),_0x51ca16);return respondWithRpcPromise('Reload',_0xb992('0x5f'),{'module':'chan_sip.so'});}})['catch'](handleError(_0xb0647d,null));};