2e44f8edefd86e84781863f654134f0ae6ab0e00
[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 _0x12fd=['../../config/environment','defaults','localhost','socket.io-emitter','redis','./plugin.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','save','update','then','destroy','get','UserProfileResource','error','stack','name','map','Plugin','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','findAll','rows','catch','download','find','params','join','root','server/files/plugins','format','%s.zip','basename','createWriteStream','zip','warning','code','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','Sequelize','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','extname','filename','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','manifest.json','Plugin\x20manifest\x20missing','readFileSync','parse','undefined','Invalid\x20manifest:\x20name\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','html','views','admin','agent','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','description','always','icon','icon-apps','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','Warning:\x20agent\x20view\x20not\x20specified','body','role','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','Plugins','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','webhookGet','resolve','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','method','headers','content-length','content-type','endsWith','statusCode','send','webhookPost','\x27PATH\x27\x20parameter\x20not\x20specified','%s%s','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','squel','jsforce','extract-zip','rimraf','archiver','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils'];(function(_0x1e01d7,_0x517c3b){var _0x1a44a9=function(_0x3fa15a){while(--_0x3fa15a){_0x1e01d7['push'](_0x1e01d7['shift']());}};_0x1a44a9(++_0x517c3b);}(_0x12fd,0x143));var _0xd12f=function(_0x5c8770,_0x1a6190){_0x5c8770=_0x5c8770-0x0;var _0x365344=_0x12fd[_0x5c8770];return _0x365344;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xd12f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd12f('0x1'));var jsonpatch=require(_0xd12f('0x2'));var rp=require(_0xd12f('0x3'));var moment=require(_0xd12f('0x4'));var BPromise=require(_0xd12f('0x5'));var Mustache=require(_0xd12f('0x6'));var util=require('util');var path=require(_0xd12f('0x7'));var sox=require(_0xd12f('0x8'));var csv=require(_0xd12f('0x9'));var ejs=require(_0xd12f('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0xd12f('0xb'));var crypto=require('crypto');var jsforce=require(_0xd12f('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xd12f('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var extract=require(_0xd12f('0xd'));var rimraf=require(_0xd12f('0xe'));var archiver=require(_0xd12f('0xf'));var Redis=require(_0xd12f('0x10'));var authService=require(_0xd12f('0x11'));var qs=require(_0xd12f('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd12f('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0xd12f('0x14'));var config=require(_0xd12f('0x15'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xd12f('0x16')](config['redis'],{'host':_0xd12f('0x17'),'port':0x18eb});var socket=require(_0xd12f('0x18'))(new Redis(config[_0xd12f('0x19')]));require(_0xd12f('0x1a'))[_0xd12f('0x1b')](socket);function respondWithStatusCode(_0x3dc7bf,_0x224c31){_0x224c31=_0x224c31||0xcc;return function(_0x2188f0){if(_0x2188f0){return _0x3dc7bf[_0xd12f('0x1c')](_0x224c31);}return _0x3dc7bf[_0xd12f('0x1d')](_0x224c31)[_0xd12f('0x1e')]();};}function respondWithResult(_0x7058c,_0x307500){_0x307500=_0x307500||0xc8;return function(_0x4f24e6){if(_0x4f24e6){return _0x7058c[_0xd12f('0x1d')](_0x307500)[_0xd12f('0x1f')](_0x4f24e6);}};}function respondWithFilteredResult(_0x3d9506,_0xc3a388){return function(_0x325b9b){if(_0x325b9b){var _0x16c8dc=_0x325b9b[_0xd12f('0x20')],_0x80b3f2=_0xc3a388[_0xd12f('0x21')],_0x1c0225=_0xc3a388[_0xd12f('0x21')]+_0xc3a388[_0xd12f('0x22')],_0x3e7dd3;if(_0x1c0225>=_0x16c8dc){_0x1c0225=_0x16c8dc;_0x3e7dd3=0xc8;}else{_0x3e7dd3=0xce;}_0x3d9506[_0xd12f('0x1d')](_0x3e7dd3);return _0x3d9506[_0xd12f('0x23')](_0xd12f('0x24'),_0x80b3f2+'-'+_0x1c0225+'/'+_0x16c8dc)[_0xd12f('0x1f')](_0x325b9b);}return null;};}function patchUpdates(_0x365021){return function(_0x312e5b){try{jsonpatch['apply'](_0x312e5b,_0x365021,!![]);}catch(_0x90db71){return BPromise['reject'](_0x90db71);}return _0x312e5b[_0xd12f('0x25')]();};}function saveUpdates(_0x1d37e4,_0x34d6e2){return function(_0x128d32){if(_0x128d32){return _0x128d32[_0xd12f('0x26')](_0x1d37e4)[_0xd12f('0x27')](function(_0x141358){return _0x141358;});}return null;};}function removeEntity(_0x39e6d6,_0x5547b7){return function(_0x2de0f6){if(_0x2de0f6){return _0x2de0f6[_0xd12f('0x28')]()[_0xd12f('0x27')](function(){var _0x40a23f=_0x2de0f6[_0xd12f('0x29')]({'plain':!![]});var _0x40ef64='Plugins';return db[_0xd12f('0x2a')][_0xd12f('0x28')]({'where':{'type':_0x40ef64,'resourceId':_0x40a23f['id']}})['then'](function(){return _0x2de0f6;});})[_0xd12f('0x27')](function(){_0x39e6d6[_0xd12f('0x1d')](0xcc)[_0xd12f('0x1e')]();});}};}function handleEntityNotFound(_0x4f6654,_0x3fef34){return function(_0x134673){if(!_0x134673){_0x4f6654[_0xd12f('0x1c')](0x194);}return _0x134673;};}function handleError(_0x54c1e4,_0x5627eb){_0x5627eb=_0x5627eb||0x1f4;return function(_0x267912){logger[_0xd12f('0x2b')](_0x267912[_0xd12f('0x2c')]);if(_0x267912[_0xd12f('0x2d')]){delete _0x267912[_0xd12f('0x2d')];}_0x54c1e4['status'](_0x5627eb)['send'](_0x267912);};}exports['index']=function(_0x1e52e0,_0x4d0bbc){var _0x16d83c={},_0x3a7cf6={},_0x10f1c6={'count':0x0,'rows':[]};var _0x3aa4b5=_[_0xd12f('0x2e')](db[_0xd12f('0x2f')][_0xd12f('0x30')],function(_0x511814){return{'name':_0x511814[_0xd12f('0x31')],'type':_0x511814['type'][_0xd12f('0x32')]};});_0x3a7cf6[_0xd12f('0x33')]=_['map'](_0x3aa4b5,_0xd12f('0x2d'));_0x3a7cf6[_0xd12f('0x34')]=_[_0xd12f('0x35')](_0x1e52e0[_0xd12f('0x34')]);_0x3a7cf6[_0xd12f('0x36')]=_[_0xd12f('0x37')](_0x3a7cf6[_0xd12f('0x33')],_0x3a7cf6[_0xd12f('0x34')]);_0x16d83c[_0xd12f('0x38')]=_[_0xd12f('0x37')](_0x3a7cf6[_0xd12f('0x33')],qs[_0xd12f('0x39')](_0x1e52e0[_0xd12f('0x34')][_0xd12f('0x39')]));_0x16d83c[_0xd12f('0x38')]=_0x16d83c['attributes'][_0xd12f('0x3a')]?_0x16d83c[_0xd12f('0x38')]:_0x3a7cf6[_0xd12f('0x33')];if(!_0x1e52e0['query'][_0xd12f('0x3b')]('nolimit')){_0x16d83c[_0xd12f('0x22')]=qs[_0xd12f('0x22')](_0x1e52e0[_0xd12f('0x34')][_0xd12f('0x22')]);_0x16d83c[_0xd12f('0x21')]=qs[_0xd12f('0x21')](_0x1e52e0[_0xd12f('0x34')][_0xd12f('0x21')]);}_0x16d83c[_0xd12f('0x3c')]=qs['sort'](_0x1e52e0['query'][_0xd12f('0x3d')]);_0x16d83c[_0xd12f('0x3e')]=qs[_0xd12f('0x36')](_[_0xd12f('0x3f')](_0x1e52e0['query'],_0x3a7cf6[_0xd12f('0x36')]),_0x3aa4b5);if(_0x1e52e0[_0xd12f('0x34')][_0xd12f('0x40')]){_0x16d83c['where']=_[_0xd12f('0x41')](_0x16d83c['where'],{'$or':_['map'](_0x3aa4b5,function(_0x1de3b9){if(_0x1de3b9[_0xd12f('0x42')]!==_0xd12f('0x43')){var _0x5f5549={};_0x5f5549[_0x1de3b9[_0xd12f('0x2d')]]={'$like':'%'+_0x1e52e0[_0xd12f('0x34')]['filter']+'%'};return _0x5f5549;}})});}_0x16d83c=_[_0xd12f('0x41')]({},_0x16d83c,_0x1e52e0[_0xd12f('0x44')]);var _0x149819={'where':_0x16d83c['where']};return db[_0xd12f('0x2f')][_0xd12f('0x20')](_0x149819)['then'](function(_0x357e73){_0x10f1c6['count']=_0x357e73;if(_0x1e52e0[_0xd12f('0x34')][_0xd12f('0x45')]){_0x16d83c['include']=[{'all':!![]}];}return db[_0xd12f('0x2f')][_0xd12f('0x46')](_0x16d83c);})[_0xd12f('0x27')](function(_0x3f95db){_0x10f1c6[_0xd12f('0x47')]=_0x3f95db;return _0x10f1c6;})[_0xd12f('0x27')](respondWithFilteredResult(_0x4d0bbc,_0x16d83c))[_0xd12f('0x48')](handleError(_0x4d0bbc,null));};exports['show']=function(_0x1289b4,_0x45bbd8){var _0x466548={'raw':!![],'where':{'id':_0x1289b4['params']['id']}},_0x1701a7={};_0x1701a7[_0xd12f('0x33')]=_[_0xd12f('0x35')](db[_0xd12f('0x2f')]['rawAttributes']);_0x1701a7['query']=_[_0xd12f('0x35')](_0x1289b4['query']);_0x1701a7[_0xd12f('0x36')]=_[_0xd12f('0x37')](_0x1701a7[_0xd12f('0x33')],_0x1701a7['query']);_0x466548['attributes']=_[_0xd12f('0x37')](_0x1701a7['model'],qs[_0xd12f('0x39')](_0x1289b4[_0xd12f('0x34')][_0xd12f('0x39')]));_0x466548['attributes']=_0x466548[_0xd12f('0x38')][_0xd12f('0x3a')]?_0x466548['attributes']:_0x1701a7[_0xd12f('0x33')];if(_0x1289b4['query']['includeAll']){_0x466548['include']=[{'all':!![]}];}_0x466548=_[_0xd12f('0x41')]({},_0x466548,_0x1289b4[_0xd12f('0x44')]);return db[_0xd12f('0x2f')]['find'](_0x466548)[_0xd12f('0x27')](handleEntityNotFound(_0x45bbd8,null))['then'](respondWithResult(_0x45bbd8,null))['catch'](handleError(_0x45bbd8,null));};exports[_0xd12f('0x49')]=function(_0x59da19,_0x338197,_0x2b8dd8){return db[_0xd12f('0x2f')][_0xd12f('0x4a')]({'where':{'id':_0x59da19[_0xd12f('0x4b')]['id']},'attributes':[_0xd12f('0x2d'),_0xd12f('0x7')],'raw':!![]})[_0xd12f('0x27')](handleEntityNotFound(_0x338197,null))[_0xd12f('0x27')](function(_0x2add3f){if(_0x2add3f){var _0x1e7f34=path[_0xd12f('0x4c')](config[_0xd12f('0x4d')],_0xd12f('0x4e'),util[_0xd12f('0x4f')](_0xd12f('0x50'),path[_0xd12f('0x51')](_0x2add3f['path'])));var _0x4542ab=fs[_0xd12f('0x52')](_0x1e7f34);var _0x48c63e=archiver(_0xd12f('0x53'),{'zlib':{'level':0x9}});_0x48c63e['on'](_0xd12f('0x54'),function(_0x1bca7d){if(_0x1bca7d[_0xd12f('0x55')]==='ENOENT'){logger[_0xd12f('0x2b')](_0x1bca7d);}else{throw new db['Sequelize'][(_0xd12f('0x56'))](_0xd12f('0x57'));}});_0x48c63e['on'](_0xd12f('0x2b'),function(_0x4fafbd){throw new db[(_0xd12f('0x58'))]['Error'](_0xd12f('0x57'));});_0x48c63e[_0xd12f('0x59')](_0x4542ab);_0x48c63e[_0xd12f('0x5a')]('**/*',{'cwd':path[_0xd12f('0x4c')](config[_0xd12f('0x4d')],_0xd12f('0x4e'),path[_0xd12f('0x5b')](_0x2add3f['path'])),'ignore':[path[_0xd12f('0x4c')](path[_0xd12f('0x51')](_0x2add3f[_0xd12f('0x7')]),_0xd12f('0x5c')),path['join'](path[_0xd12f('0x51')](_0x2add3f[_0xd12f('0x7')]),_0xd12f('0x5d'))],'nodir':!![]})[_0xd12f('0x5e')]();_0x4542ab['on'](_0xd12f('0x5f'),function(){if(!fs[_0xd12f('0x60')](_0x1e7f34)){throw new db[(_0xd12f('0x58'))][(_0xd12f('0x56'))](_0xd12f('0x61'));}return _0x338197[_0xd12f('0x49')](_0x1e7f34,util[_0xd12f('0x4f')]('%s.zip',path[_0xd12f('0x51')](_0x2add3f[_0xd12f('0x7')])),function(_0x51e00a){if(_0x51e00a){throw new db['Sequelize'][(_0xd12f('0x56'))](_0xd12f('0x62'));}fs[_0xd12f('0x63')](_0x1e7f34);logger[_0xd12f('0x64')](_0xd12f('0x65'));logger[_0xd12f('0x64')](_0xd12f('0x66'));});});}return null;})[_0xd12f('0x48')](handleError(_0x338197,null));};exports[_0xd12f('0x67')]=function(_0x30bfb0,_0x2083b5,_0x5842db){var _0x419ee2=path['basename'](_0x30bfb0[_0xd12f('0x68')]['filename'],path[_0xd12f('0x69')](_0x30bfb0[_0xd12f('0x68')][_0xd12f('0x6a')]));var _0x8a6cbc=path[_0xd12f('0x4c')](config[_0xd12f('0x4d')],_0xd12f('0x4e'),_0x30bfb0[_0xd12f('0x68')][_0xd12f('0x6a')]);var _0x266788=path[_0xd12f('0x4c')](config['root'],_0xd12f('0x4e'),_0x419ee2);logger[_0xd12f('0x64')](_0xd12f('0x6b'),_0x8a6cbc);logger[_0xd12f('0x64')](_0xd12f('0x6c'),_0x266788);try{fs[_0xd12f('0x6d')](_0x8a6cbc,parseInt('0777',0x8));extract(_0x8a6cbc,{'dir':_0x266788},function(_0x22a23b){if(_0x22a23b){logger[_0xd12f('0x2b')](_0x22a23b);handleError(_0x22a23b,!![]);};var _0x2475c8=fs[_0xd12f('0x6e')](_0x266788);if(_0x2475c8[_0xd12f('0x3a')]>0x1){removeReferences(_0x8a6cbc,_0x266788);logger['error'](_0xd12f('0x6f'));return _0x5842db(new Error('Invalid\x20plugin\x20structure'));}var _0x40ea90=fs[_0xd12f('0x70')](path[_0xd12f('0x4c')](_0x266788,_0x2475c8[0x0]));if(_0x40ea90[_0xd12f('0x71')]()){removeReferences(_0x8a6cbc,_0x266788);logger[_0xd12f('0x2b')](_0xd12f('0x6f'));return _0x5842db(new Error('Invalid\x20plugin\x20structure'));}if(_0x40ea90[_0xd12f('0x72')]()){var _0x42be61=fs[_0xd12f('0x6e')](path[_0xd12f('0x4c')](_0x266788,_0x2475c8[0x0]));if(_0x42be61['length']===0x0){removeReferences(_0x8a6cbc,_0x266788);logger[_0xd12f('0x2b')](_0xd12f('0x6f'));return _0x5842db(new Error(_0xd12f('0x6f')));}var _0x589fb0=_0x42be61['some'](function(_0x4f34bd){return _0x4f34bd===_0xd12f('0x73');});if(!_0x589fb0){return _0x5842db(new Error(_0xd12f('0x74')));}var _0xc7617e=fs[_0xd12f('0x75')](path[_0xd12f('0x4c')](_0x266788,_0x2475c8[0x0],_0xd12f('0x73')));var _0x1cacb9=JSON[_0xd12f('0x76')](_0xc7617e);if(_0xd12f('0x77')==typeof _0x1cacb9[_0xd12f('0x2d')]){return _0x5842db(new Error(_0xd12f('0x78')));}if('undefined'==typeof _0x1cacb9[_0xd12f('0x42')]){return _0x5842db(new Error('Invalid\x20manifest:\x20type\x20missing'));}if(_0xd12f('0x77')==typeof _0x1cacb9[_0xd12f('0x79')]){return _0x5842db(new Error(_0xd12f('0x7a')));}if(_0xd12f('0x77')==typeof _0x1cacb9[_0xd12f('0x7b')]){return _0x5842db(new Error('Invalid\x20manifest:\x20parameters\x20missing'));}if(_0x1cacb9[_0xd12f('0x42')]===_0xd12f('0x7c')){if(_0xd12f('0x77')==typeof _0x1cacb9[_0xd12f('0x7b')][_0xd12f('0x7d')]){return _0x5842db(new Error('Invalid\x20manifest:\x20views\x20missing'));}if(_0xd12f('0x77')==typeof _0x1cacb9[_0xd12f('0x7b')][_0xd12f('0x7d')][_0xd12f('0x7e')]&&_0xd12f('0x77')==typeof _0x1cacb9['parameters'][_0xd12f('0x7d')][_0xd12f('0x7f')]){return _0x5842db(new Error('Invalid\x20manifest:\x20no\x20view\x20specified'));}}else if(_0x1cacb9['type']===_0xd12f('0x80')){if(_0xd12f('0x77')==typeof _0x1cacb9[_0xd12f('0x7b')][_0xd12f('0x81')]){return _0x5842db(new Error(_0xd12f('0x82')));}if(_0xd12f('0x77')==typeof _0x1cacb9[_0xd12f('0x7b')][_0xd12f('0x83')]){return _0x5842db(new Error(_0xd12f('0x84')));}}else{return _0x5842db(new Error(_0xd12f('0x85')));}var _0x307c63=_0x1cacb9[_0xd12f('0x2d')];var _0x28af00=_0x1cacb9[_0xd12f('0x86')];var _0xc7f617=_0x1cacb9[_0xd12f('0x42')];var _0x14485a=_0x1cacb9['sidebar']?_0x1cacb9['sidebar']:_0xd12f('0x87');var _0x140bed=_0x1cacb9[_0xd12f('0x88')]?_0x1cacb9[_0xd12f('0x88')]:_0xd12f('0x89');var _0x3c506f='';var _0x23ab77='';var _0x3dd7a8='';var _0x463295='';var _0x2bbd2f=_0x1cacb9[_0xd12f('0x79')];if(_0xc7f617===_0xd12f('0x7c')){if(_0xd12f('0x77')!=typeof _0x1cacb9[_0xd12f('0x7b')][_0xd12f('0x7d')]['admin']){var _0x23186e=_0x1cacb9[_0xd12f('0x7b')][_0xd12f('0x7d')][_0xd12f('0x7e')];if(!/^(f|ht)tps?:\/\//i[_0xd12f('0x8a')](_0x23186e)){_0x3c506f=path['join'](_0xd12f('0x8b'),_0x419ee2,_0x2475c8[0x0],_0x23186e);}else{_0x3c506f=_0x23186e;}}else{logger[_0xd12f('0x64')](_0xd12f('0x8c'));}if(_0xd12f('0x77')!=typeof _0x1cacb9[_0xd12f('0x7b')]['views'][_0xd12f('0x7f')]){var _0xbc7b0c=_0x1cacb9[_0xd12f('0x7b')]['views'][_0xd12f('0x7f')];if(!/^(f|ht)tps?:\/\//i[_0xd12f('0x8a')](_0xbc7b0c)){_0x23ab77=path[_0xd12f('0x4c')](_0xd12f('0x8b'),_0x419ee2,_0x2475c8[0x0],_0xbc7b0c);}else{_0x23ab77=_0xbc7b0c;}}else{logger[_0xd12f('0x64')](_0xd12f('0x8d'));}}else if(_0xc7f617===_0xd12f('0x80')){_0x3dd7a8=_0x1cacb9[_0xd12f('0x7b')][_0xd12f('0x81')];_0x463295=_0x1cacb9[_0xd12f('0x7b')][_0xd12f('0x83')];if(_0xd12f('0x77')!=typeof _0x1cacb9['parameters'][_0xd12f('0x7d')]){if(_0xd12f('0x77')!=typeof _0x1cacb9[_0xd12f('0x7b')]['views'][_0xd12f('0x7e')]){var _0x23186e=_0x1cacb9['parameters']['views'][_0xd12f('0x7e')];if(!/^(f|ht)tps?:\/\//i[_0xd12f('0x8a')](_0x23186e)){_0x3c506f=path[_0xd12f('0x4c')](_0xd12f('0x8b'),_0x419ee2,_0x2475c8[0x0],_0x23186e);}else{_0x3c506f=_0x23186e;}}if(_0xd12f('0x77')!=typeof _0x1cacb9[_0xd12f('0x7b')][_0xd12f('0x7d')][_0xd12f('0x7f')]){var _0xbc7b0c=_0x1cacb9[_0xd12f('0x7b')][_0xd12f('0x7d')]['agent'];if(!/^(f|ht)tps?:\/\//i[_0xd12f('0x8a')](_0xbc7b0c)){_0x23ab77=path[_0xd12f('0x4c')]('plugins',_0x419ee2,_0x2475c8[0x0],_0xbc7b0c);}else{_0x23ab77=_0xbc7b0c;}}}}var _0x4f1171={'name':_0x307c63,'description':_0x28af00,'path':path['join'](_0x419ee2,_0x2475c8[0x0]),'type':_0xc7f617,'sidebar':_0x14485a,'icon':_0x140bed,'adminUrl':_0x3c506f,'agentUrl':_0x23ab77,'scriptName':_0x3dd7a8,'scriptPath':_0x463295,'version':_0x2bbd2f};removeReferences(_0x8a6cbc,null);return db['Plugin']['create'](_0x4f1171)[_0xd12f('0x27')](function(_0x4e4b6e){var _0xc40c92={'role':_0x30bfb0[_0xd12f('0x8e')][_0xd12f('0x8f')],'userProfileId':_0x30bfb0[_0xd12f('0x8e')]['userProfileId']};if(!_0xc40c92)throw new Error(_0xd12f('0x90'));if(_0xc40c92[_0xd12f('0x8f')]===_0xd12f('0x91')){var _0x1bd5ad=_0x4e4b6e['get']({'plain':!![]});return db[_0xd12f('0x92')]['find']({'where':{'name':_0xd12f('0x93'),'userProfileId':_0xc40c92[_0xd12f('0x94')]},'raw':!![]})['then'](function(_0x188c47){if(_0x188c47&&_0x188c47[_0xd12f('0x95')]===0x0){return db[_0xd12f('0x2a')][_0xd12f('0x96')]({'name':_0x1bd5ad['name'],'resourceId':_0x1bd5ad['id'],'type':_0x188c47[_0xd12f('0x2d')],'sectionId':_0x188c47['id']},{})[_0xd12f('0x27')](function(){return _0x4e4b6e;});}else{return _0x4e4b6e;}})['catch'](function(_0xab4e8c){logger[_0xd12f('0x2b')](_0xd12f('0x97'),_0xab4e8c);throw _0xab4e8c;});}return _0x4e4b6e;})['then'](respondWithResult(_0x2083b5,null))['catch'](handleError(_0x2083b5,null));}});}catch(_0x511232){_0x2083b5['status'](0x1f4)['send'](_0x511232);}};function removeReferences(_0x4c3713,_0x1e4a4d){try{if(_0x4c3713){fs[_0xd12f('0x63')](_0x4c3713);logger[_0xd12f('0x64')](_0xd12f('0x98'));}if(_0x1e4a4d){rimraf(_0x1e4a4d,function(){});logger[_0xd12f('0x64')](_0xd12f('0x99'));}}catch(_0x337594){logger[_0xd12f('0x2b')](_0x337594);}}exports['update']=function(_0x5751b1,_0x564721,_0xa2c892){return db[_0xd12f('0x2f')][_0xd12f('0x4a')]({'where':{'id':_0x5751b1[_0xd12f('0x4b')]['id']}})[_0xd12f('0x27')](handleEntityNotFound(_0x564721,null))[_0xd12f('0x27')](saveUpdates(_0x5751b1[_0xd12f('0x8e')],null))[_0xd12f('0x27')](respondWithResult(_0x564721,null))['catch'](handleError(_0x564721,null));};exports[_0xd12f('0x9a')]=function(_0x5a6e14,_0x2aa50f,_0x227ba9){return db[_0xd12f('0x2f')][_0xd12f('0x4a')]({'where':{'id':_0x5a6e14[_0xd12f('0x4b')]['id']}})[_0xd12f('0x27')](function(_0xa01e87){if(_0xa01e87){return _0xa01e87['destroy']();}})['then'](function(_0x61d1ce){rimraf(path[_0xd12f('0x4c')](config[_0xd12f('0x4d')],_0xd12f('0x4e'),path['dirname'](_0x61d1ce[_0xd12f('0x7')])),function(){});return _0x61d1ce;})[_0xd12f('0x27')](handleEntityNotFound(_0x2aa50f,null))[_0xd12f('0x27')](respondWithStatusCode(_0x2aa50f,null))[_0xd12f('0x48')](handleError(_0x2aa50f,null));};exports[_0xd12f('0x9b')]=function(_0x21f4cf,_0x322f88,_0x49aeb6){return BPromise[_0xd12f('0x9c')]()[_0xd12f('0x27')](function(){if(!_0x21f4cf[_0xd12f('0x34')][_0xd12f('0x7')]){throw new Error('\x27PATH\x27\x20parameter\x20not\x20specified');}if(!_0x21f4cf[_0xd12f('0x34')][_0xd12f('0x9d')]){throw new Error(_0xd12f('0x9e'));}var _0x41407a=_0x21f4cf['query']['hostname']?_0x21f4cf[_0xd12f('0x34')][_0xd12f('0x9f')]+':'+_0x21f4cf[_0xd12f('0x34')][_0xd12f('0x9d')]:_0xd12f('0xa0')+_0x21f4cf['query'][_0xd12f('0x9d')];var _0x23bc35=_0x21f4cf[_0xd12f('0x34')][_0xd12f('0x1f')]?_0x21f4cf[_0xd12f('0x34')][_0xd12f('0x1f')]:!![];var _0x52dc7d=_0x21f4cf[_0xd12f('0x34')][_0xd12f('0xa1')]?_0x21f4cf[_0xd12f('0x34')]['encoding']:null;var _0x49f860={'method':_0x21f4cf[_0xd12f('0xa2')],'uri':util['format']('%s%s',_0x41407a,_0x21f4cf[_0xd12f('0x34')][_0xd12f('0x7')]),'json':_0x23bc35,'resolveWithFullResponse':!![],'encoding':_0x52dc7d,'qs':_0x21f4cf[_0xd12f('0x34')]};if(_0x21f4cf[_0xd12f('0xa3')]){_0x49f860[_0xd12f('0xa3')]=_0x21f4cf[_0xd12f('0xa3')];if(_0x49f860['headers'][_0xd12f('0xa4')]){delete _0x49f860[_0xd12f('0xa3')][_0xd12f('0xa4')];}}if(_0x49f860['headers'][_0xd12f('0xa5')]){delete _0x49f860['headers'][_0xd12f('0xa5')];}return rp(_0x49f860);})[_0xd12f('0x27')](function(_0x2cac77){if(_0x2cac77){_0x322f88['set'](_0x2cac77['headers']);logger[_0xd12f('0x64')](_0x2cac77[_0xd12f('0x8e')]);if(_[_0xd12f('0xa6')](_0x21f4cf[_0xd12f('0x34')][_0xd12f('0x7')],_0xd12f('0x49'))&&_0x2cac77[_0xd12f('0xa7')]==0x1f4){return _0x322f88['sendStatus'](_0x2cac77[_0xd12f('0xa7')]);}else{return _0x322f88[_0xd12f('0x1d')](_0x2cac77[_0xd12f('0xa7')])[_0xd12f('0xa8')](_0x2cac77[_0xd12f('0x8e')]);}}else{return _0x322f88[_0xd12f('0x1c')](0xc8);}})[_0xd12f('0x48')](handleError(_0x322f88,null));};exports[_0xd12f('0xa9')]=function(_0x4649af,_0xee73a7,_0x39fca5){return BPromise['resolve']()[_0xd12f('0x27')](function(){if(!_0x4649af[_0xd12f('0x34')][_0xd12f('0x7')]){throw new Error(_0xd12f('0xaa'));}if(!_0x4649af[_0xd12f('0x34')][_0xd12f('0x9d')]){throw new Error(_0xd12f('0x9e'));}var _0x29a697=_0x4649af[_0xd12f('0x34')][_0xd12f('0x9f')]?_0x4649af['query'][_0xd12f('0x9f')]+':'+_0x4649af[_0xd12f('0x34')]['port']:_0xd12f('0xa0')+_0x4649af[_0xd12f('0x34')][_0xd12f('0x9d')];var _0x38813d=_0x4649af[_0xd12f('0x34')][_0xd12f('0x1f')]?_0x4649af[_0xd12f('0x34')][_0xd12f('0x1f')]:!![];var _0x4547c9=_0x4649af[_0xd12f('0x34')][_0xd12f('0xa1')]?_0x4649af['query']['encoding']:null;var _0x5da755={'method':_0x4649af[_0xd12f('0xa2')],'uri':util[_0xd12f('0x4f')](_0xd12f('0xab'),_0x29a697,_0x4649af[_0xd12f('0x34')]['path']),'json':_0x38813d,'resolveWithFullResponse':!![],'encoding':_0x4547c9,'body':_0x4649af['body']};if(_0x4649af[_0xd12f('0xa3')]){_0x5da755['headers']=_0x4649af[_0xd12f('0xa3')];if(_0x5da755[_0xd12f('0xa3')][_0xd12f('0xa4')]){delete _0x5da755[_0xd12f('0xa3')][_0xd12f('0xa4')];}}if(_0x5da755[_0xd12f('0xa3')][_0xd12f('0xa5')]){delete _0x5da755['headers'][_0xd12f('0xa5')];}return rp(_0x5da755);})[_0xd12f('0x27')](function(_0x5efcf2){if(_0x5efcf2){_0xee73a7['set'](_0x5efcf2[_0xd12f('0xa3')]);logger[_0xd12f('0x64')](_0x5efcf2['body']);return _0xee73a7['status'](_0x5efcf2[_0xd12f('0xa7')])['send'](_0x5efcf2[_0xd12f('0x8e')]);}else{return _0xee73a7[_0xd12f('0x1c')](0xc8);}})[_0xd12f('0x48')](handleError(_0xee73a7,null));};