Built motion from commit a679711e.|2.6.15
[motion2.git] / server / api / plugin / plugin.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 _0xd977=['Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','description','sidebar','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','Warning:\x20agent\x20view\x20not\x20specified','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','encoding','method','%s%s','headers','content-length','content-type','statusCode','webhookPost','eml-format','rimraf','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','extract-zip','archiver','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','status','json','offset','undefined','count','set','apply','reject','then','destroy','get','Plugins','UserProfileResource','end','error','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','limit','order','sort','where','pick','filter','VIRTUAL','merge','options','Plugin','include','rows','catch','params','includeAll','find','download','join','root','server/files/plugins','format','basename','createWriteStream','zip','warning','code','ENOENT','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','Sequelize','**/*','dirname','node_modules/**/*','attachments/**/*','finalize','close','existsSync','Plugin\x20not\x20found','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Temporary\x20file\x20removed','upload','file','extname','filename','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','0777','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','manifest.json','Plugin\x20manifest\x20missing','readFileSync','parse','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','views','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName'];(function(_0x5c351c,_0x2046d8){var _0x26f3b3=function(_0x47ac18){while(--_0x47ac18){_0x5c351c['push'](_0x5c351c['shift']());}};_0x26f3b3(++_0x2046d8);}(_0xd977,0xce));var _0x7d97=function(_0x1b70f7,_0xd1d2c8){_0x1b70f7=_0x1b70f7-0x0;var _0x18f09f=_0xd977[_0x1b70f7];return _0x18f09f;};'use strict';var emlformat=require(_0x7d97('0x0'));var rimraf=require(_0x7d97('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x7d97('0x2'));var moment=require(_0x7d97('0x3'));var BPromise=require(_0x7d97('0x4'));var Mustache=require('mustache');var util=require(_0x7d97('0x5'));var path=require(_0x7d97('0x6'));var sox=require(_0x7d97('0x7'));var csv=require(_0x7d97('0x8'));var ejs=require(_0x7d97('0x9'));var fs=require('fs');var fs_extra=require(_0x7d97('0xa'));var _=require(_0x7d97('0xb'));var squel=require(_0x7d97('0xc'));var crypto=require(_0x7d97('0xd'));var jsforce=require(_0x7d97('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x7d97('0x8'));var querystring=require(_0x7d97('0xf'));var Papa=require(_0x7d97('0x10'));var extract=require(_0x7d97('0x11'));var rimraf=require(_0x7d97('0x1'));var archiver=require(_0x7d97('0x12'));var Redis=require(_0x7d97('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x7d97('0x14'));var as=require(_0x7d97('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7d97('0x16'))(_0x7d97('0x17'));var utils=require(_0x7d97('0x18'));var config=require(_0x7d97('0x19'));var licenseUtil=require(_0x7d97('0x1a'));var db=require(_0x7d97('0x1b'))['db'];config[_0x7d97('0x1c')]=_[_0x7d97('0x1d')](config['redis'],{'host':_0x7d97('0x1e'),'port':0x18eb});var socket=require(_0x7d97('0x1f'))(new Redis(config[_0x7d97('0x1c')]));require(_0x7d97('0x20'))[_0x7d97('0x21')](socket);function respondWithStatusCode(_0x3adfb3,_0x329a9b){_0x329a9b=_0x329a9b||0xcc;return function(_0xfef6c4){if(_0xfef6c4){return _0x3adfb3[_0x7d97('0x22')](_0x329a9b);}return _0x3adfb3[_0x7d97('0x23')](_0x329a9b)['end']();};}function respondWithResult(_0x43d16b,_0x329df3){_0x329df3=_0x329df3||0xc8;return function(_0x302696){if(_0x302696){return _0x43d16b['status'](_0x329df3)[_0x7d97('0x24')](_0x302696);}};}function respondWithFilteredResult(_0xf5b2f5,_0x4495e8){return function(_0x832ed3){if(_0x832ed3){var _0x304de9=typeof _0x4495e8[_0x7d97('0x25')]==='undefined'&&typeof _0x4495e8['limit']===_0x7d97('0x26');var _0x4a1d6e=_0x832ed3[_0x7d97('0x27')];var _0x511f9e=_0x304de9?0x0:_0x4495e8[_0x7d97('0x25')];var _0xc85135=_0x304de9?_0x832ed3[_0x7d97('0x27')]:_0x4495e8['offset']+_0x4495e8['limit'];var _0x2e185f;if(_0xc85135>=_0x4a1d6e){_0xc85135=_0x4a1d6e;_0x2e185f=0xc8;}else{_0x2e185f=0xce;}_0xf5b2f5[_0x7d97('0x23')](_0x2e185f);return _0xf5b2f5[_0x7d97('0x28')]('Content-Range',_0x511f9e+'-'+_0xc85135+'/'+_0x4a1d6e)[_0x7d97('0x24')](_0x832ed3);}return null;};}function patchUpdates(_0x11d1d2){return function(_0x420983){try{jsonpatch[_0x7d97('0x29')](_0x420983,_0x11d1d2,!![]);}catch(_0x222419){return BPromise[_0x7d97('0x2a')](_0x222419);}return _0x420983['save']();};}function saveUpdates(_0x3ffea5,_0x2482bd){return function(_0x2b4c48){if(_0x2b4c48){return _0x2b4c48['update'](_0x3ffea5)[_0x7d97('0x2b')](function(_0x2d215e){return _0x2d215e;});}return null;};}function removeEntity(_0x8e62a5,_0x223faf){return function(_0x446569){if(_0x446569){return _0x446569[_0x7d97('0x2c')]()[_0x7d97('0x2b')](function(){var _0x19ef8a=_0x446569[_0x7d97('0x2d')]({'plain':!![]});var _0x1b2104=_0x7d97('0x2e');return db[_0x7d97('0x2f')][_0x7d97('0x2c')]({'where':{'type':_0x1b2104,'resourceId':_0x19ef8a['id']}})[_0x7d97('0x2b')](function(){return _0x446569;});})[_0x7d97('0x2b')](function(){_0x8e62a5[_0x7d97('0x23')](0xcc)[_0x7d97('0x30')]();});}};}function handleEntityNotFound(_0x12169,_0x1c14dd){return function(_0x57606a){if(!_0x57606a){_0x12169[_0x7d97('0x22')](0x194);}return _0x57606a;};}function handleError(_0x408fd0,_0x537d4c){_0x537d4c=_0x537d4c||0x1f4;return function(_0x3604ad){logger[_0x7d97('0x31')](_0x3604ad['stack']);if(_0x3604ad['name']){delete _0x3604ad[_0x7d97('0x32')];}_0x408fd0[_0x7d97('0x23')](_0x537d4c)[_0x7d97('0x33')](_0x3604ad);};}exports[_0x7d97('0x34')]=function(_0x49de65,_0x266d31){var _0xa37e2={},_0x4c492e={},_0xa4a183={'count':0x0,'rows':[]};var _0x22c608=_[_0x7d97('0x35')](db['Plugin'][_0x7d97('0x36')],function(_0x10dc08){return{'name':_0x10dc08[_0x7d97('0x37')],'type':_0x10dc08[_0x7d97('0x38')][_0x7d97('0x39')]};});_0x4c492e[_0x7d97('0x3a')]=_['map'](_0x22c608,_0x7d97('0x32'));_0x4c492e[_0x7d97('0x3b')]=_[_0x7d97('0x3c')](_0x49de65[_0x7d97('0x3b')]);_0x4c492e[_0x7d97('0x3d')]=_[_0x7d97('0x3e')](_0x4c492e['model'],_0x4c492e[_0x7d97('0x3b')]);_0xa37e2[_0x7d97('0x3f')]=_[_0x7d97('0x3e')](_0x4c492e[_0x7d97('0x3a')],qs[_0x7d97('0x40')](_0x49de65[_0x7d97('0x3b')][_0x7d97('0x40')]));_0xa37e2[_0x7d97('0x3f')]=_0xa37e2[_0x7d97('0x3f')][_0x7d97('0x41')]?_0xa37e2[_0x7d97('0x3f')]:_0x4c492e['model'];if(!_0x49de65[_0x7d97('0x3b')]['hasOwnProperty']('nolimit')){_0xa37e2[_0x7d97('0x42')]=qs[_0x7d97('0x42')](_0x49de65[_0x7d97('0x3b')]['limit']);_0xa37e2[_0x7d97('0x25')]=qs[_0x7d97('0x25')](_0x49de65[_0x7d97('0x3b')][_0x7d97('0x25')]);}_0xa37e2[_0x7d97('0x43')]=qs[_0x7d97('0x44')](_0x49de65[_0x7d97('0x3b')][_0x7d97('0x44')]);_0xa37e2[_0x7d97('0x45')]=qs[_0x7d97('0x3d')](_[_0x7d97('0x46')](_0x49de65[_0x7d97('0x3b')],_0x4c492e[_0x7d97('0x3d')]),_0x22c608);if(_0x49de65[_0x7d97('0x3b')][_0x7d97('0x47')]){_0xa37e2[_0x7d97('0x45')]=_['merge'](_0xa37e2['where'],{'$or':_[_0x7d97('0x35')](_0x22c608,function(_0x2aeb5c){if(_0x2aeb5c[_0x7d97('0x38')]!==_0x7d97('0x48')){var _0x40a411={};_0x40a411[_0x2aeb5c[_0x7d97('0x32')]]={'$like':'%'+_0x49de65['query'][_0x7d97('0x47')]+'%'};return _0x40a411;}})});}_0xa37e2=_[_0x7d97('0x49')]({},_0xa37e2,_0x49de65[_0x7d97('0x4a')]);var _0x2fda0b={'where':_0xa37e2[_0x7d97('0x45')]};return db[_0x7d97('0x4b')][_0x7d97('0x27')](_0x2fda0b)['then'](function(_0x11b90a){_0xa4a183['count']=_0x11b90a;if(_0x49de65[_0x7d97('0x3b')]['includeAll']){_0xa37e2[_0x7d97('0x4c')]=[{'all':!![]}];}return db['Plugin']['findAll'](_0xa37e2);})[_0x7d97('0x2b')](function(_0x36e67b){_0xa4a183[_0x7d97('0x4d')]=_0x36e67b;return _0xa4a183;})['then'](respondWithFilteredResult(_0x266d31,_0xa37e2))[_0x7d97('0x4e')](handleError(_0x266d31,null));};exports['show']=function(_0x56f270,_0x43a301){var _0x1b4f4c={'raw':!![],'where':{'id':_0x56f270[_0x7d97('0x4f')]['id']}},_0x4ff9b9={};_0x4ff9b9[_0x7d97('0x3a')]=_[_0x7d97('0x3c')](db[_0x7d97('0x4b')][_0x7d97('0x36')]);_0x4ff9b9[_0x7d97('0x3b')]=_[_0x7d97('0x3c')](_0x56f270[_0x7d97('0x3b')]);_0x4ff9b9[_0x7d97('0x3d')]=_[_0x7d97('0x3e')](_0x4ff9b9[_0x7d97('0x3a')],_0x4ff9b9[_0x7d97('0x3b')]);_0x1b4f4c['attributes']=_['intersection'](_0x4ff9b9[_0x7d97('0x3a')],qs[_0x7d97('0x40')](_0x56f270[_0x7d97('0x3b')][_0x7d97('0x40')]));_0x1b4f4c[_0x7d97('0x3f')]=_0x1b4f4c[_0x7d97('0x3f')][_0x7d97('0x41')]?_0x1b4f4c[_0x7d97('0x3f')]:_0x4ff9b9[_0x7d97('0x3a')];if(_0x56f270['query'][_0x7d97('0x50')]){_0x1b4f4c[_0x7d97('0x4c')]=[{'all':!![]}];}_0x1b4f4c=_[_0x7d97('0x49')]({},_0x1b4f4c,_0x56f270[_0x7d97('0x4a')]);return db[_0x7d97('0x4b')][_0x7d97('0x51')](_0x1b4f4c)[_0x7d97('0x2b')](handleEntityNotFound(_0x43a301,null))[_0x7d97('0x2b')](respondWithResult(_0x43a301,null))[_0x7d97('0x4e')](handleError(_0x43a301,null));};exports[_0x7d97('0x52')]=function(_0x463248,_0x21ed83,_0x1a4407){return db[_0x7d97('0x4b')][_0x7d97('0x51')]({'where':{'id':_0x463248[_0x7d97('0x4f')]['id']},'attributes':[_0x7d97('0x32'),_0x7d97('0x6')],'raw':!![]})[_0x7d97('0x2b')](handleEntityNotFound(_0x21ed83,null))[_0x7d97('0x2b')](function(_0x560d0a){if(_0x560d0a){var _0x5bdde6=path[_0x7d97('0x53')](config[_0x7d97('0x54')],_0x7d97('0x55'),util[_0x7d97('0x56')]('%s.zip',path[_0x7d97('0x57')](_0x560d0a['path'])));var _0x2a507c=fs[_0x7d97('0x58')](_0x5bdde6);var _0x55e722=archiver(_0x7d97('0x59'),{'zlib':{'level':0x9}});_0x55e722['on'](_0x7d97('0x5a'),function(_0x5e4b99){if(_0x5e4b99[_0x7d97('0x5b')]===_0x7d97('0x5c')){logger[_0x7d97('0x31')](_0x5e4b99);}else{throw new db['Sequelize'][(_0x7d97('0x5d'))](_0x7d97('0x5e'));}});_0x55e722['on']('error',function(_0x4b7d4a){throw new db[(_0x7d97('0x5f'))][(_0x7d97('0x5d'))]('Error\x20while\x20generating\x20the\x20zip\x20archive');});_0x55e722['pipe'](_0x2a507c);_0x55e722['glob'](_0x7d97('0x60'),{'cwd':path[_0x7d97('0x53')](config[_0x7d97('0x54')],_0x7d97('0x55'),path[_0x7d97('0x61')](_0x560d0a[_0x7d97('0x6')])),'ignore':[path[_0x7d97('0x53')](path[_0x7d97('0x57')](_0x560d0a[_0x7d97('0x6')]),_0x7d97('0x62')),path['join'](path[_0x7d97('0x57')](_0x560d0a['path']),_0x7d97('0x63'))],'nodir':!![]})[_0x7d97('0x64')]();_0x2a507c['on'](_0x7d97('0x65'),function(){if(!fs[_0x7d97('0x66')](_0x5bdde6)){throw new db[(_0x7d97('0x5f'))]['Error'](_0x7d97('0x67'));}return _0x21ed83[_0x7d97('0x52')](_0x5bdde6,util[_0x7d97('0x56')]('%s.zip',path[_0x7d97('0x57')](_0x560d0a[_0x7d97('0x6')])),function(_0x1979c3){if(_0x1979c3){throw new db[(_0x7d97('0x5f'))][(_0x7d97('0x5d'))](_0x7d97('0x68'));}fs[_0x7d97('0x69')](_0x5bdde6);logger[_0x7d97('0x6a')]('Download\x20completed');logger['info'](_0x7d97('0x6b'));});});}return null;})['catch'](handleError(_0x21ed83,null));};exports[_0x7d97('0x6c')]=function(_0x20a80b,_0x117c4d,_0xf3f2cd){var _0x406cff=path[_0x7d97('0x57')](_0x20a80b[_0x7d97('0x6d')]['filename'],path[_0x7d97('0x6e')](_0x20a80b[_0x7d97('0x6d')][_0x7d97('0x6f')]));var _0x2913eb=path[_0x7d97('0x53')](config[_0x7d97('0x54')],_0x7d97('0x55'),_0x20a80b[_0x7d97('0x6d')]['filename']);var _0x168ded=path[_0x7d97('0x53')](config[_0x7d97('0x54')],_0x7d97('0x55'),_0x406cff);logger[_0x7d97('0x6a')](_0x7d97('0x70'),_0x2913eb);logger[_0x7d97('0x6a')](_0x7d97('0x71'),_0x168ded);try{fs[_0x7d97('0x72')](_0x2913eb,parseInt(_0x7d97('0x73'),0x8));extract(_0x2913eb,{'dir':_0x168ded},function(_0x482676){if(_0x482676){logger['error'](_0x482676);handleError(_0x482676,!![]);};var _0x323dde=fs[_0x7d97('0x74')](_0x168ded);if(_0x323dde['length']>0x1){removeReferences(_0x2913eb,_0x168ded);logger[_0x7d97('0x31')](_0x7d97('0x75'));return _0xf3f2cd(new Error(_0x7d97('0x75')));}var _0x286822=fs[_0x7d97('0x76')](path['join'](_0x168ded,_0x323dde[0x0]));if(_0x286822[_0x7d97('0x77')]()){removeReferences(_0x2913eb,_0x168ded);logger['error']('Invalid\x20plugin\x20structure');return _0xf3f2cd(new Error(_0x7d97('0x75')));}if(_0x286822[_0x7d97('0x78')]()){var _0x632612=fs[_0x7d97('0x74')](path['join'](_0x168ded,_0x323dde[0x0]));if(_0x632612[_0x7d97('0x41')]===0x0){removeReferences(_0x2913eb,_0x168ded);logger['error']('Invalid\x20plugin\x20structure');return _0xf3f2cd(new Error(_0x7d97('0x75')));}var _0xafb681=_0x632612['some'](function(_0x5122f8){return _0x5122f8===_0x7d97('0x79');});if(!_0xafb681){return _0xf3f2cd(new Error(_0x7d97('0x7a')));}var _0x359fe5=fs[_0x7d97('0x7b')](path[_0x7d97('0x53')](_0x168ded,_0x323dde[0x0],_0x7d97('0x79')));var _0x4f1b95=JSON[_0x7d97('0x7c')](_0x359fe5);if('undefined'==typeof _0x4f1b95[_0x7d97('0x32')]){return _0xf3f2cd(new Error(_0x7d97('0x7d')));}if('undefined'==typeof _0x4f1b95[_0x7d97('0x38')]){return _0xf3f2cd(new Error(_0x7d97('0x7e')));}if(_0x7d97('0x26')==typeof _0x4f1b95[_0x7d97('0x7f')]){return _0xf3f2cd(new Error(_0x7d97('0x80')));}if('undefined'==typeof _0x4f1b95[_0x7d97('0x81')]){return _0xf3f2cd(new Error(_0x7d97('0x82')));}if(_0x4f1b95[_0x7d97('0x38')]===_0x7d97('0x83')){if(_0x7d97('0x26')==typeof _0x4f1b95[_0x7d97('0x81')][_0x7d97('0x84')]){return _0xf3f2cd(new Error('Invalid\x20manifest:\x20views\x20missing'));}if(_0x7d97('0x26')==typeof _0x4f1b95[_0x7d97('0x81')][_0x7d97('0x84')][_0x7d97('0x85')]&&_0x7d97('0x26')==typeof _0x4f1b95[_0x7d97('0x81')]['views'][_0x7d97('0x86')]){return _0xf3f2cd(new Error(_0x7d97('0x87')));}}else if(_0x4f1b95['type']===_0x7d97('0x88')){if(_0x7d97('0x26')==typeof _0x4f1b95[_0x7d97('0x81')][_0x7d97('0x89')]){return _0xf3f2cd(new Error(_0x7d97('0x8a')));}if(_0x7d97('0x26')==typeof _0x4f1b95['parameters'][_0x7d97('0x8b')]){return _0xf3f2cd(new Error(_0x7d97('0x8c')));}}else{return _0xf3f2cd(new Error('Invalid\x20manifest:\x20invalid\x20type'));}var _0x4a5955=_0x4f1b95[_0x7d97('0x32')];var _0x2c3c08=_0x4f1b95[_0x7d97('0x8d')];var _0x2c4c19=_0x4f1b95[_0x7d97('0x38')];var _0x5b9e22=_0x4f1b95[_0x7d97('0x8e')]?_0x4f1b95[_0x7d97('0x8e')]:'always';var _0x211d16=_0x4f1b95['icon']?_0x4f1b95['icon']:'icon-apps';var _0x50265b='';var _0x8a6077='';var _0x5839b1='';var _0x1df709='';var _0x3a0611=_0x4f1b95['version'];if(_0x2c4c19===_0x7d97('0x83')){if(_0x7d97('0x26')!=typeof _0x4f1b95[_0x7d97('0x81')][_0x7d97('0x84')]['admin']){var _0xcf2535=_0x4f1b95[_0x7d97('0x81')]['views'][_0x7d97('0x85')];if(!/^(f|ht)tps?:\/\//i[_0x7d97('0x8f')](_0xcf2535)){_0x50265b=path[_0x7d97('0x53')](_0x7d97('0x90'),_0x406cff,_0x323dde[0x0],_0xcf2535);}else{_0x50265b=_0xcf2535;}}else{logger[_0x7d97('0x6a')](_0x7d97('0x91'));}if(_0x7d97('0x26')!=typeof _0x4f1b95[_0x7d97('0x81')][_0x7d97('0x84')][_0x7d97('0x86')]){var _0xf72057=_0x4f1b95['parameters'][_0x7d97('0x84')][_0x7d97('0x86')];if(!/^(f|ht)tps?:\/\//i[_0x7d97('0x8f')](_0xf72057)){_0x8a6077=path[_0x7d97('0x53')]('plugins',_0x406cff,_0x323dde[0x0],_0xf72057);}else{_0x8a6077=_0xf72057;}}else{logger['info'](_0x7d97('0x92'));}}else if(_0x2c4c19===_0x7d97('0x88')){_0x5839b1=_0x4f1b95['parameters'][_0x7d97('0x89')];_0x1df709=_0x4f1b95[_0x7d97('0x81')][_0x7d97('0x8b')];if(_0x7d97('0x26')!=typeof _0x4f1b95[_0x7d97('0x81')][_0x7d97('0x84')]){if('undefined'!=typeof _0x4f1b95[_0x7d97('0x81')][_0x7d97('0x84')][_0x7d97('0x85')]){var _0xcf2535=_0x4f1b95[_0x7d97('0x81')][_0x7d97('0x84')]['admin'];if(!/^(f|ht)tps?:\/\//i[_0x7d97('0x8f')](_0xcf2535)){_0x50265b=path['join']('plugins',_0x406cff,_0x323dde[0x0],_0xcf2535);}else{_0x50265b=_0xcf2535;}}if(_0x7d97('0x26')!=typeof _0x4f1b95[_0x7d97('0x81')][_0x7d97('0x84')][_0x7d97('0x86')]){var _0xf72057=_0x4f1b95[_0x7d97('0x81')][_0x7d97('0x84')][_0x7d97('0x86')];if(!/^(f|ht)tps?:\/\//i[_0x7d97('0x8f')](_0xf72057)){_0x8a6077=path[_0x7d97('0x53')](_0x7d97('0x90'),_0x406cff,_0x323dde[0x0],_0xf72057);}else{_0x8a6077=_0xf72057;}}}}var _0x313620={'name':_0x4a5955,'description':_0x2c3c08,'path':path[_0x7d97('0x53')](_0x406cff,_0x323dde[0x0]),'type':_0x2c4c19,'sidebar':_0x5b9e22,'icon':_0x211d16,'adminUrl':_0x50265b,'agentUrl':_0x8a6077,'scriptName':_0x5839b1,'scriptPath':_0x1df709,'version':_0x3a0611};removeReferences(_0x2913eb,null);return db[_0x7d97('0x4b')][_0x7d97('0x93')](_0x313620)['then'](function(_0x200c69){var _0x3ad6df={'role':_0x20a80b[_0x7d97('0x94')]['role'],'userProfileId':_0x20a80b[_0x7d97('0x94')]['userProfileId']};if(!_0x3ad6df)throw new Error(_0x7d97('0x95'));if(_0x3ad6df[_0x7d97('0x96')]===_0x7d97('0x97')){var _0x33e60b=_0x200c69[_0x7d97('0x2d')]({'plain':!![]});return db[_0x7d97('0x98')][_0x7d97('0x51')]({'where':{'name':_0x7d97('0x2e'),'userProfileId':_0x3ad6df[_0x7d97('0x99')]},'raw':!![]})[_0x7d97('0x2b')](function(_0x4b982a){if(_0x4b982a&&_0x4b982a[_0x7d97('0x9a')]===0x0){return db[_0x7d97('0x2f')][_0x7d97('0x93')]({'name':_0x33e60b[_0x7d97('0x32')],'resourceId':_0x33e60b['id'],'type':_0x4b982a[_0x7d97('0x32')],'sectionId':_0x4b982a['id']},{})[_0x7d97('0x2b')](function(){return _0x200c69;});}else{return _0x200c69;}})[_0x7d97('0x4e')](function(_0x3710eb){logger[_0x7d97('0x31')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3710eb);throw _0x3710eb;});}return _0x200c69;})['then'](respondWithResult(_0x117c4d,null))['catch'](handleError(_0x117c4d,null));}});}catch(_0x204bb3){_0x117c4d['status'](0x1f4)[_0x7d97('0x33')](_0x204bb3);}};function removeReferences(_0x2dba42,_0x585cff){try{if(_0x2dba42){fs['unlinkSync'](_0x2dba42);logger[_0x7d97('0x6a')](_0x7d97('0x9b'));}if(_0x585cff){rimraf(_0x585cff,function(){});logger[_0x7d97('0x6a')](_0x7d97('0x9c'));}}catch(_0x878f5e){logger[_0x7d97('0x31')](_0x878f5e);}}exports['update']=function(_0x267971,_0x24eac3,_0x16b606){return db[_0x7d97('0x4b')]['find']({'where':{'id':_0x267971[_0x7d97('0x4f')]['id']}})[_0x7d97('0x2b')](handleEntityNotFound(_0x24eac3,null))[_0x7d97('0x2b')](saveUpdates(_0x267971[_0x7d97('0x94')],null))[_0x7d97('0x2b')](respondWithResult(_0x24eac3,null))[_0x7d97('0x4e')](handleError(_0x24eac3,null));};exports[_0x7d97('0x9d')]=function(_0x3363eb,_0x5ca60a,_0x1ff359){return db[_0x7d97('0x4b')][_0x7d97('0x51')]({'where':{'id':_0x3363eb[_0x7d97('0x4f')]['id']}})[_0x7d97('0x2b')](function(_0xd9d7e6){if(_0xd9d7e6){return _0xd9d7e6[_0x7d97('0x2c')]();}})[_0x7d97('0x2b')](function(_0x3dbe3e){rimraf(path[_0x7d97('0x53')](config[_0x7d97('0x54')],_0x7d97('0x55'),path['dirname'](_0x3dbe3e['path'])),function(){});return _0x3dbe3e;})[_0x7d97('0x2b')](handleEntityNotFound(_0x5ca60a,null))[_0x7d97('0x2b')](respondWithStatusCode(_0x5ca60a,null))[_0x7d97('0x4e')](handleError(_0x5ca60a,null));};exports[_0x7d97('0x9e')]=function(_0xe4c1f,_0x30840f,_0x5dc422){return BPromise[_0x7d97('0x9f')]()[_0x7d97('0x2b')](function(){if(!_0xe4c1f[_0x7d97('0x3b')][_0x7d97('0x6')]){throw new Error(_0x7d97('0xa0'));}if(!_0xe4c1f[_0x7d97('0x3b')][_0x7d97('0xa1')]){throw new Error(_0x7d97('0xa2'));}var _0x8e418e=_0xe4c1f[_0x7d97('0x3b')][_0x7d97('0xa3')]?_0xe4c1f[_0x7d97('0x3b')][_0x7d97('0xa3')]+':'+_0xe4c1f[_0x7d97('0x3b')][_0x7d97('0xa1')]:'http://localhost:'+_0xe4c1f['query']['port'];var _0x122ecf=_0xe4c1f[_0x7d97('0x3b')][_0x7d97('0x24')]?_0xe4c1f[_0x7d97('0x3b')][_0x7d97('0x24')]:!![];var _0x37da4a=_0xe4c1f[_0x7d97('0x3b')][_0x7d97('0xa4')]?_0xe4c1f[_0x7d97('0x3b')][_0x7d97('0xa4')]:null;var _0x13d8c2={'method':_0xe4c1f[_0x7d97('0xa5')],'uri':util[_0x7d97('0x56')](_0x7d97('0xa6'),_0x8e418e,_0xe4c1f[_0x7d97('0x3b')][_0x7d97('0x6')]),'json':_0x122ecf,'resolveWithFullResponse':!![],'encoding':_0x37da4a,'qs':_0xe4c1f['query']};if(_0xe4c1f[_0x7d97('0xa7')]){_0x13d8c2[_0x7d97('0xa7')]=_0xe4c1f['headers'];if(_0x13d8c2['headers'][_0x7d97('0xa8')]){delete _0x13d8c2[_0x7d97('0xa7')][_0x7d97('0xa8')];}}if(_0x13d8c2['headers'][_0x7d97('0xa9')]){delete _0x13d8c2[_0x7d97('0xa7')][_0x7d97('0xa9')];}return rp(_0x13d8c2);})[_0x7d97('0x2b')](function(_0x370b2b){if(_0x370b2b){_0x30840f[_0x7d97('0x28')](_0x370b2b['headers']);logger[_0x7d97('0x6a')](_0x370b2b[_0x7d97('0x94')]);if(_['endsWith'](_0xe4c1f[_0x7d97('0x3b')][_0x7d97('0x6')],_0x7d97('0x52'))&&_0x370b2b[_0x7d97('0xaa')]==0x1f4){return _0x30840f['sendStatus'](_0x370b2b[_0x7d97('0xaa')]);}else{return _0x30840f[_0x7d97('0x23')](_0x370b2b[_0x7d97('0xaa')])[_0x7d97('0x33')](_0x370b2b[_0x7d97('0x94')]);}}else{return _0x30840f[_0x7d97('0x22')](0xc8);}})[_0x7d97('0x4e')](handleError(_0x30840f,null));};exports[_0x7d97('0xab')]=function(_0x253ddb,_0x807309,_0x3bc50b){return BPromise[_0x7d97('0x9f')]()[_0x7d97('0x2b')](function(){if(!_0x253ddb[_0x7d97('0x3b')][_0x7d97('0x6')]){throw new Error(_0x7d97('0xa0'));}if(!_0x253ddb['query'][_0x7d97('0xa1')]){throw new Error(_0x7d97('0xa2'));}var _0x51a821=_0x253ddb[_0x7d97('0x3b')][_0x7d97('0xa3')]?_0x253ddb[_0x7d97('0x3b')]['hostname']+':'+_0x253ddb[_0x7d97('0x3b')][_0x7d97('0xa1')]:'http://localhost:'+_0x253ddb[_0x7d97('0x3b')][_0x7d97('0xa1')];var _0x24786e=_0x253ddb[_0x7d97('0x3b')][_0x7d97('0x24')]?_0x253ddb['query']['json']:!![];var _0x3b2e18=_0x253ddb[_0x7d97('0x3b')][_0x7d97('0xa4')]?_0x253ddb[_0x7d97('0x3b')][_0x7d97('0xa4')]:null;var _0x1a8644={'method':_0x253ddb[_0x7d97('0xa5')],'uri':util[_0x7d97('0x56')]('%s%s',_0x51a821,_0x253ddb[_0x7d97('0x3b')][_0x7d97('0x6')]),'json':_0x24786e,'resolveWithFullResponse':!![],'encoding':_0x3b2e18,'body':_0x253ddb[_0x7d97('0x94')]};if(_0x253ddb[_0x7d97('0xa7')]){_0x1a8644['headers']=_0x253ddb[_0x7d97('0xa7')];if(_0x1a8644[_0x7d97('0xa7')][_0x7d97('0xa8')]){delete _0x1a8644['headers'][_0x7d97('0xa8')];}}if(_0x1a8644['headers']['content-type']){delete _0x1a8644[_0x7d97('0xa7')][_0x7d97('0xa9')];}return rp(_0x1a8644);})[_0x7d97('0x2b')](function(_0x124522){if(_0x124522){_0x807309[_0x7d97('0x28')](_0x124522[_0x7d97('0xa7')]);logger['info'](_0x124522[_0x7d97('0x94')]);return _0x807309['status'](_0x124522['statusCode'])['send'](_0x124522[_0x7d97('0x94')]);}else{return _0x807309[_0x7d97('0x22')](0xc8);}})[_0x7d97('0x4e')](handleError(_0x807309,null));};