Built motion from commit e02f907f.|2.6.14
[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 _0xa071=['scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','always','icon','icon-apps','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','Warning:\x20agent\x20view\x20not\x20specified','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','send','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','method','headers','content-length','content-type','endsWith','statusCode','webhookPost','%s%s','eml-format','rimraf','zip-dir','moment','util','path','to-csv','ejs','lodash','squel','crypto','querystring','papaparse','extract-zip','archiver','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','get','Plugins','UserProfileResource','end','error','name','map','Plugin','rawAttributes','type','key','query','intersection','model','attributes','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','rows','show','params','keys','fields','length','find','catch','download','root','format','basename','createWriteStream','zip','warning','code','ENOENT','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','Sequelize','pipe','glob','**/*','join','server/files/plugins','dirname','node_modules/**/*','finalize','close','Plugin\x20not\x20found','%s.zip','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','upload','file','filename','extname','chmodSync','0777','Invalid\x20plugin\x20structure','lstatSync','isFile','some','manifest.json','Plugin\x20manifest\x20missing','parse','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','Invalid\x20manifest:\x20parameters\x20missing','parameters','views','Invalid\x20manifest:\x20views\x20missing','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing'];(function(_0x1927dc,_0x235225){var _0x4882dc=function(_0x419205){while(--_0x419205){_0x1927dc['push'](_0x1927dc['shift']());}};_0x4882dc(++_0x235225);}(_0xa071,0x17d));var _0x1a07=function(_0x11c471,_0x1f9001){_0x11c471=_0x11c471-0x0;var _0x18285e=_0xa071[_0x11c471];return _0x18285e;};'use strict';var emlformat=require(_0x1a07('0x0'));var rimraf=require(_0x1a07('0x1'));var zipdir=require(_0x1a07('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x1a07('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x1a07('0x4'));var path=require(_0x1a07('0x5'));var sox=require('sox');var csv=require(_0x1a07('0x6'));var ejs=require(_0x1a07('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x1a07('0x8'));var squel=require(_0x1a07('0x9'));var crypto=require(_0x1a07('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x1a07('0x6'));var querystring=require(_0x1a07('0xb'));var Papa=require(_0x1a07('0xc'));var extract=require(_0x1a07('0xd'));var rimraf=require(_0x1a07('0x1'));var archiver=require(_0x1a07('0xe'));var Redis=require('ioredis');var authService=require(_0x1a07('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x1a07('0x10'));var hardwareService=require(_0x1a07('0x11'));var logger=require(_0x1a07('0x12'))(_0x1a07('0x13'));var utils=require(_0x1a07('0x14'));var config=require(_0x1a07('0x15'));var licenseUtil=require(_0x1a07('0x16'));var db=require(_0x1a07('0x17'))['db'];config[_0x1a07('0x18')]=_['defaults'](config[_0x1a07('0x18')],{'host':_0x1a07('0x19'),'port':0x18eb});var socket=require(_0x1a07('0x1a'))(new Redis(config[_0x1a07('0x18')]));require(_0x1a07('0x1b'))[_0x1a07('0x1c')](socket);function respondWithStatusCode(_0x2e9439,_0x130474){_0x130474=_0x130474||0xcc;return function(_0x2f563f){if(_0x2f563f){return _0x2e9439[_0x1a07('0x1d')](_0x130474);}return _0x2e9439[_0x1a07('0x1e')](_0x130474)['end']();};}function respondWithResult(_0x5b1240,_0x3e16fc){_0x3e16fc=_0x3e16fc||0xc8;return function(_0x182a0c){if(_0x182a0c){return _0x5b1240[_0x1a07('0x1e')](_0x3e16fc)[_0x1a07('0x1f')](_0x182a0c);}};}function respondWithFilteredResult(_0x2a0bfc,_0x2480dd){return function(_0x113151){if(_0x113151){var _0x26e13f=typeof _0x2480dd[_0x1a07('0x20')]===_0x1a07('0x21')&&typeof _0x2480dd['limit']==='undefined';var _0xa3a500=_0x113151[_0x1a07('0x22')];var _0x5e80b0=_0x26e13f?0x0:_0x2480dd['offset'];var _0xf648c5=_0x26e13f?_0x113151['count']:_0x2480dd[_0x1a07('0x20')]+_0x2480dd[_0x1a07('0x23')];var _0x3330ee;if(_0xf648c5>=_0xa3a500){_0xf648c5=_0xa3a500;_0x3330ee=0xc8;}else{_0x3330ee=0xce;}_0x2a0bfc[_0x1a07('0x1e')](_0x3330ee);return _0x2a0bfc[_0x1a07('0x24')](_0x1a07('0x25'),_0x5e80b0+'-'+_0xf648c5+'/'+_0xa3a500)['json'](_0x113151);}return null;};}function patchUpdates(_0x13a760){return function(_0x25c159){try{jsonpatch[_0x1a07('0x26')](_0x25c159,_0x13a760,!![]);}catch(_0x1759be){return BPromise[_0x1a07('0x27')](_0x1759be);}return _0x25c159['save']();};}function saveUpdates(_0x1e99e5,_0x1cca69){return function(_0x289216){if(_0x289216){return _0x289216[_0x1a07('0x28')](_0x1e99e5)[_0x1a07('0x29')](function(_0x4027f5){return _0x4027f5;});}return null;};}function removeEntity(_0x197cb6,_0x493c1f){return function(_0x30be47){if(_0x30be47){return _0x30be47[_0x1a07('0x2a')]()['then'](function(){var _0x1d5073=_0x30be47[_0x1a07('0x2b')]({'plain':!![]});var _0x2e6065=_0x1a07('0x2c');return db[_0x1a07('0x2d')][_0x1a07('0x2a')]({'where':{'type':_0x2e6065,'resourceId':_0x1d5073['id']}})[_0x1a07('0x29')](function(){return _0x30be47;});})[_0x1a07('0x29')](function(){_0x197cb6[_0x1a07('0x1e')](0xcc)[_0x1a07('0x2e')]();});}};}function handleEntityNotFound(_0x347dcb,_0x47fe01){return function(_0x419332){if(!_0x419332){_0x347dcb[_0x1a07('0x1d')](0x194);}return _0x419332;};}function handleError(_0x5389a7,_0x60b698){_0x60b698=_0x60b698||0x1f4;return function(_0x3883ad){logger[_0x1a07('0x2f')](_0x3883ad['stack']);if(_0x3883ad[_0x1a07('0x30')]){delete _0x3883ad[_0x1a07('0x30')];}_0x5389a7[_0x1a07('0x1e')](_0x60b698)['send'](_0x3883ad);};}exports['index']=function(_0x4dd219,_0x57c7c8){var _0xa458d7={},_0x449c68={},_0x330cde={'count':0x0,'rows':[]};var _0x11ed15=_[_0x1a07('0x31')](db[_0x1a07('0x32')][_0x1a07('0x33')],function(_0x592923){return{'name':_0x592923['fieldName'],'type':_0x592923[_0x1a07('0x34')][_0x1a07('0x35')]};});_0x449c68['model']=_[_0x1a07('0x31')](_0x11ed15,_0x1a07('0x30'));_0x449c68[_0x1a07('0x36')]=_['keys'](_0x4dd219[_0x1a07('0x36')]);_0x449c68['filters']=_[_0x1a07('0x37')](_0x449c68[_0x1a07('0x38')],_0x449c68[_0x1a07('0x36')]);_0xa458d7[_0x1a07('0x39')]=_['intersection'](_0x449c68[_0x1a07('0x38')],qs['fields'](_0x4dd219['query']['fields']));_0xa458d7[_0x1a07('0x39')]=_0xa458d7['attributes']['length']?_0xa458d7['attributes']:_0x449c68[_0x1a07('0x38')];if(!_0x4dd219[_0x1a07('0x36')]['hasOwnProperty']('nolimit')){_0xa458d7[_0x1a07('0x23')]=qs[_0x1a07('0x23')](_0x4dd219['query'][_0x1a07('0x23')]);_0xa458d7[_0x1a07('0x20')]=qs[_0x1a07('0x20')](_0x4dd219[_0x1a07('0x36')][_0x1a07('0x20')]);}_0xa458d7['order']=qs[_0x1a07('0x3a')](_0x4dd219[_0x1a07('0x36')]['sort']);_0xa458d7[_0x1a07('0x3b')]=qs[_0x1a07('0x3c')](_[_0x1a07('0x3d')](_0x4dd219[_0x1a07('0x36')],_0x449c68[_0x1a07('0x3c')]),_0x11ed15);if(_0x4dd219[_0x1a07('0x36')][_0x1a07('0x3e')]){_0xa458d7[_0x1a07('0x3b')]=_[_0x1a07('0x3f')](_0xa458d7[_0x1a07('0x3b')],{'$or':_[_0x1a07('0x31')](_0x11ed15,function(_0x2dce08){if(_0x2dce08[_0x1a07('0x34')]!==_0x1a07('0x40')){var _0x430bcf={};_0x430bcf[_0x2dce08['name']]={'$like':'%'+_0x4dd219[_0x1a07('0x36')]['filter']+'%'};return _0x430bcf;}})});}_0xa458d7=_[_0x1a07('0x3f')]({},_0xa458d7,_0x4dd219[_0x1a07('0x41')]);var _0x349824={'where':_0xa458d7[_0x1a07('0x3b')]};return db['Plugin'][_0x1a07('0x22')](_0x349824)[_0x1a07('0x29')](function(_0x398b12){_0x330cde[_0x1a07('0x22')]=_0x398b12;if(_0x4dd219[_0x1a07('0x36')][_0x1a07('0x42')]){_0xa458d7['include']=[{'all':!![]}];}return db[_0x1a07('0x32')]['findAll'](_0xa458d7);})[_0x1a07('0x29')](function(_0x4e96ed){_0x330cde[_0x1a07('0x43')]=_0x4e96ed;return _0x330cde;})[_0x1a07('0x29')](respondWithFilteredResult(_0x57c7c8,_0xa458d7))['catch'](handleError(_0x57c7c8,null));};exports[_0x1a07('0x44')]=function(_0x539674,_0x570653){var _0x248001={'raw':!![],'where':{'id':_0x539674[_0x1a07('0x45')]['id']}},_0x252611={};_0x252611[_0x1a07('0x38')]=_[_0x1a07('0x46')](db[_0x1a07('0x32')][_0x1a07('0x33')]);_0x252611[_0x1a07('0x36')]=_[_0x1a07('0x46')](_0x539674[_0x1a07('0x36')]);_0x252611[_0x1a07('0x3c')]=_['intersection'](_0x252611[_0x1a07('0x38')],_0x252611['query']);_0x248001['attributes']=_[_0x1a07('0x37')](_0x252611[_0x1a07('0x38')],qs[_0x1a07('0x47')](_0x539674['query'][_0x1a07('0x47')]));_0x248001[_0x1a07('0x39')]=_0x248001['attributes'][_0x1a07('0x48')]?_0x248001[_0x1a07('0x39')]:_0x252611['model'];if(_0x539674['query']['includeAll']){_0x248001['include']=[{'all':!![]}];}_0x248001=_[_0x1a07('0x3f')]({},_0x248001,_0x539674[_0x1a07('0x41')]);return db[_0x1a07('0x32')][_0x1a07('0x49')](_0x248001)['then'](handleEntityNotFound(_0x570653,null))[_0x1a07('0x29')](respondWithResult(_0x570653,null))[_0x1a07('0x4a')](handleError(_0x570653,null));};exports[_0x1a07('0x4b')]=function(_0xc78bb0,_0x326d7b,_0x1b2df2){return db['Plugin'][_0x1a07('0x49')]({'where':{'id':_0xc78bb0['params']['id']},'attributes':[_0x1a07('0x30'),'path'],'raw':!![]})[_0x1a07('0x29')](handleEntityNotFound(_0x326d7b,null))['then'](function(_0x419671){if(_0x419671){var _0x3ce54e=path['join'](config[_0x1a07('0x4c')],'server/files/plugins',util[_0x1a07('0x4d')]('%s.zip',path[_0x1a07('0x4e')](_0x419671['path'])));var _0xbfb7a7=fs[_0x1a07('0x4f')](_0x3ce54e);var _0x38d6c1=archiver(_0x1a07('0x50'),{'zlib':{'level':0x9}});_0x38d6c1['on'](_0x1a07('0x51'),function(_0x41474d){if(_0x41474d[_0x1a07('0x52')]===_0x1a07('0x53')){logger[_0x1a07('0x2f')](_0x41474d);}else{throw new db['Sequelize'][(_0x1a07('0x54'))](_0x1a07('0x55'));}});_0x38d6c1['on'](_0x1a07('0x2f'),function(_0xa6da9){throw new db[(_0x1a07('0x56'))][(_0x1a07('0x54'))](_0x1a07('0x55'));});_0x38d6c1[_0x1a07('0x57')](_0xbfb7a7);_0x38d6c1[_0x1a07('0x58')](_0x1a07('0x59'),{'cwd':path[_0x1a07('0x5a')](config[_0x1a07('0x4c')],_0x1a07('0x5b'),path[_0x1a07('0x5c')](_0x419671['path'])),'ignore':[path[_0x1a07('0x5a')](path[_0x1a07('0x4e')](_0x419671['path']),_0x1a07('0x5d')),path[_0x1a07('0x5a')](path[_0x1a07('0x4e')](_0x419671[_0x1a07('0x5')]),'attachments/**/*')],'nodir':!![]})[_0x1a07('0x5e')]();_0xbfb7a7['on'](_0x1a07('0x5f'),function(){if(!fs['existsSync'](_0x3ce54e)){throw new db[(_0x1a07('0x56'))][(_0x1a07('0x54'))](_0x1a07('0x60'));}return _0x326d7b[_0x1a07('0x4b')](_0x3ce54e,util[_0x1a07('0x4d')](_0x1a07('0x61'),path[_0x1a07('0x4e')](_0x419671[_0x1a07('0x5')])),function(_0x4caeea){if(_0x4caeea){throw new db[(_0x1a07('0x56'))][(_0x1a07('0x54'))](_0x1a07('0x62'));}fs[_0x1a07('0x63')](_0x3ce54e);logger[_0x1a07('0x64')](_0x1a07('0x65'));logger[_0x1a07('0x64')](_0x1a07('0x66'));});});}return null;})[_0x1a07('0x4a')](handleError(_0x326d7b,null));};exports[_0x1a07('0x67')]=function(_0xec7bf0,_0xb299c,_0x1947ad){var _0x2c11a5=path['basename'](_0xec7bf0[_0x1a07('0x68')][_0x1a07('0x69')],path[_0x1a07('0x6a')](_0xec7bf0[_0x1a07('0x68')][_0x1a07('0x69')]));var _0x4b0b7d=path[_0x1a07('0x5a')](config[_0x1a07('0x4c')],'server/files/plugins',_0xec7bf0[_0x1a07('0x68')][_0x1a07('0x69')]);var _0x5f3496=path['join'](config['root'],_0x1a07('0x5b'),_0x2c11a5);logger[_0x1a07('0x64')]('Plugin\x20upload\x20filepath:\x20%s',_0x4b0b7d);logger[_0x1a07('0x64')]('Plugin\x20upload\x20destination:\x20%s',_0x5f3496);try{fs[_0x1a07('0x6b')](_0x4b0b7d,parseInt(_0x1a07('0x6c'),0x8));extract(_0x4b0b7d,{'dir':_0x5f3496},function(_0x2843e3){if(_0x2843e3){logger[_0x1a07('0x2f')](_0x2843e3);handleError(_0x2843e3,!![]);};var _0x575d3e=fs['readdirSync'](_0x5f3496);if(_0x575d3e[_0x1a07('0x48')]>0x1){removeReferences(_0x4b0b7d,_0x5f3496);logger[_0x1a07('0x2f')](_0x1a07('0x6d'));return _0x1947ad(new Error(_0x1a07('0x6d')));}var _0x18455e=fs[_0x1a07('0x6e')](path[_0x1a07('0x5a')](_0x5f3496,_0x575d3e[0x0]));if(_0x18455e[_0x1a07('0x6f')]()){removeReferences(_0x4b0b7d,_0x5f3496);logger[_0x1a07('0x2f')](_0x1a07('0x6d'));return _0x1947ad(new Error('Invalid\x20plugin\x20structure'));}if(_0x18455e['isDirectory']()){var _0x368c6c=fs['readdirSync'](path[_0x1a07('0x5a')](_0x5f3496,_0x575d3e[0x0]));if(_0x368c6c[_0x1a07('0x48')]===0x0){removeReferences(_0x4b0b7d,_0x5f3496);logger['error'](_0x1a07('0x6d'));return _0x1947ad(new Error(_0x1a07('0x6d')));}var _0x4be615=_0x368c6c[_0x1a07('0x70')](function(_0x447422){return _0x447422===_0x1a07('0x71');});if(!_0x4be615){return _0x1947ad(new Error(_0x1a07('0x72')));}var _0x5a5131=fs['readFileSync'](path[_0x1a07('0x5a')](_0x5f3496,_0x575d3e[0x0],_0x1a07('0x71')));var _0x51e620=JSON[_0x1a07('0x73')](_0x5a5131);if(_0x1a07('0x21')==typeof _0x51e620[_0x1a07('0x30')]){return _0x1947ad(new Error('Invalid\x20manifest:\x20name\x20missing'));}if('undefined'==typeof _0x51e620['type']){return _0x1947ad(new Error(_0x1a07('0x74')));}if(_0x1a07('0x21')==typeof _0x51e620[_0x1a07('0x75')]){return _0x1947ad(new Error(_0x1a07('0x76')));}if(_0x1a07('0x21')==typeof _0x51e620['parameters']){return _0x1947ad(new Error(_0x1a07('0x77')));}if(_0x51e620[_0x1a07('0x34')]==='html'){if(_0x1a07('0x21')==typeof _0x51e620[_0x1a07('0x78')][_0x1a07('0x79')]){return _0x1947ad(new Error(_0x1a07('0x7a')));}if(_0x1a07('0x21')==typeof _0x51e620['parameters'][_0x1a07('0x79')][_0x1a07('0x7b')]&&'undefined'==typeof _0x51e620[_0x1a07('0x78')][_0x1a07('0x79')][_0x1a07('0x7c')]){return _0x1947ad(new Error(_0x1a07('0x7d')));}}else if(_0x51e620['type']===_0x1a07('0x7e')){if('undefined'==typeof _0x51e620[_0x1a07('0x78')][_0x1a07('0x7f')]){return _0x1947ad(new Error(_0x1a07('0x80')));}if(_0x1a07('0x21')==typeof _0x51e620['parameters'][_0x1a07('0x81')]){return _0x1947ad(new Error(_0x1a07('0x82')));}}else{return _0x1947ad(new Error(_0x1a07('0x83')));}var _0x5b9ff8=_0x51e620[_0x1a07('0x30')];var _0x4c64d4=_0x51e620[_0x1a07('0x84')];var _0x5045fa=_0x51e620[_0x1a07('0x34')];var _0x4ba1fa=_0x51e620[_0x1a07('0x85')]?_0x51e620['sidebar']:_0x1a07('0x86');var _0x11ed74=_0x51e620[_0x1a07('0x87')]?_0x51e620[_0x1a07('0x87')]:_0x1a07('0x88');var _0x34918b='';var _0x418dc8='';var _0x4aa06e='';var _0x288a1e='';var _0x58d43e=_0x51e620[_0x1a07('0x75')];if(_0x5045fa==='html'){if('undefined'!=typeof _0x51e620['parameters'][_0x1a07('0x79')]['admin']){var _0x757030=_0x51e620[_0x1a07('0x78')][_0x1a07('0x79')]['admin'];if(!/^(f|ht)tps?:\/\//i[_0x1a07('0x89')](_0x757030)){_0x34918b=path['join'](_0x1a07('0x8a'),_0x2c11a5,_0x575d3e[0x0],_0x757030);}else{_0x34918b=_0x757030;}}else{logger[_0x1a07('0x64')](_0x1a07('0x8b'));}if(_0x1a07('0x21')!=typeof _0x51e620[_0x1a07('0x78')][_0x1a07('0x79')]['agent']){var _0xe5936f=_0x51e620[_0x1a07('0x78')][_0x1a07('0x79')]['agent'];if(!/^(f|ht)tps?:\/\//i[_0x1a07('0x89')](_0xe5936f)){_0x418dc8=path[_0x1a07('0x5a')](_0x1a07('0x8a'),_0x2c11a5,_0x575d3e[0x0],_0xe5936f);}else{_0x418dc8=_0xe5936f;}}else{logger['info'](_0x1a07('0x8c'));}}else if(_0x5045fa==='script'){_0x4aa06e=_0x51e620[_0x1a07('0x78')][_0x1a07('0x7f')];_0x288a1e=_0x51e620[_0x1a07('0x78')]['scriptPath'];if(_0x1a07('0x21')!=typeof _0x51e620[_0x1a07('0x78')]['views']){if(_0x1a07('0x21')!=typeof _0x51e620['parameters'][_0x1a07('0x79')][_0x1a07('0x7b')]){var _0x757030=_0x51e620[_0x1a07('0x78')]['views'][_0x1a07('0x7b')];if(!/^(f|ht)tps?:\/\//i['test'](_0x757030)){_0x34918b=path[_0x1a07('0x5a')](_0x1a07('0x8a'),_0x2c11a5,_0x575d3e[0x0],_0x757030);}else{_0x34918b=_0x757030;}}if(_0x1a07('0x21')!=typeof _0x51e620[_0x1a07('0x78')]['views'][_0x1a07('0x7c')]){var _0xe5936f=_0x51e620['parameters'][_0x1a07('0x79')]['agent'];if(!/^(f|ht)tps?:\/\//i['test'](_0xe5936f)){_0x418dc8=path[_0x1a07('0x5a')](_0x1a07('0x8a'),_0x2c11a5,_0x575d3e[0x0],_0xe5936f);}else{_0x418dc8=_0xe5936f;}}}}var _0x16be35={'name':_0x5b9ff8,'description':_0x4c64d4,'path':path['join'](_0x2c11a5,_0x575d3e[0x0]),'type':_0x5045fa,'sidebar':_0x4ba1fa,'icon':_0x11ed74,'adminUrl':_0x34918b,'agentUrl':_0x418dc8,'scriptName':_0x4aa06e,'scriptPath':_0x288a1e,'version':_0x58d43e};removeReferences(_0x4b0b7d,null);return db[_0x1a07('0x32')]['create'](_0x16be35)[_0x1a07('0x29')](function(_0x55d95f){var _0x5d8368={'role':_0xec7bf0[_0x1a07('0x8d')][_0x1a07('0x8e')],'userProfileId':_0xec7bf0[_0x1a07('0x8d')][_0x1a07('0x8f')]};if(!_0x5d8368)throw new Error(_0x1a07('0x90'));if(_0x5d8368[_0x1a07('0x8e')]===_0x1a07('0x91')){var _0x178ae8=_0x55d95f[_0x1a07('0x2b')]({'plain':!![]});return db[_0x1a07('0x92')][_0x1a07('0x49')]({'where':{'name':_0x1a07('0x2c'),'userProfileId':_0x5d8368[_0x1a07('0x8f')]},'raw':!![]})[_0x1a07('0x29')](function(_0x385e75){if(_0x385e75&&_0x385e75[_0x1a07('0x93')]===0x0){return db[_0x1a07('0x2d')][_0x1a07('0x94')]({'name':_0x178ae8['name'],'resourceId':_0x178ae8['id'],'type':_0x385e75['name'],'sectionId':_0x385e75['id']},{})[_0x1a07('0x29')](function(){return _0x55d95f;});}else{return _0x55d95f;}})['catch'](function(_0x526782){logger['error'](_0x1a07('0x95'),_0x526782);throw _0x526782;});}return _0x55d95f;})[_0x1a07('0x29')](respondWithResult(_0xb299c,null))[_0x1a07('0x4a')](handleError(_0xb299c,null));}});}catch(_0x6126d3){_0xb299c[_0x1a07('0x1e')](0x1f4)[_0x1a07('0x96')](_0x6126d3);}};function removeReferences(_0x23287f,_0x1df3a3){try{if(_0x23287f){fs[_0x1a07('0x63')](_0x23287f);logger['info'](_0x1a07('0x97'));}if(_0x1df3a3){rimraf(_0x1df3a3,function(){});logger[_0x1a07('0x64')](_0x1a07('0x98'));}}catch(_0xe56773){logger[_0x1a07('0x2f')](_0xe56773);}}exports[_0x1a07('0x28')]=function(_0x30fe88,_0x5eece4,_0x198b55){return db['Plugin'][_0x1a07('0x49')]({'where':{'id':_0x30fe88[_0x1a07('0x45')]['id']}})['then'](handleEntityNotFound(_0x5eece4,null))[_0x1a07('0x29')](saveUpdates(_0x30fe88[_0x1a07('0x8d')],null))['then'](respondWithResult(_0x5eece4,null))[_0x1a07('0x4a')](handleError(_0x5eece4,null));};exports[_0x1a07('0x99')]=function(_0x1a01a2,_0xeb1687,_0x4e6576){return db[_0x1a07('0x32')][_0x1a07('0x49')]({'where':{'id':_0x1a01a2['params']['id']}})[_0x1a07('0x29')](function(_0x4a05da){if(_0x4a05da){return _0x4a05da[_0x1a07('0x2a')]();}})[_0x1a07('0x29')](function(_0x2402a5){rimraf(path['join'](config[_0x1a07('0x4c')],_0x1a07('0x5b'),path[_0x1a07('0x5c')](_0x2402a5['path'])),function(){});return _0x2402a5;})[_0x1a07('0x29')](handleEntityNotFound(_0xeb1687,null))[_0x1a07('0x29')](respondWithStatusCode(_0xeb1687,null))['catch'](handleError(_0xeb1687,null));};exports[_0x1a07('0x9a')]=function(_0xe6b5aa,_0x20c12b,_0x1f2303){return BPromise[_0x1a07('0x9b')]()[_0x1a07('0x29')](function(){if(!_0xe6b5aa[_0x1a07('0x36')]['path']){throw new Error(_0x1a07('0x9c'));}if(!_0xe6b5aa['query'][_0x1a07('0x9d')]){throw new Error(_0x1a07('0x9e'));}var _0x281cb2=_0xe6b5aa[_0x1a07('0x36')][_0x1a07('0x9f')]?_0xe6b5aa['query'][_0x1a07('0x9f')]+':'+_0xe6b5aa[_0x1a07('0x36')][_0x1a07('0x9d')]:_0x1a07('0xa0')+_0xe6b5aa[_0x1a07('0x36')][_0x1a07('0x9d')];var _0xff7db1=_0xe6b5aa[_0x1a07('0x36')][_0x1a07('0x1f')]?_0xe6b5aa['query']['json']:!![];var _0xaf36f2=_0xe6b5aa['query'][_0x1a07('0xa1')]?_0xe6b5aa['query']['encoding']:null;var _0x3feee4={'method':_0xe6b5aa[_0x1a07('0xa2')],'uri':util[_0x1a07('0x4d')]('%s%s',_0x281cb2,_0xe6b5aa['query'][_0x1a07('0x5')]),'json':_0xff7db1,'resolveWithFullResponse':!![],'encoding':_0xaf36f2,'qs':_0xe6b5aa[_0x1a07('0x36')]};if(_0xe6b5aa[_0x1a07('0xa3')]){_0x3feee4[_0x1a07('0xa3')]=_0xe6b5aa[_0x1a07('0xa3')];if(_0x3feee4[_0x1a07('0xa3')][_0x1a07('0xa4')]){delete _0x3feee4[_0x1a07('0xa3')]['content-length'];}}if(_0x3feee4[_0x1a07('0xa3')][_0x1a07('0xa5')]){delete _0x3feee4['headers'][_0x1a07('0xa5')];}return rp(_0x3feee4);})[_0x1a07('0x29')](function(_0x303bed){if(_0x303bed){_0x20c12b[_0x1a07('0x24')](_0x303bed[_0x1a07('0xa3')]);logger[_0x1a07('0x64')](_0x303bed['body']);if(_[_0x1a07('0xa6')](_0xe6b5aa[_0x1a07('0x36')][_0x1a07('0x5')],_0x1a07('0x4b'))&&_0x303bed['statusCode']==0x1f4){return _0x20c12b[_0x1a07('0x1d')](_0x303bed[_0x1a07('0xa7')]);}else{return _0x20c12b[_0x1a07('0x1e')](_0x303bed['statusCode'])[_0x1a07('0x96')](_0x303bed[_0x1a07('0x8d')]);}}else{return _0x20c12b[_0x1a07('0x1d')](0xc8);}})[_0x1a07('0x4a')](handleError(_0x20c12b,null));};exports[_0x1a07('0xa8')]=function(_0x5adba8,_0x1a725f,_0x1e698a){return BPromise[_0x1a07('0x9b')]()[_0x1a07('0x29')](function(){if(!_0x5adba8['query'][_0x1a07('0x5')]){throw new Error(_0x1a07('0x9c'));}if(!_0x5adba8[_0x1a07('0x36')][_0x1a07('0x9d')]){throw new Error(_0x1a07('0x9e'));}var _0x253ed8=_0x5adba8[_0x1a07('0x36')][_0x1a07('0x9f')]?_0x5adba8[_0x1a07('0x36')][_0x1a07('0x9f')]+':'+_0x5adba8[_0x1a07('0x36')]['port']:_0x1a07('0xa0')+_0x5adba8[_0x1a07('0x36')][_0x1a07('0x9d')];var _0x3ff4db=_0x5adba8['query'][_0x1a07('0x1f')]?_0x5adba8[_0x1a07('0x36')][_0x1a07('0x1f')]:!![];var _0x43370d=_0x5adba8[_0x1a07('0x36')][_0x1a07('0xa1')]?_0x5adba8['query']['encoding']:null;var _0x166be7={'method':_0x5adba8[_0x1a07('0xa2')],'uri':util[_0x1a07('0x4d')](_0x1a07('0xa9'),_0x253ed8,_0x5adba8[_0x1a07('0x36')][_0x1a07('0x5')]),'json':_0x3ff4db,'resolveWithFullResponse':!![],'encoding':_0x43370d,'body':_0x5adba8[_0x1a07('0x8d')]};if(_0x5adba8[_0x1a07('0xa3')]){_0x166be7['headers']=_0x5adba8[_0x1a07('0xa3')];if(_0x166be7['headers'][_0x1a07('0xa4')]){delete _0x166be7['headers'][_0x1a07('0xa4')];}}if(_0x166be7['headers']['content-type']){delete _0x166be7['headers']['content-type'];}return rp(_0x166be7);})[_0x1a07('0x29')](function(_0x1a0ace){if(_0x1a0ace){_0x1a725f[_0x1a07('0x24')](_0x1a0ace['headers']);logger[_0x1a07('0x64')](_0x1a0ace[_0x1a07('0x8d')]);return _0x1a725f[_0x1a07('0x1e')](_0x1a0ace[_0x1a07('0xa7')])['send'](_0x1a0ace[_0x1a07('0x8d')]);}else{return _0x1a725f['sendStatus'](0xc8);}})[_0x1a07('0x4a')](handleError(_0x1a725f,null));};