Built motion from commit 3c2ce842.|2.6.31
[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 _0x6322=['%s%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','lodash','squel','querystring','papaparse','extract-zip','archiver','../../components/parsers/qs','../../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','end','offset','undefined','limit','set','Content-Range','json','apply','reject','then','destroy','get','Plugins','UserProfileResource','error','stack','name','send','index','map','Plugin','fieldName','type','model','query','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','catch','show','params','keys','find','download','root','server/files/plugins','format','%s.zip','path','createWriteStream','zip','warning','code','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','**/*','dirname','join','basename','node_modules/**/*','finalize','close','existsSync','Plugin\x20not\x20found','info','Download\x20completed','Temporary\x20file\x20removed','upload','filename','extname','file','Plugin\x20upload\x20destination:\x20%s','chmodSync','0777','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','some','manifest.json','parse','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','views','Invalid\x20manifest:\x20views\x20missing','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','always','icon','icon-apps','admin','test','plugins','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Zip\x20archive\x20removed','webhookGet','port','hostname','encoding','method','headers','content-length','content-type','endsWith','statusCode','webhookPost','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','\x27PORT\x27\x20parameter\x20not\x20specified','http://localhost:'];(function(_0x2270bc,_0x3b6274){var _0x5de1d5=function(_0x16a689){while(--_0x16a689){_0x2270bc['push'](_0x2270bc['shift']());}};_0x5de1d5(++_0x3b6274);}(_0x6322,0x15d));var _0x2632=function(_0x54b62b,_0x4a8b){_0x54b62b=_0x54b62b-0x0;var _0x4567ec=_0x6322[_0x54b62b];return _0x4567ec;};'use strict';var emlformat=require(_0x2632('0x0'));var rimraf=require(_0x2632('0x1'));var zipdir=require(_0x2632('0x2'));var jsonpatch=require(_0x2632('0x3'));var rp=require(_0x2632('0x4'));var moment=require(_0x2632('0x5'));var BPromise=require(_0x2632('0x6'));var Mustache=require(_0x2632('0x7'));var util=require(_0x2632('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0x2632('0x9'));var ejs=require(_0x2632('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2632('0xb'));var squel=require(_0x2632('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x2632('0x9'));var querystring=require(_0x2632('0xd'));var Papa=require(_0x2632('0xe'));var extract=require(_0x2632('0xf'));var rimraf=require('rimraf');var archiver=require(_0x2632('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x2632('0x11'));var as=require(_0x2632('0x12'));var hardwareService=require(_0x2632('0x13'));var logger=require(_0x2632('0x14'))(_0x2632('0x15'));var utils=require(_0x2632('0x16'));var config=require(_0x2632('0x17'));var licenseUtil=require(_0x2632('0x18'));var db=require(_0x2632('0x19'))['db'];config[_0x2632('0x1a')]=_['defaults'](config[_0x2632('0x1a')],{'host':_0x2632('0x1b'),'port':0x18eb});var socket=require(_0x2632('0x1c'))(new Redis(config[_0x2632('0x1a')]));require(_0x2632('0x1d'))[_0x2632('0x1e')](socket);function respondWithStatusCode(_0x4e96c5,_0xf2f210){_0xf2f210=_0xf2f210||0xcc;return function(_0x2cc03e){if(_0x2cc03e){return _0x4e96c5[_0x2632('0x1f')](_0xf2f210);}return _0x4e96c5[_0x2632('0x20')](_0xf2f210)[_0x2632('0x21')]();};}function respondWithResult(_0x5aef67,_0x4d8294){_0x4d8294=_0x4d8294||0xc8;return function(_0x621f37){if(_0x621f37){return _0x5aef67['status'](_0x4d8294)['json'](_0x621f37);}};}function respondWithFilteredResult(_0x3d6df6,_0xd2979a){return function(_0x4a416e){if(_0x4a416e){var _0x399e98=typeof _0xd2979a[_0x2632('0x22')]===_0x2632('0x23')&&typeof _0xd2979a['limit']===_0x2632('0x23');var _0x5eeac7=_0x4a416e['count'];var _0x28ec7c=_0x399e98?0x0:_0xd2979a[_0x2632('0x22')];var _0x153822=_0x399e98?_0x4a416e['count']:_0xd2979a[_0x2632('0x22')]+_0xd2979a[_0x2632('0x24')];var _0x5ab5b7;if(_0x153822>=_0x5eeac7){_0x153822=_0x5eeac7;_0x5ab5b7=0xc8;}else{_0x5ab5b7=0xce;}_0x3d6df6[_0x2632('0x20')](_0x5ab5b7);return _0x3d6df6[_0x2632('0x25')](_0x2632('0x26'),_0x28ec7c+'-'+_0x153822+'/'+_0x5eeac7)[_0x2632('0x27')](_0x4a416e);}return null;};}function patchUpdates(_0xbc79d9){return function(_0xa0d63b){try{jsonpatch[_0x2632('0x28')](_0xa0d63b,_0xbc79d9,!![]);}catch(_0x290c3c){return BPromise[_0x2632('0x29')](_0x290c3c);}return _0xa0d63b['save']();};}function saveUpdates(_0x3771d5,_0x1863f2){return function(_0x5c876b){if(_0x5c876b){return _0x5c876b['update'](_0x3771d5)[_0x2632('0x2a')](function(_0x55259d){return _0x55259d;});}return null;};}function removeEntity(_0x5950f9,_0x135c04){return function(_0x4bb17a){if(_0x4bb17a){return _0x4bb17a[_0x2632('0x2b')]()['then'](function(){var _0x5b949a=_0x4bb17a[_0x2632('0x2c')]({'plain':!![]});var _0x4fa1ae=_0x2632('0x2d');return db[_0x2632('0x2e')][_0x2632('0x2b')]({'where':{'type':_0x4fa1ae,'resourceId':_0x5b949a['id']}})[_0x2632('0x2a')](function(){return _0x4bb17a;});})[_0x2632('0x2a')](function(){_0x5950f9[_0x2632('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1a5a11,_0x559165){return function(_0x5c3a9b){if(!_0x5c3a9b){_0x1a5a11[_0x2632('0x1f')](0x194);}return _0x5c3a9b;};}function handleError(_0x28cee8,_0x3fc133){_0x3fc133=_0x3fc133||0x1f4;return function(_0x22e1d7){logger[_0x2632('0x2f')](_0x22e1d7[_0x2632('0x30')]);if(_0x22e1d7[_0x2632('0x31')]){delete _0x22e1d7[_0x2632('0x31')];}_0x28cee8[_0x2632('0x20')](_0x3fc133)[_0x2632('0x32')](_0x22e1d7);};}exports[_0x2632('0x33')]=function(_0x250107,_0xfc6741){var _0x485094={},_0x58303c={},_0x2696eb={'count':0x0,'rows':[]};var _0x31d37d=_[_0x2632('0x34')](db[_0x2632('0x35')]['rawAttributes'],function(_0x32b98f){return{'name':_0x32b98f[_0x2632('0x36')],'type':_0x32b98f[_0x2632('0x37')]['key']};});_0x58303c[_0x2632('0x38')]=_[_0x2632('0x34')](_0x31d37d,'name');_0x58303c[_0x2632('0x39')]=_['keys'](_0x250107[_0x2632('0x39')]);_0x58303c['filters']=_[_0x2632('0x3a')](_0x58303c['model'],_0x58303c[_0x2632('0x39')]);_0x485094[_0x2632('0x3b')]=_[_0x2632('0x3a')](_0x58303c['model'],qs[_0x2632('0x3c')](_0x250107[_0x2632('0x39')]['fields']));_0x485094['attributes']=_0x485094[_0x2632('0x3b')][_0x2632('0x3d')]?_0x485094[_0x2632('0x3b')]:_0x58303c[_0x2632('0x38')];if(!_0x250107['query']['hasOwnProperty'](_0x2632('0x3e'))){_0x485094[_0x2632('0x24')]=qs[_0x2632('0x24')](_0x250107[_0x2632('0x39')][_0x2632('0x24')]);_0x485094[_0x2632('0x22')]=qs[_0x2632('0x22')](_0x250107[_0x2632('0x39')][_0x2632('0x22')]);}_0x485094[_0x2632('0x3f')]=qs[_0x2632('0x40')](_0x250107['query'][_0x2632('0x40')]);_0x485094[_0x2632('0x41')]=qs[_0x2632('0x42')](_[_0x2632('0x43')](_0x250107[_0x2632('0x39')],_0x58303c[_0x2632('0x42')]),_0x31d37d);if(_0x250107[_0x2632('0x39')][_0x2632('0x44')]){_0x485094['where']=_[_0x2632('0x45')](_0x485094['where'],{'$or':_[_0x2632('0x34')](_0x31d37d,function(_0x61efc8){if(_0x61efc8['type']!==_0x2632('0x46')){var _0x32174f={};_0x32174f[_0x61efc8[_0x2632('0x31')]]={'$like':'%'+_0x250107[_0x2632('0x39')]['filter']+'%'};return _0x32174f;}})});}_0x485094=_['merge']({},_0x485094,_0x250107[_0x2632('0x47')]);var _0x81047d={'where':_0x485094['where']};return db[_0x2632('0x35')][_0x2632('0x48')](_0x81047d)[_0x2632('0x2a')](function(_0x191fa2){_0x2696eb[_0x2632('0x48')]=_0x191fa2;if(_0x250107[_0x2632('0x39')][_0x2632('0x49')]){_0x485094[_0x2632('0x4a')]=[{'all':!![]}];}return db[_0x2632('0x35')][_0x2632('0x4b')](_0x485094);})[_0x2632('0x2a')](function(_0x132ad6){_0x2696eb['rows']=_0x132ad6;return _0x2696eb;})['then'](respondWithFilteredResult(_0xfc6741,_0x485094))[_0x2632('0x4c')](handleError(_0xfc6741,null));};exports[_0x2632('0x4d')]=function(_0x4842fc,_0x34dafc){var _0x2839cc={'raw':!![],'where':{'id':_0x4842fc[_0x2632('0x4e')]['id']}},_0x3a1434={};_0x3a1434[_0x2632('0x38')]=_[_0x2632('0x4f')](db[_0x2632('0x35')]['rawAttributes']);_0x3a1434[_0x2632('0x39')]=_[_0x2632('0x4f')](_0x4842fc[_0x2632('0x39')]);_0x3a1434['filters']=_[_0x2632('0x3a')](_0x3a1434[_0x2632('0x38')],_0x3a1434[_0x2632('0x39')]);_0x2839cc[_0x2632('0x3b')]=_[_0x2632('0x3a')](_0x3a1434[_0x2632('0x38')],qs[_0x2632('0x3c')](_0x4842fc[_0x2632('0x39')][_0x2632('0x3c')]));_0x2839cc[_0x2632('0x3b')]=_0x2839cc[_0x2632('0x3b')][_0x2632('0x3d')]?_0x2839cc[_0x2632('0x3b')]:_0x3a1434[_0x2632('0x38')];if(_0x4842fc['query'][_0x2632('0x49')]){_0x2839cc[_0x2632('0x4a')]=[{'all':!![]}];}_0x2839cc=_[_0x2632('0x45')]({},_0x2839cc,_0x4842fc['options']);return db[_0x2632('0x35')][_0x2632('0x50')](_0x2839cc)[_0x2632('0x2a')](handleEntityNotFound(_0x34dafc,null))[_0x2632('0x2a')](respondWithResult(_0x34dafc,null))[_0x2632('0x4c')](handleError(_0x34dafc,null));};exports[_0x2632('0x51')]=function(_0x424982,_0x27e7ae,_0x2878f7){return db[_0x2632('0x35')]['find']({'where':{'id':_0x424982[_0x2632('0x4e')]['id']},'attributes':[_0x2632('0x31'),'path'],'raw':!![]})[_0x2632('0x2a')](handleEntityNotFound(_0x27e7ae,null))[_0x2632('0x2a')](function(_0x5d6323){if(_0x5d6323){var _0x59b7be=path['join'](config[_0x2632('0x52')],_0x2632('0x53'),util[_0x2632('0x54')](_0x2632('0x55'),path['basename'](_0x5d6323[_0x2632('0x56')])));var _0x1d576d=fs[_0x2632('0x57')](_0x59b7be);var _0x50f93d=archiver(_0x2632('0x58'),{'zlib':{'level':0x9}});_0x50f93d['on'](_0x2632('0x59'),function(_0x779d2b){if(_0x779d2b[_0x2632('0x5a')]==='ENOENT'){logger[_0x2632('0x2f')](_0x779d2b);}else{throw new db[(_0x2632('0x5b'))][(_0x2632('0x5c'))](_0x2632('0x5d'));}});_0x50f93d['on']('error',function(_0x238fbc){throw new db[(_0x2632('0x5b'))][(_0x2632('0x5c'))](_0x2632('0x5d'));});_0x50f93d[_0x2632('0x5e')](_0x1d576d);_0x50f93d[_0x2632('0x5f')](_0x2632('0x60'),{'cwd':path['join'](config[_0x2632('0x52')],_0x2632('0x53'),path[_0x2632('0x61')](_0x5d6323[_0x2632('0x56')])),'ignore':[path[_0x2632('0x62')](path[_0x2632('0x63')](_0x5d6323[_0x2632('0x56')]),_0x2632('0x64')),path['join'](path[_0x2632('0x63')](_0x5d6323[_0x2632('0x56')]),'attachments/**/*')],'nodir':!![]})[_0x2632('0x65')]();_0x1d576d['on'](_0x2632('0x66'),function(){if(!fs[_0x2632('0x67')](_0x59b7be)){throw new db[(_0x2632('0x5b'))]['Error'](_0x2632('0x68'));}return _0x27e7ae[_0x2632('0x51')](_0x59b7be,util[_0x2632('0x54')](_0x2632('0x55'),path[_0x2632('0x63')](_0x5d6323[_0x2632('0x56')])),function(_0x199ce2){if(_0x199ce2){throw new db['Sequelize'][(_0x2632('0x5c'))]('Error\x20while\x20downloading\x20the\x20plugin');}fs['unlinkSync'](_0x59b7be);logger[_0x2632('0x69')](_0x2632('0x6a'));logger[_0x2632('0x69')](_0x2632('0x6b'));});});}return null;})[_0x2632('0x4c')](handleError(_0x27e7ae,null));};exports[_0x2632('0x6c')]=function(_0x53e8a7,_0x1c6d66,_0x2f6797){var _0xdaff7e=path[_0x2632('0x63')](_0x53e8a7['file'][_0x2632('0x6d')],path[_0x2632('0x6e')](_0x53e8a7['file'][_0x2632('0x6d')]));var _0x3fabd7=path[_0x2632('0x62')](config[_0x2632('0x52')],_0x2632('0x53'),_0x53e8a7[_0x2632('0x6f')]['filename']);var _0x40a6a3=path[_0x2632('0x62')](config[_0x2632('0x52')],_0x2632('0x53'),_0xdaff7e);logger['info']('Plugin\x20upload\x20filepath:\x20%s',_0x3fabd7);logger[_0x2632('0x69')](_0x2632('0x70'),_0x40a6a3);try{fs[_0x2632('0x71')](_0x3fabd7,parseInt(_0x2632('0x72'),0x8));extract(_0x3fabd7,{'dir':_0x40a6a3},function(_0x2885f3){if(_0x2885f3){logger['error'](_0x2885f3);handleError(_0x2885f3,!![]);};var _0x1ff83f=fs[_0x2632('0x73')](_0x40a6a3);if(_0x1ff83f[_0x2632('0x3d')]>0x1){removeReferences(_0x3fabd7,_0x40a6a3);logger[_0x2632('0x2f')](_0x2632('0x74'));return _0x2f6797(new Error(_0x2632('0x74')));}var _0x10cf75=fs[_0x2632('0x75')](path[_0x2632('0x62')](_0x40a6a3,_0x1ff83f[0x0]));if(_0x10cf75[_0x2632('0x76')]()){removeReferences(_0x3fabd7,_0x40a6a3);logger[_0x2632('0x2f')]('Invalid\x20plugin\x20structure');return _0x2f6797(new Error('Invalid\x20plugin\x20structure'));}if(_0x10cf75[_0x2632('0x77')]()){var _0xb5851d=fs[_0x2632('0x73')](path[_0x2632('0x62')](_0x40a6a3,_0x1ff83f[0x0]));if(_0xb5851d[_0x2632('0x3d')]===0x0){removeReferences(_0x3fabd7,_0x40a6a3);logger[_0x2632('0x2f')](_0x2632('0x74'));return _0x2f6797(new Error(_0x2632('0x74')));}var _0x52c980=_0xb5851d[_0x2632('0x78')](function(_0x2899ac){return _0x2899ac===_0x2632('0x79');});if(!_0x52c980){return _0x2f6797(new Error('Plugin\x20manifest\x20missing'));}var _0x2f6283=fs['readFileSync'](path[_0x2632('0x62')](_0x40a6a3,_0x1ff83f[0x0],_0x2632('0x79')));var _0x5c9db3=JSON[_0x2632('0x7a')](_0x2f6283);if(_0x2632('0x23')==typeof _0x5c9db3[_0x2632('0x31')]){return _0x2f6797(new Error(_0x2632('0x7b')));}if('undefined'==typeof _0x5c9db3[_0x2632('0x37')]){return _0x2f6797(new Error(_0x2632('0x7c')));}if('undefined'==typeof _0x5c9db3[_0x2632('0x7d')]){return _0x2f6797(new Error(_0x2632('0x7e')));}if(_0x2632('0x23')==typeof _0x5c9db3[_0x2632('0x7f')]){return _0x2f6797(new Error(_0x2632('0x80')));}if(_0x5c9db3[_0x2632('0x37')]===_0x2632('0x81')){if('undefined'==typeof _0x5c9db3[_0x2632('0x7f')][_0x2632('0x82')]){return _0x2f6797(new Error(_0x2632('0x83')));}if(_0x2632('0x23')==typeof _0x5c9db3[_0x2632('0x7f')][_0x2632('0x82')]['admin']&&_0x2632('0x23')==typeof _0x5c9db3[_0x2632('0x7f')][_0x2632('0x82')][_0x2632('0x84')]){return _0x2f6797(new Error(_0x2632('0x85')));}}else if(_0x5c9db3[_0x2632('0x37')]===_0x2632('0x86')){if(_0x2632('0x23')==typeof _0x5c9db3['parameters'][_0x2632('0x87')]){return _0x2f6797(new Error(_0x2632('0x88')));}if(_0x2632('0x23')==typeof _0x5c9db3[_0x2632('0x7f')][_0x2632('0x89')]){return _0x2f6797(new Error(_0x2632('0x8a')));}}else{return _0x2f6797(new Error(_0x2632('0x8b')));}var _0xdaa68b=_0x5c9db3['name'];var _0x2230eb=_0x5c9db3[_0x2632('0x8c')];var _0x5f3698=_0x5c9db3['type'];var _0x56409a=_0x5c9db3[_0x2632('0x8d')]?_0x5c9db3[_0x2632('0x8d')]:_0x2632('0x8e');var _0x5713ba=_0x5c9db3[_0x2632('0x8f')]?_0x5c9db3[_0x2632('0x8f')]:_0x2632('0x90');var _0x58bae5='';var _0x1c0c6a='';var _0x5e9c66='';var _0x11d179='';var _0x1612ea=_0x5c9db3[_0x2632('0x7d')];if(_0x5f3698===_0x2632('0x81')){if(_0x2632('0x23')!=typeof _0x5c9db3['parameters'][_0x2632('0x82')][_0x2632('0x91')]){var _0xe795fe=_0x5c9db3[_0x2632('0x7f')]['views']['admin'];if(!/^(f|ht)tps?:\/\//i[_0x2632('0x92')](_0xe795fe)){_0x58bae5=path[_0x2632('0x62')](_0x2632('0x93'),_0xdaff7e,_0x1ff83f[0x0],_0xe795fe);}else{_0x58bae5=_0xe795fe;}}else{logger[_0x2632('0x69')]('Warning:\x20admin\x20view\x20not\x20specified');}if(_0x2632('0x23')!=typeof _0x5c9db3[_0x2632('0x7f')][_0x2632('0x82')][_0x2632('0x84')]){var _0x43ea8d=_0x5c9db3[_0x2632('0x7f')][_0x2632('0x82')][_0x2632('0x84')];if(!/^(f|ht)tps?:\/\//i[_0x2632('0x92')](_0x43ea8d)){_0x1c0c6a=path[_0x2632('0x62')]('plugins',_0xdaff7e,_0x1ff83f[0x0],_0x43ea8d);}else{_0x1c0c6a=_0x43ea8d;}}else{logger[_0x2632('0x69')]('Warning:\x20agent\x20view\x20not\x20specified');}}else if(_0x5f3698===_0x2632('0x86')){_0x5e9c66=_0x5c9db3[_0x2632('0x7f')][_0x2632('0x87')];_0x11d179=_0x5c9db3[_0x2632('0x7f')][_0x2632('0x89')];if(_0x2632('0x23')!=typeof _0x5c9db3[_0x2632('0x7f')]['views']){if(_0x2632('0x23')!=typeof _0x5c9db3[_0x2632('0x7f')][_0x2632('0x82')][_0x2632('0x91')]){var _0xe795fe=_0x5c9db3[_0x2632('0x7f')][_0x2632('0x82')][_0x2632('0x91')];if(!/^(f|ht)tps?:\/\//i[_0x2632('0x92')](_0xe795fe)){_0x58bae5=path[_0x2632('0x62')](_0x2632('0x93'),_0xdaff7e,_0x1ff83f[0x0],_0xe795fe);}else{_0x58bae5=_0xe795fe;}}if(_0x2632('0x23')!=typeof _0x5c9db3[_0x2632('0x7f')]['views'][_0x2632('0x84')]){var _0x43ea8d=_0x5c9db3[_0x2632('0x7f')][_0x2632('0x82')][_0x2632('0x84')];if(!/^(f|ht)tps?:\/\//i[_0x2632('0x92')](_0x43ea8d)){_0x1c0c6a=path['join'](_0x2632('0x93'),_0xdaff7e,_0x1ff83f[0x0],_0x43ea8d);}else{_0x1c0c6a=_0x43ea8d;}}}}var _0x5e0e29={'name':_0xdaa68b,'description':_0x2230eb,'path':path[_0x2632('0x62')](_0xdaff7e,_0x1ff83f[0x0]),'type':_0x5f3698,'sidebar':_0x56409a,'icon':_0x5713ba,'adminUrl':_0x58bae5,'agentUrl':_0x1c0c6a,'scriptName':_0x5e9c66,'scriptPath':_0x11d179,'version':_0x1612ea};removeReferences(_0x3fabd7,null);return db['Plugin']['create'](_0x5e0e29)[_0x2632('0x2a')](function(_0x969ac1){var _0x5650f7={'role':_0x53e8a7[_0x2632('0x94')]['role'],'userProfileId':_0x53e8a7['body'][_0x2632('0x95')]};if(!_0x5650f7)throw new Error(_0x2632('0x96'));if(_0x5650f7[_0x2632('0x97')]===_0x2632('0x98')){var _0x3a9753=_0x969ac1[_0x2632('0x2c')]({'plain':!![]});return db[_0x2632('0x99')][_0x2632('0x50')]({'where':{'name':_0x2632('0x2d'),'userProfileId':_0x5650f7['userProfileId']},'raw':!![]})[_0x2632('0x2a')](function(_0xf5522a){if(_0xf5522a&&_0xf5522a[_0x2632('0x9a')]===0x0){return db[_0x2632('0x2e')][_0x2632('0x9b')]({'name':_0x3a9753[_0x2632('0x31')],'resourceId':_0x3a9753['id'],'type':_0xf5522a[_0x2632('0x31')],'sectionId':_0xf5522a['id']},{})[_0x2632('0x2a')](function(){return _0x969ac1;});}else{return _0x969ac1;}})['catch'](function(_0xfc0d16){logger[_0x2632('0x2f')](_0x2632('0x9c'),_0xfc0d16);throw _0xfc0d16;});}return _0x969ac1;})[_0x2632('0x2a')](respondWithResult(_0x1c6d66,null))['catch'](handleError(_0x1c6d66,null));}});}catch(_0x128df7){_0x1c6d66['status'](0x1f4)[_0x2632('0x32')](_0x128df7);}};function removeReferences(_0x301b1c,_0x45985e){try{if(_0x301b1c){fs['unlinkSync'](_0x301b1c);logger['info'](_0x2632('0x9d'));}if(_0x45985e){rimraf(_0x45985e,function(){});logger[_0x2632('0x69')]('Extracted\x20folder\x20removed');}}catch(_0x2ce3c0){logger['error'](_0x2ce3c0);}}exports['update']=function(_0x414d1d,_0x464687,_0x5b76af){return db['Plugin'][_0x2632('0x50')]({'where':{'id':_0x414d1d[_0x2632('0x4e')]['id']}})['then'](handleEntityNotFound(_0x464687,null))[_0x2632('0x2a')](saveUpdates(_0x414d1d[_0x2632('0x94')],null))['then'](respondWithResult(_0x464687,null))[_0x2632('0x4c')](handleError(_0x464687,null));};exports['delete']=function(_0xc4bb65,_0x4b08cd,_0x249e25){return db[_0x2632('0x35')][_0x2632('0x50')]({'where':{'id':_0xc4bb65['params']['id']}})['then'](function(_0x46795e){if(_0x46795e){return _0x46795e[_0x2632('0x2b')]();}})[_0x2632('0x2a')](function(_0x44c67c){rimraf(path[_0x2632('0x62')](config[_0x2632('0x52')],'server/files/plugins',path[_0x2632('0x61')](_0x44c67c[_0x2632('0x56')])),function(){});return _0x44c67c;})[_0x2632('0x2a')](handleEntityNotFound(_0x4b08cd,null))[_0x2632('0x2a')](respondWithStatusCode(_0x4b08cd,null))[_0x2632('0x4c')](handleError(_0x4b08cd,null));};exports[_0x2632('0x9e')]=function(_0x2dea29,_0xf1fdbe,_0xa59398){return BPromise['resolve']()[_0x2632('0x2a')](function(){if(!_0x2dea29['query'][_0x2632('0x56')]){throw new Error('\x27PATH\x27\x20parameter\x20not\x20specified');}if(!_0x2dea29[_0x2632('0x39')][_0x2632('0x9f')]){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x1a19ad=_0x2dea29[_0x2632('0x39')]['hostname']?_0x2dea29[_0x2632('0x39')][_0x2632('0xa0')]+':'+_0x2dea29[_0x2632('0x39')]['port']:'http://localhost:'+_0x2dea29['query'][_0x2632('0x9f')];var _0x52d979=_0x2dea29[_0x2632('0x39')][_0x2632('0x27')]?_0x2dea29[_0x2632('0x39')][_0x2632('0x27')]:!![];var _0x105927=_0x2dea29[_0x2632('0x39')][_0x2632('0xa1')]?_0x2dea29[_0x2632('0x39')]['encoding']:null;var _0x184ee0={'method':_0x2dea29[_0x2632('0xa2')],'uri':util[_0x2632('0x54')]('%s%s',_0x1a19ad,_0x2dea29[_0x2632('0x39')]['path']),'json':_0x52d979,'resolveWithFullResponse':!![],'encoding':_0x105927,'qs':_0x2dea29['query']};if(_0x2dea29[_0x2632('0xa3')]){_0x184ee0[_0x2632('0xa3')]=_0x2dea29[_0x2632('0xa3')];if(_0x184ee0[_0x2632('0xa3')][_0x2632('0xa4')]){delete _0x184ee0[_0x2632('0xa3')][_0x2632('0xa4')];}}if(_0x184ee0[_0x2632('0xa3')][_0x2632('0xa5')]){delete _0x184ee0[_0x2632('0xa3')][_0x2632('0xa5')];}return rp(_0x184ee0);})['then'](function(_0x1a74c0){if(_0x1a74c0){_0xf1fdbe[_0x2632('0x25')](_0x1a74c0[_0x2632('0xa3')]);logger[_0x2632('0x69')](_0x1a74c0[_0x2632('0x94')]);if(_[_0x2632('0xa6')](_0x2dea29[_0x2632('0x39')][_0x2632('0x56')],_0x2632('0x51'))&&_0x1a74c0[_0x2632('0xa7')]==0x1f4){return _0xf1fdbe[_0x2632('0x1f')](_0x1a74c0[_0x2632('0xa7')]);}else{return _0xf1fdbe['status'](_0x1a74c0['statusCode'])['send'](_0x1a74c0[_0x2632('0x94')]);}}else{return _0xf1fdbe[_0x2632('0x1f')](0xc8);}})['catch'](handleError(_0xf1fdbe,null));};exports[_0x2632('0xa8')]=function(_0x241901,_0x347b03,_0x3da9d0){return BPromise[_0x2632('0xa9')]()[_0x2632('0x2a')](function(){if(!_0x241901[_0x2632('0x39')]['path']){throw new Error(_0x2632('0xaa'));}if(!_0x241901[_0x2632('0x39')][_0x2632('0x9f')]){throw new Error(_0x2632('0xab'));}var _0x3155a1=_0x241901[_0x2632('0x39')]['hostname']?_0x241901[_0x2632('0x39')][_0x2632('0xa0')]+':'+_0x241901[_0x2632('0x39')][_0x2632('0x9f')]:_0x2632('0xac')+_0x241901['query'][_0x2632('0x9f')];var _0x24a530=_0x241901[_0x2632('0x39')][_0x2632('0x27')]?_0x241901[_0x2632('0x39')][_0x2632('0x27')]:!![];var _0x4cfabf=_0x241901[_0x2632('0x39')]['encoding']?_0x241901[_0x2632('0x39')][_0x2632('0xa1')]:null;var _0x21c7f7={'method':_0x241901[_0x2632('0xa2')],'uri':util['format'](_0x2632('0xad'),_0x3155a1,_0x241901[_0x2632('0x39')][_0x2632('0x56')]),'json':_0x24a530,'resolveWithFullResponse':!![],'encoding':_0x4cfabf,'body':_0x241901[_0x2632('0x94')]};if(_0x241901[_0x2632('0xa3')]){_0x21c7f7[_0x2632('0xa3')]=_0x241901[_0x2632('0xa3')];if(_0x21c7f7['headers']['content-length']){delete _0x21c7f7[_0x2632('0xa3')]['content-length'];}}if(_0x21c7f7[_0x2632('0xa3')][_0x2632('0xa5')]){delete _0x21c7f7['headers'][_0x2632('0xa5')];}return rp(_0x21c7f7);})[_0x2632('0x2a')](function(_0x3d67e6){if(_0x3d67e6){_0x347b03['set'](_0x3d67e6['headers']);logger['info'](_0x3d67e6[_0x2632('0x94')]);return _0x347b03['status'](_0x3d67e6[_0x2632('0xa7')])['send'](_0x3d67e6[_0x2632('0x94')]);}else{return _0x347b03[_0x2632('0x1f')](0xc8);}})[_0x2632('0x4c')](handleError(_0x347b03,null));};