Built motion from commit c738b9ac.|2.6.25
[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 _0x64ed=['path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','extract-zip','archiver','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','update','then','destroy','Plugins','UserProfileResource','error','stack','name','send','index','map','rawAttributes','type','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','Plugin','rows','catch','show','keys','include','find','download','params','join','root','format','%s.zip','createWriteStream','zip','code','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','glob','**/*','server/files/plugins','dirname','basename','node_modules/**/*','attachments/**/*','finalize','existsSync','Plugin\x20not\x20found','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','Download\x20completed','Temporary\x20file\x20removed','upload','file','extname','filename','info','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','0777','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','some','manifest.json','Plugin\x20manifest\x20missing','readFileSync','parse','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','html','parameters','Invalid\x20manifest:\x20views\x20missing','views','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','sidebar','always','icon','admin','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','Warning:\x20agent\x20view\x20not\x20specified','create','body','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','encoding','method','headers','content-length','set','endsWith','statusCode','webhookPost','http://localhost:','content-type','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache'];(function(_0x5d00f6,_0x1eb211){var _0x2e3ad2=function(_0x57a06e){while(--_0x57a06e){_0x5d00f6['push'](_0x5d00f6['shift']());}};_0x2e3ad2(++_0x1eb211);}(_0x64ed,0x15b));var _0xd64e=function(_0x42bebf,_0x2dcee6){_0x42bebf=_0x42bebf-0x0;var _0x3888ea=_0x64ed[_0x42bebf];return _0x3888ea;};'use strict';var emlformat=require(_0xd64e('0x0'));var rimraf=require(_0xd64e('0x1'));var zipdir=require(_0xd64e('0x2'));var jsonpatch=require(_0xd64e('0x3'));var rp=require(_0xd64e('0x4'));var moment=require(_0xd64e('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xd64e('0x6'));var util=require('util');var path=require(_0xd64e('0x7'));var sox=require(_0xd64e('0x8'));var csv=require(_0xd64e('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd64e('0xa'));var _=require(_0xd64e('0xb'));var squel=require(_0xd64e('0xc'));var crypto=require(_0xd64e('0xd'));var jsforce=require(_0xd64e('0xe'));var deskjs=require(_0xd64e('0xf'));var toCsv=require(_0xd64e('0x9'));var querystring=require(_0xd64e('0x10'));var Papa=require(_0xd64e('0x11'));var extract=require(_0xd64e('0x12'));var rimraf=require(_0xd64e('0x1'));var archiver=require(_0xd64e('0x13'));var Redis=require(_0xd64e('0x14'));var authService=require(_0xd64e('0x15'));var qs=require(_0xd64e('0x16'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd64e('0x17'));var logger=require('../../config/logger')('api');var utils=require(_0xd64e('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xd64e('0x19'));var db=require(_0xd64e('0x1a'))['db'];config[_0xd64e('0x1b')]=_[_0xd64e('0x1c')](config['redis'],{'host':_0xd64e('0x1d'),'port':0x18eb});var socket=require(_0xd64e('0x1e'))(new Redis(config[_0xd64e('0x1b')]));require(_0xd64e('0x1f'))[_0xd64e('0x20')](socket);function respondWithStatusCode(_0x45301f,_0x17a359){_0x17a359=_0x17a359||0xcc;return function(_0x92f605){if(_0x92f605){return _0x45301f[_0xd64e('0x21')](_0x17a359);}return _0x45301f[_0xd64e('0x22')](_0x17a359)[_0xd64e('0x23')]();};}function respondWithResult(_0x399fe4,_0x20c762){_0x20c762=_0x20c762||0xc8;return function(_0x2965a7){if(_0x2965a7){return _0x399fe4[_0xd64e('0x22')](_0x20c762)[_0xd64e('0x24')](_0x2965a7);}};}function respondWithFilteredResult(_0x7bd495,_0x25745a){return function(_0x2d5e81){if(_0x2d5e81){var _0x183a68=typeof _0x25745a[_0xd64e('0x25')]===_0xd64e('0x26')&&typeof _0x25745a[_0xd64e('0x27')]===_0xd64e('0x26');var _0x5e0104=_0x2d5e81[_0xd64e('0x28')];var _0x55f972=_0x183a68?0x0:_0x25745a[_0xd64e('0x25')];var _0x1b534e=_0x183a68?_0x2d5e81['count']:_0x25745a['offset']+_0x25745a[_0xd64e('0x27')];var _0xceac7d;if(_0x1b534e>=_0x5e0104){_0x1b534e=_0x5e0104;_0xceac7d=0xc8;}else{_0xceac7d=0xce;}_0x7bd495['status'](_0xceac7d);return _0x7bd495['set'](_0xd64e('0x29'),_0x55f972+'-'+_0x1b534e+'/'+_0x5e0104)[_0xd64e('0x24')](_0x2d5e81);}return null;};}function patchUpdates(_0x181ec3){return function(_0x458119){try{jsonpatch[_0xd64e('0x2a')](_0x458119,_0x181ec3,!![]);}catch(_0x53d8df){return BPromise['reject'](_0x53d8df);}return _0x458119['save']();};}function saveUpdates(_0x1b71be,_0x429f6a){return function(_0x65c2f4){if(_0x65c2f4){return _0x65c2f4[_0xd64e('0x2b')](_0x1b71be)[_0xd64e('0x2c')](function(_0x533cfe){return _0x533cfe;});}return null;};}function removeEntity(_0x1b27cd,_0x2d6f8c){return function(_0x2c5f8f){if(_0x2c5f8f){return _0x2c5f8f[_0xd64e('0x2d')]()[_0xd64e('0x2c')](function(){var _0x5cdde4=_0x2c5f8f['get']({'plain':!![]});var _0x5e9c29=_0xd64e('0x2e');return db[_0xd64e('0x2f')][_0xd64e('0x2d')]({'where':{'type':_0x5e9c29,'resourceId':_0x5cdde4['id']}})['then'](function(){return _0x2c5f8f;});})[_0xd64e('0x2c')](function(){_0x1b27cd[_0xd64e('0x22')](0xcc)[_0xd64e('0x23')]();});}};}function handleEntityNotFound(_0x535d16,_0x353a0b){return function(_0x5ef70a){if(!_0x5ef70a){_0x535d16['sendStatus'](0x194);}return _0x5ef70a;};}function handleError(_0x535422,_0x5707e2){_0x5707e2=_0x5707e2||0x1f4;return function(_0x25310a){logger[_0xd64e('0x30')](_0x25310a[_0xd64e('0x31')]);if(_0x25310a[_0xd64e('0x32')]){delete _0x25310a[_0xd64e('0x32')];}_0x535422[_0xd64e('0x22')](_0x5707e2)[_0xd64e('0x33')](_0x25310a);};}exports[_0xd64e('0x34')]=function(_0x338a0a,_0x2186a2){var _0xcc9c9d={},_0x2b07d8={},_0xcb0c81={'count':0x0,'rows':[]};var _0x4ea566=_[_0xd64e('0x35')](db['Plugin'][_0xd64e('0x36')],function(_0x64916a){return{'name':_0x64916a['fieldName'],'type':_0x64916a[_0xd64e('0x37')][_0xd64e('0x38')]};});_0x2b07d8[_0xd64e('0x39')]=_['map'](_0x4ea566,_0xd64e('0x32'));_0x2b07d8[_0xd64e('0x3a')]=_['keys'](_0x338a0a[_0xd64e('0x3a')]);_0x2b07d8[_0xd64e('0x3b')]=_[_0xd64e('0x3c')](_0x2b07d8[_0xd64e('0x39')],_0x2b07d8['query']);_0xcc9c9d['attributes']=_[_0xd64e('0x3c')](_0x2b07d8['model'],qs[_0xd64e('0x3d')](_0x338a0a['query'][_0xd64e('0x3d')]));_0xcc9c9d[_0xd64e('0x3e')]=_0xcc9c9d[_0xd64e('0x3e')][_0xd64e('0x3f')]?_0xcc9c9d[_0xd64e('0x3e')]:_0x2b07d8[_0xd64e('0x39')];if(!_0x338a0a[_0xd64e('0x3a')][_0xd64e('0x40')](_0xd64e('0x41'))){_0xcc9c9d[_0xd64e('0x27')]=qs[_0xd64e('0x27')](_0x338a0a[_0xd64e('0x3a')][_0xd64e('0x27')]);_0xcc9c9d[_0xd64e('0x25')]=qs[_0xd64e('0x25')](_0x338a0a['query'][_0xd64e('0x25')]);}_0xcc9c9d[_0xd64e('0x42')]=qs[_0xd64e('0x43')](_0x338a0a[_0xd64e('0x3a')][_0xd64e('0x43')]);_0xcc9c9d[_0xd64e('0x44')]=qs[_0xd64e('0x3b')](_[_0xd64e('0x45')](_0x338a0a['query'],_0x2b07d8[_0xd64e('0x3b')]),_0x4ea566);if(_0x338a0a[_0xd64e('0x3a')][_0xd64e('0x46')]){_0xcc9c9d[_0xd64e('0x44')]=_[_0xd64e('0x47')](_0xcc9c9d[_0xd64e('0x44')],{'$or':_[_0xd64e('0x35')](_0x4ea566,function(_0x55ffc6){if(_0x55ffc6[_0xd64e('0x37')]!==_0xd64e('0x48')){var _0x18098e={};_0x18098e[_0x55ffc6[_0xd64e('0x32')]]={'$like':'%'+_0x338a0a[_0xd64e('0x3a')][_0xd64e('0x46')]+'%'};return _0x18098e;}})});}_0xcc9c9d=_[_0xd64e('0x47')]({},_0xcc9c9d,_0x338a0a[_0xd64e('0x49')]);var _0x4ea258={'where':_0xcc9c9d[_0xd64e('0x44')]};return db['Plugin'][_0xd64e('0x28')](_0x4ea258)[_0xd64e('0x2c')](function(_0x24491d){_0xcb0c81[_0xd64e('0x28')]=_0x24491d;if(_0x338a0a['query'][_0xd64e('0x4a')]){_0xcc9c9d['include']=[{'all':!![]}];}return db[_0xd64e('0x4b')]['findAll'](_0xcc9c9d);})[_0xd64e('0x2c')](function(_0x50ab92){_0xcb0c81[_0xd64e('0x4c')]=_0x50ab92;return _0xcb0c81;})[_0xd64e('0x2c')](respondWithFilteredResult(_0x2186a2,_0xcc9c9d))[_0xd64e('0x4d')](handleError(_0x2186a2,null));};exports[_0xd64e('0x4e')]=function(_0x21fd5c,_0x3f6ce7){var _0x3efb7c={'raw':!![],'where':{'id':_0x21fd5c['params']['id']}},_0x57b4b0={};_0x57b4b0[_0xd64e('0x39')]=_[_0xd64e('0x4f')](db['Plugin'][_0xd64e('0x36')]);_0x57b4b0[_0xd64e('0x3a')]=_[_0xd64e('0x4f')](_0x21fd5c['query']);_0x57b4b0[_0xd64e('0x3b')]=_[_0xd64e('0x3c')](_0x57b4b0['model'],_0x57b4b0[_0xd64e('0x3a')]);_0x3efb7c['attributes']=_[_0xd64e('0x3c')](_0x57b4b0['model'],qs[_0xd64e('0x3d')](_0x21fd5c[_0xd64e('0x3a')][_0xd64e('0x3d')]));_0x3efb7c[_0xd64e('0x3e')]=_0x3efb7c['attributes'][_0xd64e('0x3f')]?_0x3efb7c[_0xd64e('0x3e')]:_0x57b4b0[_0xd64e('0x39')];if(_0x21fd5c[_0xd64e('0x3a')][_0xd64e('0x4a')]){_0x3efb7c[_0xd64e('0x50')]=[{'all':!![]}];}_0x3efb7c=_['merge']({},_0x3efb7c,_0x21fd5c['options']);return db[_0xd64e('0x4b')][_0xd64e('0x51')](_0x3efb7c)['then'](handleEntityNotFound(_0x3f6ce7,null))[_0xd64e('0x2c')](respondWithResult(_0x3f6ce7,null))[_0xd64e('0x4d')](handleError(_0x3f6ce7,null));};exports[_0xd64e('0x52')]=function(_0x148444,_0x2e2756,_0x5c5702){return db[_0xd64e('0x4b')]['find']({'where':{'id':_0x148444[_0xd64e('0x53')]['id']},'attributes':[_0xd64e('0x32'),_0xd64e('0x7')],'raw':!![]})[_0xd64e('0x2c')](handleEntityNotFound(_0x2e2756,null))['then'](function(_0xd860cd){if(_0xd860cd){var _0x2ae51d=path[_0xd64e('0x54')](config[_0xd64e('0x55')],'server/files/plugins',util[_0xd64e('0x56')](_0xd64e('0x57'),path['basename'](_0xd860cd[_0xd64e('0x7')])));var _0xd30f04=fs[_0xd64e('0x58')](_0x2ae51d);var _0x27308c=archiver(_0xd64e('0x59'),{'zlib':{'level':0x9}});_0x27308c['on']('warning',function(_0x4eade7){if(_0x4eade7[_0xd64e('0x5a')]===_0xd64e('0x5b')){logger[_0xd64e('0x30')](_0x4eade7);}else{throw new db[(_0xd64e('0x5c'))][(_0xd64e('0x5d'))](_0xd64e('0x5e'));}});_0x27308c['on'](_0xd64e('0x30'),function(_0x4fd208){throw new db[(_0xd64e('0x5c'))][(_0xd64e('0x5d'))]('Error\x20while\x20generating\x20the\x20zip\x20archive');});_0x27308c['pipe'](_0xd30f04);_0x27308c[_0xd64e('0x5f')](_0xd64e('0x60'),{'cwd':path['join'](config[_0xd64e('0x55')],_0xd64e('0x61'),path[_0xd64e('0x62')](_0xd860cd[_0xd64e('0x7')])),'ignore':[path[_0xd64e('0x54')](path[_0xd64e('0x63')](_0xd860cd[_0xd64e('0x7')]),_0xd64e('0x64')),path[_0xd64e('0x54')](path[_0xd64e('0x63')](_0xd860cd[_0xd64e('0x7')]),_0xd64e('0x65'))],'nodir':!![]})[_0xd64e('0x66')]();_0xd30f04['on']('close',function(){if(!fs[_0xd64e('0x67')](_0x2ae51d)){throw new db['Sequelize'][(_0xd64e('0x5d'))](_0xd64e('0x68'));}return _0x2e2756[_0xd64e('0x52')](_0x2ae51d,util[_0xd64e('0x56')](_0xd64e('0x57'),path[_0xd64e('0x63')](_0xd860cd[_0xd64e('0x7')])),function(_0x560d12){if(_0x560d12){throw new db[(_0xd64e('0x5c'))]['Error'](_0xd64e('0x69'));}fs[_0xd64e('0x6a')](_0x2ae51d);logger['info'](_0xd64e('0x6b'));logger['info'](_0xd64e('0x6c'));});});}return null;})['catch'](handleError(_0x2e2756,null));};exports[_0xd64e('0x6d')]=function(_0x543473,_0x1a83e4,_0x1d16d1){var _0x1366f4=path[_0xd64e('0x63')](_0x543473[_0xd64e('0x6e')]['filename'],path[_0xd64e('0x6f')](_0x543473[_0xd64e('0x6e')][_0xd64e('0x70')]));var _0x4ad5f4=path[_0xd64e('0x54')](config[_0xd64e('0x55')],_0xd64e('0x61'),_0x543473[_0xd64e('0x6e')][_0xd64e('0x70')]);var _0x86ede9=path['join'](config['root'],_0xd64e('0x61'),_0x1366f4);logger[_0xd64e('0x71')](_0xd64e('0x72'),_0x4ad5f4);logger[_0xd64e('0x71')](_0xd64e('0x73'),_0x86ede9);try{fs[_0xd64e('0x74')](_0x4ad5f4,parseInt(_0xd64e('0x75'),0x8));extract(_0x4ad5f4,{'dir':_0x86ede9},function(_0xd0987b){if(_0xd0987b){logger[_0xd64e('0x30')](_0xd0987b);handleError(_0xd0987b,!![]);};var _0x4f7055=fs[_0xd64e('0x76')](_0x86ede9);if(_0x4f7055[_0xd64e('0x3f')]>0x1){removeReferences(_0x4ad5f4,_0x86ede9);logger[_0xd64e('0x30')](_0xd64e('0x77'));return _0x1d16d1(new Error(_0xd64e('0x77')));}var _0x557079=fs[_0xd64e('0x78')](path['join'](_0x86ede9,_0x4f7055[0x0]));if(_0x557079[_0xd64e('0x79')]()){removeReferences(_0x4ad5f4,_0x86ede9);logger[_0xd64e('0x30')]('Invalid\x20plugin\x20structure');return _0x1d16d1(new Error(_0xd64e('0x77')));}if(_0x557079[_0xd64e('0x7a')]()){var _0x1d1dd1=fs[_0xd64e('0x76')](path['join'](_0x86ede9,_0x4f7055[0x0]));if(_0x1d1dd1[_0xd64e('0x3f')]===0x0){removeReferences(_0x4ad5f4,_0x86ede9);logger[_0xd64e('0x30')]('Invalid\x20plugin\x20structure');return _0x1d16d1(new Error(_0xd64e('0x77')));}var _0x5edd8e=_0x1d1dd1[_0xd64e('0x7b')](function(_0x2241f3){return _0x2241f3===_0xd64e('0x7c');});if(!_0x5edd8e){return _0x1d16d1(new Error(_0xd64e('0x7d')));}var _0x3d1d59=fs[_0xd64e('0x7e')](path[_0xd64e('0x54')](_0x86ede9,_0x4f7055[0x0],_0xd64e('0x7c')));var _0x3fc2e5=JSON[_0xd64e('0x7f')](_0x3d1d59);if(_0xd64e('0x26')==typeof _0x3fc2e5[_0xd64e('0x32')]){return _0x1d16d1(new Error(_0xd64e('0x80')));}if(_0xd64e('0x26')==typeof _0x3fc2e5[_0xd64e('0x37')]){return _0x1d16d1(new Error(_0xd64e('0x81')));}if(_0xd64e('0x26')==typeof _0x3fc2e5[_0xd64e('0x82')]){return _0x1d16d1(new Error(_0xd64e('0x83')));}if(_0xd64e('0x26')==typeof _0x3fc2e5['parameters']){return _0x1d16d1(new Error('Invalid\x20manifest:\x20parameters\x20missing'));}if(_0x3fc2e5['type']===_0xd64e('0x84')){if(_0xd64e('0x26')==typeof _0x3fc2e5[_0xd64e('0x85')]['views']){return _0x1d16d1(new Error(_0xd64e('0x86')));}if(_0xd64e('0x26')==typeof _0x3fc2e5[_0xd64e('0x85')][_0xd64e('0x87')]['admin']&&_0xd64e('0x26')==typeof _0x3fc2e5[_0xd64e('0x85')]['views'][_0xd64e('0x88')]){return _0x1d16d1(new Error(_0xd64e('0x89')));}}else if(_0x3fc2e5[_0xd64e('0x37')]===_0xd64e('0x8a')){if('undefined'==typeof _0x3fc2e5['parameters'][_0xd64e('0x8b')]){return _0x1d16d1(new Error(_0xd64e('0x8c')));}if('undefined'==typeof _0x3fc2e5['parameters'][_0xd64e('0x8d')]){return _0x1d16d1(new Error(_0xd64e('0x8e')));}}else{return _0x1d16d1(new Error(_0xd64e('0x8f')));}var _0x1e5389=_0x3fc2e5[_0xd64e('0x32')];var _0x1c22d2=_0x3fc2e5['description'];var _0xbd3107=_0x3fc2e5[_0xd64e('0x37')];var _0x2d2503=_0x3fc2e5[_0xd64e('0x90')]?_0x3fc2e5['sidebar']:_0xd64e('0x91');var _0x35c27b=_0x3fc2e5['icon']?_0x3fc2e5[_0xd64e('0x92')]:'icon-apps';var _0x41ed17='';var _0xd940a8='';var _0xdda3cb='';var _0x2c0e90='';var _0x30911c=_0x3fc2e5[_0xd64e('0x82')];if(_0xbd3107===_0xd64e('0x84')){if(_0xd64e('0x26')!=typeof _0x3fc2e5[_0xd64e('0x85')][_0xd64e('0x87')][_0xd64e('0x93')]){var _0x4ccc2b=_0x3fc2e5[_0xd64e('0x85')][_0xd64e('0x87')][_0xd64e('0x93')];if(!/^(f|ht)tps?:\/\//i[_0xd64e('0x94')](_0x4ccc2b)){_0x41ed17=path[_0xd64e('0x54')](_0xd64e('0x95'),_0x1366f4,_0x4f7055[0x0],_0x4ccc2b);}else{_0x41ed17=_0x4ccc2b;}}else{logger['info'](_0xd64e('0x96'));}if(_0xd64e('0x26')!=typeof _0x3fc2e5[_0xd64e('0x85')]['views'][_0xd64e('0x88')]){var _0x3208bd=_0x3fc2e5['parameters'][_0xd64e('0x87')][_0xd64e('0x88')];if(!/^(f|ht)tps?:\/\//i['test'](_0x3208bd)){_0xd940a8=path['join'](_0xd64e('0x95'),_0x1366f4,_0x4f7055[0x0],_0x3208bd);}else{_0xd940a8=_0x3208bd;}}else{logger[_0xd64e('0x71')](_0xd64e('0x97'));}}else if(_0xbd3107===_0xd64e('0x8a')){_0xdda3cb=_0x3fc2e5[_0xd64e('0x85')][_0xd64e('0x8b')];_0x2c0e90=_0x3fc2e5[_0xd64e('0x85')][_0xd64e('0x8d')];if(_0xd64e('0x26')!=typeof _0x3fc2e5['parameters']['views']){if(_0xd64e('0x26')!=typeof _0x3fc2e5[_0xd64e('0x85')][_0xd64e('0x87')]['admin']){var _0x4ccc2b=_0x3fc2e5['parameters']['views'][_0xd64e('0x93')];if(!/^(f|ht)tps?:\/\//i[_0xd64e('0x94')](_0x4ccc2b)){_0x41ed17=path[_0xd64e('0x54')]('plugins',_0x1366f4,_0x4f7055[0x0],_0x4ccc2b);}else{_0x41ed17=_0x4ccc2b;}}if(_0xd64e('0x26')!=typeof _0x3fc2e5[_0xd64e('0x85')][_0xd64e('0x87')]['agent']){var _0x3208bd=_0x3fc2e5['parameters'][_0xd64e('0x87')][_0xd64e('0x88')];if(!/^(f|ht)tps?:\/\//i[_0xd64e('0x94')](_0x3208bd)){_0xd940a8=path[_0xd64e('0x54')](_0xd64e('0x95'),_0x1366f4,_0x4f7055[0x0],_0x3208bd);}else{_0xd940a8=_0x3208bd;}}}}var _0x455190={'name':_0x1e5389,'description':_0x1c22d2,'path':path['join'](_0x1366f4,_0x4f7055[0x0]),'type':_0xbd3107,'sidebar':_0x2d2503,'icon':_0x35c27b,'adminUrl':_0x41ed17,'agentUrl':_0xd940a8,'scriptName':_0xdda3cb,'scriptPath':_0x2c0e90,'version':_0x30911c};removeReferences(_0x4ad5f4,null);return db[_0xd64e('0x4b')][_0xd64e('0x98')](_0x455190)[_0xd64e('0x2c')](function(_0x402667){var _0x155ac6={'role':_0x543473[_0xd64e('0x99')][_0xd64e('0x9a')],'userProfileId':_0x543473[_0xd64e('0x99')][_0xd64e('0x9b')]};if(!_0x155ac6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x155ac6[_0xd64e('0x9a')]==='user'){var _0x2ca486=_0x402667['get']({'plain':!![]});return db['UserProfileSection'][_0xd64e('0x51')]({'where':{'name':_0xd64e('0x2e'),'userProfileId':_0x155ac6[_0xd64e('0x9b')]},'raw':!![]})['then'](function(_0x3713e2){if(_0x3713e2&&_0x3713e2[_0xd64e('0x9c')]===0x0){return db[_0xd64e('0x2f')][_0xd64e('0x98')]({'name':_0x2ca486[_0xd64e('0x32')],'resourceId':_0x2ca486['id'],'type':_0x3713e2[_0xd64e('0x32')],'sectionId':_0x3713e2['id']},{})[_0xd64e('0x2c')](function(){return _0x402667;});}else{return _0x402667;}})[_0xd64e('0x4d')](function(_0x1754e8){logger[_0xd64e('0x30')](_0xd64e('0x9d'),_0x1754e8);throw _0x1754e8;});}return _0x402667;})[_0xd64e('0x2c')](respondWithResult(_0x1a83e4,null))[_0xd64e('0x4d')](handleError(_0x1a83e4,null));}});}catch(_0x5f34e3){_0x1a83e4['status'](0x1f4)['send'](_0x5f34e3);}};function removeReferences(_0xc149b4,_0x53dac1){try{if(_0xc149b4){fs['unlinkSync'](_0xc149b4);logger[_0xd64e('0x71')](_0xd64e('0x9e'));}if(_0x53dac1){rimraf(_0x53dac1,function(){});logger['info'](_0xd64e('0x9f'));}}catch(_0x5c6124){logger[_0xd64e('0x30')](_0x5c6124);}}exports['update']=function(_0x3ada86,_0x111cba,_0x27183c){return db[_0xd64e('0x4b')][_0xd64e('0x51')]({'where':{'id':_0x3ada86[_0xd64e('0x53')]['id']}})[_0xd64e('0x2c')](handleEntityNotFound(_0x111cba,null))[_0xd64e('0x2c')](saveUpdates(_0x3ada86[_0xd64e('0x99')],null))[_0xd64e('0x2c')](respondWithResult(_0x111cba,null))[_0xd64e('0x4d')](handleError(_0x111cba,null));};exports[_0xd64e('0xa0')]=function(_0x219f2d,_0x57a77a,_0x341f5e){return db['Plugin'][_0xd64e('0x51')]({'where':{'id':_0x219f2d[_0xd64e('0x53')]['id']}})[_0xd64e('0x2c')](function(_0x2e437c){if(_0x2e437c){return _0x2e437c[_0xd64e('0x2d')]();}})[_0xd64e('0x2c')](function(_0x50f723){rimraf(path['join'](config[_0xd64e('0x55')],_0xd64e('0x61'),path[_0xd64e('0x62')](_0x50f723[_0xd64e('0x7')])),function(){});return _0x50f723;})[_0xd64e('0x2c')](handleEntityNotFound(_0x57a77a,null))[_0xd64e('0x2c')](respondWithStatusCode(_0x57a77a,null))[_0xd64e('0x4d')](handleError(_0x57a77a,null));};exports[_0xd64e('0xa1')]=function(_0x44bcc3,_0x130ed4,_0x5791c3){return BPromise[_0xd64e('0xa2')]()[_0xd64e('0x2c')](function(){if(!_0x44bcc3[_0xd64e('0x3a')][_0xd64e('0x7')]){throw new Error(_0xd64e('0xa3'));}if(!_0x44bcc3[_0xd64e('0x3a')][_0xd64e('0xa4')]){throw new Error(_0xd64e('0xa5'));}var _0x5712ce=_0x44bcc3['query'][_0xd64e('0xa6')]?_0x44bcc3[_0xd64e('0x3a')]['hostname']+':'+_0x44bcc3[_0xd64e('0x3a')][_0xd64e('0xa4')]:'http://localhost:'+_0x44bcc3[_0xd64e('0x3a')][_0xd64e('0xa4')];var _0x116a14=_0x44bcc3[_0xd64e('0x3a')][_0xd64e('0x24')]?_0x44bcc3['query'][_0xd64e('0x24')]:!![];var _0x19ae73=_0x44bcc3[_0xd64e('0x3a')][_0xd64e('0xa7')]?_0x44bcc3[_0xd64e('0x3a')]['encoding']:null;var _0x5d8593={'method':_0x44bcc3[_0xd64e('0xa8')],'uri':util[_0xd64e('0x56')]('%s%s',_0x5712ce,_0x44bcc3[_0xd64e('0x3a')][_0xd64e('0x7')]),'json':_0x116a14,'resolveWithFullResponse':!![],'encoding':_0x19ae73,'qs':_0x44bcc3[_0xd64e('0x3a')]};if(_0x44bcc3[_0xd64e('0xa9')]){_0x5d8593['headers']=_0x44bcc3[_0xd64e('0xa9')];if(_0x5d8593['headers'][_0xd64e('0xaa')]){delete _0x5d8593[_0xd64e('0xa9')][_0xd64e('0xaa')];}}if(_0x5d8593['headers']['content-type']){delete _0x5d8593['headers']['content-type'];}return rp(_0x5d8593);})['then'](function(_0x4d8dec){if(_0x4d8dec){_0x130ed4[_0xd64e('0xab')](_0x4d8dec[_0xd64e('0xa9')]);logger[_0xd64e('0x71')](_0x4d8dec[_0xd64e('0x99')]);if(_[_0xd64e('0xac')](_0x44bcc3[_0xd64e('0x3a')]['path'],_0xd64e('0x52'))&&_0x4d8dec[_0xd64e('0xad')]==0x1f4){return _0x130ed4['sendStatus'](_0x4d8dec[_0xd64e('0xad')]);}else{return _0x130ed4[_0xd64e('0x22')](_0x4d8dec[_0xd64e('0xad')])[_0xd64e('0x33')](_0x4d8dec[_0xd64e('0x99')]);}}else{return _0x130ed4[_0xd64e('0x21')](0xc8);}})['catch'](handleError(_0x130ed4,null));};exports[_0xd64e('0xae')]=function(_0x440f4a,_0x201e17,_0x45843b){return BPromise[_0xd64e('0xa2')]()['then'](function(){if(!_0x440f4a[_0xd64e('0x3a')][_0xd64e('0x7')]){throw new Error(_0xd64e('0xa3'));}if(!_0x440f4a[_0xd64e('0x3a')][_0xd64e('0xa4')]){throw new Error(_0xd64e('0xa5'));}var _0x4641f4=_0x440f4a[_0xd64e('0x3a')]['hostname']?_0x440f4a[_0xd64e('0x3a')][_0xd64e('0xa6')]+':'+_0x440f4a['query'][_0xd64e('0xa4')]:_0xd64e('0xaf')+_0x440f4a['query'][_0xd64e('0xa4')];var _0x314c0f=_0x440f4a[_0xd64e('0x3a')][_0xd64e('0x24')]?_0x440f4a[_0xd64e('0x3a')][_0xd64e('0x24')]:!![];var _0x24d7f9=_0x440f4a['query'][_0xd64e('0xa7')]?_0x440f4a[_0xd64e('0x3a')][_0xd64e('0xa7')]:null;var _0x323cd9={'method':_0x440f4a['method'],'uri':util['format']('%s%s',_0x4641f4,_0x440f4a[_0xd64e('0x3a')][_0xd64e('0x7')]),'json':_0x314c0f,'resolveWithFullResponse':!![],'encoding':_0x24d7f9,'body':_0x440f4a['body']};if(_0x440f4a[_0xd64e('0xa9')]){_0x323cd9[_0xd64e('0xa9')]=_0x440f4a[_0xd64e('0xa9')];if(_0x323cd9[_0xd64e('0xa9')][_0xd64e('0xaa')]){delete _0x323cd9['headers'][_0xd64e('0xaa')];}}if(_0x323cd9[_0xd64e('0xa9')][_0xd64e('0xb0')]){delete _0x323cd9[_0xd64e('0xa9')][_0xd64e('0xb0')];}return rp(_0x323cd9);})[_0xd64e('0x2c')](function(_0x4946ac){if(_0x4946ac){_0x201e17[_0xd64e('0xab')](_0x4946ac[_0xd64e('0xa9')]);logger[_0xd64e('0x71')](_0x4946ac[_0xd64e('0x99')]);return _0x201e17[_0xd64e('0x22')](_0x4946ac[_0xd64e('0xad')])['send'](_0x4946ac[_0xd64e('0x99')]);}else{return _0x201e17['sendStatus'](0xc8);}})[_0xd64e('0x4d')](handleError(_0x201e17,null));};