596b7b31a6ceeee391f58f2784423bb42ccbe3a3
[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 _0x506e=['attributes','length','nolimit','order','sort','where','filter','merge','options','findAll','rows','catch','params','includeAll','include','find','join','root','server/files/plugins','%s.zip','basename','createWriteStream','zip','warning','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','**/*','dirname','node_modules/**/*','attachments/**/*','finalize','close','existsSync','Plugin\x20not\x20found','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','upload','file','filename','Plugin\x20upload\x20destination:\x20%s','chmodSync','0777','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','some','manifest.json','Plugin\x20manifest\x20missing','readFileSync','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','views','admin','agent','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','sidebar','always','icon-apps','test','plugins','Warning:\x20agent\x20view\x20not\x20specified','script','create','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','send','Zip\x20archive\x20removed','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','format','%s%s','headers','content-length','content-type','set','statusCode','webhookPost','method','eml-format','rimraf','zip-dir','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','extract-zip','archiver','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','./plugin.socket','sendStatus','status','end','undefined','limit','count','offset','Content-Range','json','apply','reject','update','then','destroy','get','Plugins','error','stack','name','index','map','Plugin','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields'];(function(_0x4854d6,_0x2f1264){var _0x3885c0=function(_0x4d564d){while(--_0x4d564d){_0x4854d6['push'](_0x4854d6['shift']());}};_0x3885c0(++_0x2f1264);}(_0x506e,0x115));var _0xe506=function(_0x13d07a,_0x41efc3){_0x13d07a=_0x13d07a-0x0;var _0x5ee0ee=_0x506e[_0x13d07a];return _0x5ee0ee;};'use strict';var emlformat=require(_0xe506('0x0'));var rimraf=require(_0xe506('0x1'));var zipdir=require(_0xe506('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xe506('0x3'));var Mustache=require(_0xe506('0x4'));var util=require(_0xe506('0x5'));var path=require(_0xe506('0x6'));var sox=require(_0xe506('0x7'));var csv=require(_0xe506('0x8'));var ejs=require(_0xe506('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe506('0xa'));var squel=require(_0xe506('0xb'));var crypto=require(_0xe506('0xc'));var jsforce=require(_0xe506('0xd'));var deskjs=require(_0xe506('0xe'));var toCsv=require(_0xe506('0x8'));var querystring=require(_0xe506('0xf'));var Papa=require(_0xe506('0x10'));var extract=require(_0xe506('0x11'));var rimraf=require('rimraf');var archiver=require(_0xe506('0x12'));var Redis=require(_0xe506('0x13'));var authService=require(_0xe506('0x14'));var qs=require(_0xe506('0x15'));var as=require(_0xe506('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe506('0x17'))(_0xe506('0x18'));var utils=require('../../config/utils');var config=require(_0xe506('0x19'));var licenseUtil=require(_0xe506('0x1a'));var db=require(_0xe506('0x1b'))['db'];config[_0xe506('0x1c')]=_['defaults'](config[_0xe506('0x1c')],{'host':_0xe506('0x1d'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xe506('0x1e'))['register'](socket);function respondWithStatusCode(_0x5266dd,_0x29123a){_0x29123a=_0x29123a||0xcc;return function(_0x55bd26){if(_0x55bd26){return _0x5266dd[_0xe506('0x1f')](_0x29123a);}return _0x5266dd[_0xe506('0x20')](_0x29123a)[_0xe506('0x21')]();};}function respondWithResult(_0x70e4a1,_0x54a218){_0x54a218=_0x54a218||0xc8;return function(_0x2b41c2){if(_0x2b41c2){return _0x70e4a1['status'](_0x54a218)['json'](_0x2b41c2);}};}function respondWithFilteredResult(_0x3d4dd9,_0x745033){return function(_0x51fb9b){if(_0x51fb9b){var _0x3cc46f=typeof _0x745033['offset']===_0xe506('0x22')&&typeof _0x745033[_0xe506('0x23')]===_0xe506('0x22');var _0xb54a27=_0x51fb9b[_0xe506('0x24')];var _0x1936e2=_0x3cc46f?0x0:_0x745033[_0xe506('0x25')];var _0x3f932=_0x3cc46f?_0x51fb9b['count']:_0x745033[_0xe506('0x25')]+_0x745033[_0xe506('0x23')];var _0x39f3f5;if(_0x3f932>=_0xb54a27){_0x3f932=_0xb54a27;_0x39f3f5=0xc8;}else{_0x39f3f5=0xce;}_0x3d4dd9[_0xe506('0x20')](_0x39f3f5);return _0x3d4dd9['set'](_0xe506('0x26'),_0x1936e2+'-'+_0x3f932+'/'+_0xb54a27)[_0xe506('0x27')](_0x51fb9b);}return null;};}function patchUpdates(_0x483032){return function(_0x4c3388){try{jsonpatch[_0xe506('0x28')](_0x4c3388,_0x483032,!![]);}catch(_0x3b1086){return BPromise[_0xe506('0x29')](_0x3b1086);}return _0x4c3388['save']();};}function saveUpdates(_0x59cce6,_0x3457c1){return function(_0x254f91){if(_0x254f91){return _0x254f91[_0xe506('0x2a')](_0x59cce6)[_0xe506('0x2b')](function(_0x5d6adb){return _0x5d6adb;});}return null;};}function removeEntity(_0x49a099,_0x2385c9){return function(_0x36c99b){if(_0x36c99b){return _0x36c99b[_0xe506('0x2c')]()[_0xe506('0x2b')](function(){var _0x1bc1ab=_0x36c99b[_0xe506('0x2d')]({'plain':!![]});var _0x564ea9=_0xe506('0x2e');return db['UserProfileResource']['destroy']({'where':{'type':_0x564ea9,'resourceId':_0x1bc1ab['id']}})['then'](function(){return _0x36c99b;});})['then'](function(){_0x49a099[_0xe506('0x20')](0xcc)[_0xe506('0x21')]();});}};}function handleEntityNotFound(_0x4bb593,_0x83229f){return function(_0x1d87b9){if(!_0x1d87b9){_0x4bb593[_0xe506('0x1f')](0x194);}return _0x1d87b9;};}function handleError(_0x40ab71,_0x33212f){_0x33212f=_0x33212f||0x1f4;return function(_0x283345){logger[_0xe506('0x2f')](_0x283345[_0xe506('0x30')]);if(_0x283345[_0xe506('0x31')]){delete _0x283345[_0xe506('0x31')];}_0x40ab71[_0xe506('0x20')](_0x33212f)['send'](_0x283345);};}exports[_0xe506('0x32')]=function(_0x8e732f,_0x4d8e9f){var _0x25e648={},_0x3eafdf={},_0x443020={'count':0x0,'rows':[]};var _0x5c5a54=_[_0xe506('0x33')](db[_0xe506('0x34')][_0xe506('0x35')],function(_0x3944a8){return{'name':_0x3944a8[_0xe506('0x36')],'type':_0x3944a8[_0xe506('0x37')][_0xe506('0x38')]};});_0x3eafdf[_0xe506('0x39')]=_[_0xe506('0x33')](_0x5c5a54,'name');_0x3eafdf['query']=_[_0xe506('0x3a')](_0x8e732f[_0xe506('0x3b')]);_0x3eafdf[_0xe506('0x3c')]=_[_0xe506('0x3d')](_0x3eafdf['model'],_0x3eafdf[_0xe506('0x3b')]);_0x25e648['attributes']=_['intersection'](_0x3eafdf[_0xe506('0x39')],qs[_0xe506('0x3e')](_0x8e732f[_0xe506('0x3b')]['fields']));_0x25e648[_0xe506('0x3f')]=_0x25e648[_0xe506('0x3f')][_0xe506('0x40')]?_0x25e648['attributes']:_0x3eafdf[_0xe506('0x39')];if(!_0x8e732f[_0xe506('0x3b')]['hasOwnProperty'](_0xe506('0x41'))){_0x25e648[_0xe506('0x23')]=qs[_0xe506('0x23')](_0x8e732f[_0xe506('0x3b')][_0xe506('0x23')]);_0x25e648['offset']=qs[_0xe506('0x25')](_0x8e732f['query']['offset']);}_0x25e648[_0xe506('0x42')]=qs[_0xe506('0x43')](_0x8e732f['query'][_0xe506('0x43')]);_0x25e648[_0xe506('0x44')]=qs[_0xe506('0x3c')](_['pick'](_0x8e732f[_0xe506('0x3b')],_0x3eafdf[_0xe506('0x3c')]),_0x5c5a54);if(_0x8e732f[_0xe506('0x3b')][_0xe506('0x45')]){_0x25e648[_0xe506('0x44')]=_[_0xe506('0x46')](_0x25e648[_0xe506('0x44')],{'$or':_[_0xe506('0x33')](_0x5c5a54,function(_0x3d3e5d){if(_0x3d3e5d['type']!=='VIRTUAL'){var _0x4ab13c={};_0x4ab13c[_0x3d3e5d[_0xe506('0x31')]]={'$like':'%'+_0x8e732f[_0xe506('0x3b')][_0xe506('0x45')]+'%'};return _0x4ab13c;}})});}_0x25e648=_[_0xe506('0x46')]({},_0x25e648,_0x8e732f[_0xe506('0x47')]);var _0x1c42c3={'where':_0x25e648[_0xe506('0x44')]};return db['Plugin'][_0xe506('0x24')](_0x1c42c3)[_0xe506('0x2b')](function(_0x1a09f1){_0x443020[_0xe506('0x24')]=_0x1a09f1;if(_0x8e732f[_0xe506('0x3b')]['includeAll']){_0x25e648['include']=[{'all':!![]}];}return db[_0xe506('0x34')][_0xe506('0x48')](_0x25e648);})[_0xe506('0x2b')](function(_0x3cda5a){_0x443020[_0xe506('0x49')]=_0x3cda5a;return _0x443020;})[_0xe506('0x2b')](respondWithFilteredResult(_0x4d8e9f,_0x25e648))[_0xe506('0x4a')](handleError(_0x4d8e9f,null));};exports['show']=function(_0x5f31ab,_0x5578bb){var _0x5a3b17={'raw':!![],'where':{'id':_0x5f31ab[_0xe506('0x4b')]['id']}},_0x345375={};_0x345375['model']=_[_0xe506('0x3a')](db[_0xe506('0x34')][_0xe506('0x35')]);_0x345375[_0xe506('0x3b')]=_['keys'](_0x5f31ab[_0xe506('0x3b')]);_0x345375[_0xe506('0x3c')]=_[_0xe506('0x3d')](_0x345375[_0xe506('0x39')],_0x345375[_0xe506('0x3b')]);_0x5a3b17['attributes']=_[_0xe506('0x3d')](_0x345375[_0xe506('0x39')],qs[_0xe506('0x3e')](_0x5f31ab['query'][_0xe506('0x3e')]));_0x5a3b17[_0xe506('0x3f')]=_0x5a3b17[_0xe506('0x3f')][_0xe506('0x40')]?_0x5a3b17[_0xe506('0x3f')]:_0x345375[_0xe506('0x39')];if(_0x5f31ab[_0xe506('0x3b')][_0xe506('0x4c')]){_0x5a3b17[_0xe506('0x4d')]=[{'all':!![]}];}_0x5a3b17=_[_0xe506('0x46')]({},_0x5a3b17,_0x5f31ab[_0xe506('0x47')]);return db[_0xe506('0x34')][_0xe506('0x4e')](_0x5a3b17)[_0xe506('0x2b')](handleEntityNotFound(_0x5578bb,null))[_0xe506('0x2b')](respondWithResult(_0x5578bb,null))[_0xe506('0x4a')](handleError(_0x5578bb,null));};exports['download']=function(_0x43b5f5,_0x35321a,_0x58f810){return db[_0xe506('0x34')][_0xe506('0x4e')]({'where':{'id':_0x43b5f5[_0xe506('0x4b')]['id']},'attributes':[_0xe506('0x31'),_0xe506('0x6')],'raw':!![]})['then'](handleEntityNotFound(_0x35321a,null))[_0xe506('0x2b')](function(_0x40af32){if(_0x40af32){var _0x1f69b0=path[_0xe506('0x4f')](config[_0xe506('0x50')],_0xe506('0x51'),util['format'](_0xe506('0x52'),path[_0xe506('0x53')](_0x40af32[_0xe506('0x6')])));var _0x344401=fs[_0xe506('0x54')](_0x1f69b0);var _0x5125e8=archiver(_0xe506('0x55'),{'zlib':{'level':0x9}});_0x5125e8['on'](_0xe506('0x56'),function(_0x304091){if(_0x304091['code']===_0xe506('0x57')){logger[_0xe506('0x2f')](_0x304091);}else{throw new db[(_0xe506('0x58'))][(_0xe506('0x59'))](_0xe506('0x5a'));}});_0x5125e8['on'](_0xe506('0x2f'),function(_0x374d02){throw new db[(_0xe506('0x58'))][(_0xe506('0x59'))]('Error\x20while\x20generating\x20the\x20zip\x20archive');});_0x5125e8[_0xe506('0x5b')](_0x344401);_0x5125e8[_0xe506('0x5c')](_0xe506('0x5d'),{'cwd':path[_0xe506('0x4f')](config[_0xe506('0x50')],'server/files/plugins',path[_0xe506('0x5e')](_0x40af32[_0xe506('0x6')])),'ignore':[path[_0xe506('0x4f')](path[_0xe506('0x53')](_0x40af32[_0xe506('0x6')]),_0xe506('0x5f')),path[_0xe506('0x4f')](path['basename'](_0x40af32['path']),_0xe506('0x60'))],'nodir':!![]})[_0xe506('0x61')]();_0x344401['on'](_0xe506('0x62'),function(){if(!fs[_0xe506('0x63')](_0x1f69b0)){throw new db[(_0xe506('0x58'))][(_0xe506('0x59'))](_0xe506('0x64'));}return _0x35321a['download'](_0x1f69b0,util['format'](_0xe506('0x52'),path[_0xe506('0x53')](_0x40af32[_0xe506('0x6')])),function(_0x31cdd9){if(_0x31cdd9){throw new db[(_0xe506('0x58'))][(_0xe506('0x59'))](_0xe506('0x65'));}fs[_0xe506('0x66')](_0x1f69b0);logger[_0xe506('0x67')](_0xe506('0x68'));logger[_0xe506('0x67')](_0xe506('0x69'));});});}return null;})[_0xe506('0x4a')](handleError(_0x35321a,null));};exports[_0xe506('0x6a')]=function(_0x3ebf56,_0x5b6a4d,_0x120b40){var _0x2d6549=path[_0xe506('0x53')](_0x3ebf56[_0xe506('0x6b')][_0xe506('0x6c')],path['extname'](_0x3ebf56['file'][_0xe506('0x6c')]));var _0x516084=path[_0xe506('0x4f')](config[_0xe506('0x50')],_0xe506('0x51'),_0x3ebf56['file'][_0xe506('0x6c')]);var _0x1ae02c=path[_0xe506('0x4f')](config['root'],_0xe506('0x51'),_0x2d6549);logger[_0xe506('0x67')]('Plugin\x20upload\x20filepath:\x20%s',_0x516084);logger[_0xe506('0x67')](_0xe506('0x6d'),_0x1ae02c);try{fs[_0xe506('0x6e')](_0x516084,parseInt(_0xe506('0x6f'),0x8));extract(_0x516084,{'dir':_0x1ae02c},function(_0x5dd7e9){if(_0x5dd7e9){logger[_0xe506('0x2f')](_0x5dd7e9);handleError(_0x5dd7e9,!![]);};var _0xa34757=fs[_0xe506('0x70')](_0x1ae02c);if(_0xa34757['length']>0x1){removeReferences(_0x516084,_0x1ae02c);logger[_0xe506('0x2f')](_0xe506('0x71'));return _0x120b40(new Error(_0xe506('0x71')));}var _0x521207=fs[_0xe506('0x72')](path[_0xe506('0x4f')](_0x1ae02c,_0xa34757[0x0]));if(_0x521207[_0xe506('0x73')]()){removeReferences(_0x516084,_0x1ae02c);logger[_0xe506('0x2f')]('Invalid\x20plugin\x20structure');return _0x120b40(new Error(_0xe506('0x71')));}if(_0x521207['isDirectory']()){var _0x89a6e6=fs[_0xe506('0x70')](path[_0xe506('0x4f')](_0x1ae02c,_0xa34757[0x0]));if(_0x89a6e6['length']===0x0){removeReferences(_0x516084,_0x1ae02c);logger[_0xe506('0x2f')](_0xe506('0x71'));return _0x120b40(new Error('Invalid\x20plugin\x20structure'));}var _0x19778e=_0x89a6e6[_0xe506('0x74')](function(_0x2f1fec){return _0x2f1fec===_0xe506('0x75');});if(!_0x19778e){return _0x120b40(new Error(_0xe506('0x76')));}var _0x7ff3bd=fs[_0xe506('0x77')](path[_0xe506('0x4f')](_0x1ae02c,_0xa34757[0x0],_0xe506('0x75')));var _0x20a5cc=JSON['parse'](_0x7ff3bd);if(_0xe506('0x22')==typeof _0x20a5cc[_0xe506('0x31')]){return _0x120b40(new Error(_0xe506('0x78')));}if('undefined'==typeof _0x20a5cc[_0xe506('0x37')]){return _0x120b40(new Error(_0xe506('0x79')));}if(_0xe506('0x22')==typeof _0x20a5cc[_0xe506('0x7a')]){return _0x120b40(new Error(_0xe506('0x7b')));}if('undefined'==typeof _0x20a5cc[_0xe506('0x7c')]){return _0x120b40(new Error(_0xe506('0x7d')));}if(_0x20a5cc[_0xe506('0x37')]===_0xe506('0x7e')){if('undefined'==typeof _0x20a5cc['parameters'][_0xe506('0x7f')]){return _0x120b40(new Error('Invalid\x20manifest:\x20views\x20missing'));}if('undefined'==typeof _0x20a5cc['parameters'][_0xe506('0x7f')][_0xe506('0x80')]&&'undefined'==typeof _0x20a5cc['parameters'][_0xe506('0x7f')][_0xe506('0x81')]){return _0x120b40(new Error('Invalid\x20manifest:\x20no\x20view\x20specified'));}}else if(_0x20a5cc[_0xe506('0x37')]==='script'){if(_0xe506('0x22')==typeof _0x20a5cc[_0xe506('0x7c')][_0xe506('0x82')]){return _0x120b40(new Error(_0xe506('0x83')));}if('undefined'==typeof _0x20a5cc[_0xe506('0x7c')][_0xe506('0x84')]){return _0x120b40(new Error(_0xe506('0x85')));}}else{return _0x120b40(new Error(_0xe506('0x86')));}var _0xb17a40=_0x20a5cc[_0xe506('0x31')];var _0xef9591=_0x20a5cc['description'];var _0x2711b6=_0x20a5cc[_0xe506('0x37')];var _0x41554c=_0x20a5cc['sidebar']?_0x20a5cc[_0xe506('0x87')]:_0xe506('0x88');var _0x2e25f5=_0x20a5cc['icon']?_0x20a5cc['icon']:_0xe506('0x89');var _0x54130b='';var _0x13ca92='';var _0x4747a9='';var _0x562207='';var _0x501143=_0x20a5cc[_0xe506('0x7a')];if(_0x2711b6===_0xe506('0x7e')){if(_0xe506('0x22')!=typeof _0x20a5cc[_0xe506('0x7c')][_0xe506('0x7f')][_0xe506('0x80')]){var _0x542ed3=_0x20a5cc[_0xe506('0x7c')][_0xe506('0x7f')][_0xe506('0x80')];if(!/^(f|ht)tps?:\/\//i[_0xe506('0x8a')](_0x542ed3)){_0x54130b=path[_0xe506('0x4f')](_0xe506('0x8b'),_0x2d6549,_0xa34757[0x0],_0x542ed3);}else{_0x54130b=_0x542ed3;}}else{logger[_0xe506('0x67')]('Warning:\x20admin\x20view\x20not\x20specified');}if(_0xe506('0x22')!=typeof _0x20a5cc[_0xe506('0x7c')][_0xe506('0x7f')][_0xe506('0x81')]){var _0x147db4=_0x20a5cc[_0xe506('0x7c')][_0xe506('0x7f')][_0xe506('0x81')];if(!/^(f|ht)tps?:\/\//i['test'](_0x147db4)){_0x13ca92=path[_0xe506('0x4f')](_0xe506('0x8b'),_0x2d6549,_0xa34757[0x0],_0x147db4);}else{_0x13ca92=_0x147db4;}}else{logger['info'](_0xe506('0x8c'));}}else if(_0x2711b6===_0xe506('0x8d')){_0x4747a9=_0x20a5cc[_0xe506('0x7c')][_0xe506('0x82')];_0x562207=_0x20a5cc[_0xe506('0x7c')][_0xe506('0x84')];if(_0xe506('0x22')!=typeof _0x20a5cc[_0xe506('0x7c')][_0xe506('0x7f')]){if(_0xe506('0x22')!=typeof _0x20a5cc[_0xe506('0x7c')]['views'][_0xe506('0x80')]){var _0x542ed3=_0x20a5cc['parameters'][_0xe506('0x7f')][_0xe506('0x80')];if(!/^(f|ht)tps?:\/\//i[_0xe506('0x8a')](_0x542ed3)){_0x54130b=path[_0xe506('0x4f')](_0xe506('0x8b'),_0x2d6549,_0xa34757[0x0],_0x542ed3);}else{_0x54130b=_0x542ed3;}}if(_0xe506('0x22')!=typeof _0x20a5cc[_0xe506('0x7c')][_0xe506('0x7f')][_0xe506('0x81')]){var _0x147db4=_0x20a5cc[_0xe506('0x7c')][_0xe506('0x7f')][_0xe506('0x81')];if(!/^(f|ht)tps?:\/\//i['test'](_0x147db4)){_0x13ca92=path[_0xe506('0x4f')](_0xe506('0x8b'),_0x2d6549,_0xa34757[0x0],_0x147db4);}else{_0x13ca92=_0x147db4;}}}}var _0x2fb824={'name':_0xb17a40,'description':_0xef9591,'path':path[_0xe506('0x4f')](_0x2d6549,_0xa34757[0x0]),'type':_0x2711b6,'sidebar':_0x41554c,'icon':_0x2e25f5,'adminUrl':_0x54130b,'agentUrl':_0x13ca92,'scriptName':_0x4747a9,'scriptPath':_0x562207,'version':_0x501143};removeReferences(_0x516084,null);return db['Plugin'][_0xe506('0x8e')](_0x2fb824)[_0xe506('0x2b')](function(_0x2229af){var _0x1bf9d3={'role':_0x3ebf56[_0xe506('0x8f')]['role'],'userProfileId':_0x3ebf56['body'][_0xe506('0x90')]};if(!_0x1bf9d3)throw new Error(_0xe506('0x91'));if(_0x1bf9d3[_0xe506('0x92')]===_0xe506('0x93')){var _0x320c65=_0x2229af[_0xe506('0x2d')]({'plain':!![]});return db['UserProfileSection'][_0xe506('0x4e')]({'where':{'name':_0xe506('0x2e'),'userProfileId':_0x1bf9d3[_0xe506('0x90')]},'raw':!![]})[_0xe506('0x2b')](function(_0x12ab92){if(_0x12ab92&&_0x12ab92[_0xe506('0x94')]===0x0){return db[_0xe506('0x95')][_0xe506('0x8e')]({'name':_0x320c65['name'],'resourceId':_0x320c65['id'],'type':_0x12ab92[_0xe506('0x31')],'sectionId':_0x12ab92['id']},{})[_0xe506('0x2b')](function(){return _0x2229af;});}else{return _0x2229af;}})[_0xe506('0x4a')](function(_0x24cb21){logger[_0xe506('0x2f')](_0xe506('0x96'),_0x24cb21);throw _0x24cb21;});}return _0x2229af;})['then'](respondWithResult(_0x5b6a4d,null))['catch'](handleError(_0x5b6a4d,null));}});}catch(_0x12c9fa){_0x5b6a4d['status'](0x1f4)[_0xe506('0x97')](_0x12c9fa);}};function removeReferences(_0x3cc92e,_0x3058b5){try{if(_0x3cc92e){fs[_0xe506('0x66')](_0x3cc92e);logger[_0xe506('0x67')](_0xe506('0x98'));}if(_0x3058b5){rimraf(_0x3058b5,function(){});logger[_0xe506('0x67')]('Extracted\x20folder\x20removed');}}catch(_0x50f782){logger[_0xe506('0x2f')](_0x50f782);}}exports[_0xe506('0x2a')]=function(_0x4ffd60,_0x5d5e5f,_0x2da4df){return db[_0xe506('0x34')][_0xe506('0x4e')]({'where':{'id':_0x4ffd60['params']['id']}})[_0xe506('0x2b')](handleEntityNotFound(_0x5d5e5f,null))[_0xe506('0x2b')](saveUpdates(_0x4ffd60[_0xe506('0x8f')],null))['then'](respondWithResult(_0x5d5e5f,null))['catch'](handleError(_0x5d5e5f,null));};exports['delete']=function(_0xe030a4,_0x346601,_0x16814f){return db[_0xe506('0x34')][_0xe506('0x4e')]({'where':{'id':_0xe030a4[_0xe506('0x4b')]['id']}})[_0xe506('0x2b')](function(_0x34e597){if(_0x34e597){return _0x34e597['destroy']();}})[_0xe506('0x2b')](function(_0x36f3a5){rimraf(path[_0xe506('0x4f')](config[_0xe506('0x50')],_0xe506('0x51'),path[_0xe506('0x5e')](_0x36f3a5[_0xe506('0x6')])),function(){});return _0x36f3a5;})['then'](handleEntityNotFound(_0x346601,null))[_0xe506('0x2b')](respondWithStatusCode(_0x346601,null))[_0xe506('0x4a')](handleError(_0x346601,null));};exports[_0xe506('0x99')]=function(_0x1a5a62,_0x1bafdc,_0x5c6cf7){return BPromise[_0xe506('0x9a')]()[_0xe506('0x2b')](function(){if(!_0x1a5a62[_0xe506('0x3b')][_0xe506('0x6')]){throw new Error(_0xe506('0x9b'));}if(!_0x1a5a62[_0xe506('0x3b')][_0xe506('0x9c')]){throw new Error(_0xe506('0x9d'));}var _0x3ee9b5=_0x1a5a62[_0xe506('0x3b')][_0xe506('0x9e')]?_0x1a5a62[_0xe506('0x3b')][_0xe506('0x9e')]+':'+_0x1a5a62['query'][_0xe506('0x9c')]:_0xe506('0x9f')+_0x1a5a62[_0xe506('0x3b')]['port'];var _0x18187a=_0x1a5a62[_0xe506('0x3b')][_0xe506('0x27')]?_0x1a5a62[_0xe506('0x3b')][_0xe506('0x27')]:!![];var _0x177e1b=_0x1a5a62['query'][_0xe506('0xa0')]?_0x1a5a62[_0xe506('0x3b')][_0xe506('0xa0')]:null;var _0x58cc94={'method':_0x1a5a62['method'],'uri':util[_0xe506('0xa1')](_0xe506('0xa2'),_0x3ee9b5,_0x1a5a62[_0xe506('0x3b')][_0xe506('0x6')]),'json':_0x18187a,'resolveWithFullResponse':!![],'encoding':_0x177e1b,'qs':_0x1a5a62[_0xe506('0x3b')]};if(_0x1a5a62[_0xe506('0xa3')]){_0x58cc94[_0xe506('0xa3')]=_0x1a5a62[_0xe506('0xa3')];if(_0x58cc94['headers'][_0xe506('0xa4')]){delete _0x58cc94[_0xe506('0xa3')]['content-length'];}}if(_0x58cc94['headers'][_0xe506('0xa5')]){delete _0x58cc94[_0xe506('0xa3')][_0xe506('0xa5')];}return rp(_0x58cc94);})['then'](function(_0x3783a4){if(_0x3783a4){_0x1bafdc[_0xe506('0xa6')](_0x3783a4[_0xe506('0xa3')]);logger[_0xe506('0x67')](_0x3783a4[_0xe506('0x8f')]);if(_['endsWith'](_0x1a5a62[_0xe506('0x3b')][_0xe506('0x6')],'download')&&_0x3783a4['statusCode']==0x1f4){return _0x1bafdc['sendStatus'](_0x3783a4['statusCode']);}else{return _0x1bafdc[_0xe506('0x20')](_0x3783a4[_0xe506('0xa7')])[_0xe506('0x97')](_0x3783a4[_0xe506('0x8f')]);}}else{return _0x1bafdc[_0xe506('0x1f')](0xc8);}})[_0xe506('0x4a')](handleError(_0x1bafdc,null));};exports[_0xe506('0xa8')]=function(_0x5c1aaf,_0x3ded3e,_0x1caeac){return BPromise['resolve']()[_0xe506('0x2b')](function(){if(!_0x5c1aaf[_0xe506('0x3b')][_0xe506('0x6')]){throw new Error(_0xe506('0x9b'));}if(!_0x5c1aaf[_0xe506('0x3b')]['port']){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x37947d=_0x5c1aaf[_0xe506('0x3b')]['hostname']?_0x5c1aaf[_0xe506('0x3b')][_0xe506('0x9e')]+':'+_0x5c1aaf[_0xe506('0x3b')][_0xe506('0x9c')]:_0xe506('0x9f')+_0x5c1aaf[_0xe506('0x3b')][_0xe506('0x9c')];var _0x30bfd9=_0x5c1aaf[_0xe506('0x3b')][_0xe506('0x27')]?_0x5c1aaf['query'][_0xe506('0x27')]:!![];var _0x43e0d1=_0x5c1aaf[_0xe506('0x3b')]['encoding']?_0x5c1aaf[_0xe506('0x3b')]['encoding']:null;var _0x90e54d={'method':_0x5c1aaf[_0xe506('0xa9')],'uri':util['format'](_0xe506('0xa2'),_0x37947d,_0x5c1aaf[_0xe506('0x3b')][_0xe506('0x6')]),'json':_0x30bfd9,'resolveWithFullResponse':!![],'encoding':_0x43e0d1,'body':_0x5c1aaf[_0xe506('0x8f')]};if(_0x5c1aaf[_0xe506('0xa3')]){_0x90e54d['headers']=_0x5c1aaf[_0xe506('0xa3')];if(_0x90e54d[_0xe506('0xa3')][_0xe506('0xa4')]){delete _0x90e54d[_0xe506('0xa3')][_0xe506('0xa4')];}}if(_0x90e54d[_0xe506('0xa3')][_0xe506('0xa5')]){delete _0x90e54d['headers'][_0xe506('0xa5')];}return rp(_0x90e54d);})[_0xe506('0x2b')](function(_0x4ea39e){if(_0x4ea39e){_0x3ded3e['set'](_0x4ea39e[_0xe506('0xa3')]);logger['info'](_0x4ea39e['body']);return _0x3ded3e[_0xe506('0x20')](_0x4ea39e[_0xe506('0xa7')])[_0xe506('0x97')](_0x4ea39e['body']);}else{return _0x3ded3e[_0xe506('0x1f')](0xc8);}})[_0xe506('0x4a')](handleError(_0x3ded3e,null));};