Built motion from commit 449495f6.|2.6.27
[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 _0xc721=['resolve','content-length','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','extract-zip','archiver','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','./plugin.socket','sendStatus','offset','undefined','limit','count','status','set','json','apply','reject','then','destroy','get','Plugins','UserProfileResource','end','stack','name','send','index','map','Plugin','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','params','find','catch','download','join','server/files/plugins','format','createWriteStream','zip','warning','ENOENT','Sequelize','Error\x20while\x20generating\x20the\x20zip\x20archive','error','Error','pipe','dirname','basename','node_modules/**/*','attachments/**/*','finalize','close','Plugin\x20not\x20found','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','upload','filename','extname','file','root','Plugin\x20upload\x20destination:\x20%s','chmodSync','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','some','manifest.json','Plugin\x20manifest\x20missing','readFileSync','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','Invalid\x20manifest:\x20parameters\x20missing','html','parameters','views','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','sidebar','icon','icon-apps','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','scriptName','create','body','role','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','userProfileId','autoAssociation','Extracted\x20folder\x20removed','update','delete','webhookGet','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','method','%s%s','headers','content-type','endsWith','statusCode'];(function(_0x4a23a9,_0x17a2c0){var _0x18c27f=function(_0x3414e3){while(--_0x3414e3){_0x4a23a9['push'](_0x4a23a9['shift']());}};_0x18c27f(++_0x17a2c0);}(_0xc721,0x14a));var _0x1c72=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc721[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x1c72('0x0'));var rimraf=require(_0x1c72('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x1c72('0x2'));var rp=require(_0x1c72('0x3'));var moment=require(_0x1c72('0x4'));var BPromise=require(_0x1c72('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x1c72('0x6'));var sox=require(_0x1c72('0x7'));var csv=require(_0x1c72('0x8'));var ejs=require(_0x1c72('0x9'));var fs=require('fs');var fs_extra=require(_0x1c72('0xa'));var _=require(_0x1c72('0xb'));var squel=require('squel');var crypto=require(_0x1c72('0xc'));var jsforce=require(_0x1c72('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x1c72('0x8'));var querystring=require(_0x1c72('0xe'));var Papa=require(_0x1c72('0xf'));var extract=require(_0x1c72('0x10'));var rimraf=require(_0x1c72('0x1'));var archiver=require(_0x1c72('0x11'));var Redis=require(_0x1c72('0x12'));var authService=require(_0x1c72('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x1c72('0x14'));var hardwareService=require(_0x1c72('0x15'));var logger=require(_0x1c72('0x16'))('api');var utils=require(_0x1c72('0x17'));var config=require(_0x1c72('0x18'));var licenseUtil=require(_0x1c72('0x19'));var db=require('../../mysqldb')['db'];config[_0x1c72('0x1a')]=_[_0x1c72('0x1b')](config[_0x1c72('0x1a')],{'host':_0x1c72('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x1c72('0x1a')]));require(_0x1c72('0x1d'))['register'](socket);function respondWithStatusCode(_0x3db6b6,_0x410e34){_0x410e34=_0x410e34||0xcc;return function(_0x44eadd){if(_0x44eadd){return _0x3db6b6[_0x1c72('0x1e')](_0x410e34);}return _0x3db6b6['status'](_0x410e34)['end']();};}function respondWithResult(_0x2ad7d6,_0x528a22){_0x528a22=_0x528a22||0xc8;return function(_0x5ebbd1){if(_0x5ebbd1){return _0x2ad7d6['status'](_0x528a22)['json'](_0x5ebbd1);}};}function respondWithFilteredResult(_0x26c5e4,_0xad161c){return function(_0x96579a){if(_0x96579a){var _0x21f439=typeof _0xad161c[_0x1c72('0x1f')]===_0x1c72('0x20')&&typeof _0xad161c[_0x1c72('0x21')]==='undefined';var _0x4fd7fb=_0x96579a[_0x1c72('0x22')];var _0x4654bb=_0x21f439?0x0:_0xad161c[_0x1c72('0x1f')];var _0x207c22=_0x21f439?_0x96579a[_0x1c72('0x22')]:_0xad161c[_0x1c72('0x1f')]+_0xad161c[_0x1c72('0x21')];var _0xe34a97;if(_0x207c22>=_0x4fd7fb){_0x207c22=_0x4fd7fb;_0xe34a97=0xc8;}else{_0xe34a97=0xce;}_0x26c5e4[_0x1c72('0x23')](_0xe34a97);return _0x26c5e4[_0x1c72('0x24')]('Content-Range',_0x4654bb+'-'+_0x207c22+'/'+_0x4fd7fb)[_0x1c72('0x25')](_0x96579a);}return null;};}function patchUpdates(_0x17c461){return function(_0x23b163){try{jsonpatch[_0x1c72('0x26')](_0x23b163,_0x17c461,!![]);}catch(_0x4fe5e6){return BPromise[_0x1c72('0x27')](_0x4fe5e6);}return _0x23b163['save']();};}function saveUpdates(_0x4b6a58,_0x47ace1){return function(_0x31fb38){if(_0x31fb38){return _0x31fb38['update'](_0x4b6a58)[_0x1c72('0x28')](function(_0x281453){return _0x281453;});}return null;};}function removeEntity(_0x9bbeac,_0x1e6e1c){return function(_0x33e501){if(_0x33e501){return _0x33e501[_0x1c72('0x29')]()[_0x1c72('0x28')](function(){var _0x40a39a=_0x33e501[_0x1c72('0x2a')]({'plain':!![]});var _0x3d64d9=_0x1c72('0x2b');return db[_0x1c72('0x2c')][_0x1c72('0x29')]({'where':{'type':_0x3d64d9,'resourceId':_0x40a39a['id']}})['then'](function(){return _0x33e501;});})[_0x1c72('0x28')](function(){_0x9bbeac['status'](0xcc)[_0x1c72('0x2d')]();});}};}function handleEntityNotFound(_0x257faf,_0x322f65){return function(_0x217ffa){if(!_0x217ffa){_0x257faf[_0x1c72('0x1e')](0x194);}return _0x217ffa;};}function handleError(_0x352c1c,_0x423a8f){_0x423a8f=_0x423a8f||0x1f4;return function(_0x12b0e5){logger['error'](_0x12b0e5[_0x1c72('0x2e')]);if(_0x12b0e5['name']){delete _0x12b0e5[_0x1c72('0x2f')];}_0x352c1c[_0x1c72('0x23')](_0x423a8f)[_0x1c72('0x30')](_0x12b0e5);};}exports[_0x1c72('0x31')]=function(_0xb0236d,_0xe9161e){var _0x82419f={},_0x2335a1={},_0x473f5e={'count':0x0,'rows':[]};var _0x258373=_[_0x1c72('0x32')](db[_0x1c72('0x33')][_0x1c72('0x34')],function(_0x1902cf){return{'name':_0x1902cf['fieldName'],'type':_0x1902cf[_0x1c72('0x35')]['key']};});_0x2335a1[_0x1c72('0x36')]=_[_0x1c72('0x32')](_0x258373,_0x1c72('0x2f'));_0x2335a1[_0x1c72('0x37')]=_[_0x1c72('0x38')](_0xb0236d[_0x1c72('0x37')]);_0x2335a1[_0x1c72('0x39')]=_[_0x1c72('0x3a')](_0x2335a1[_0x1c72('0x36')],_0x2335a1[_0x1c72('0x37')]);_0x82419f[_0x1c72('0x3b')]=_[_0x1c72('0x3a')](_0x2335a1[_0x1c72('0x36')],qs[_0x1c72('0x3c')](_0xb0236d[_0x1c72('0x37')][_0x1c72('0x3c')]));_0x82419f[_0x1c72('0x3b')]=_0x82419f['attributes'][_0x1c72('0x3d')]?_0x82419f[_0x1c72('0x3b')]:_0x2335a1[_0x1c72('0x36')];if(!_0xb0236d[_0x1c72('0x37')][_0x1c72('0x3e')](_0x1c72('0x3f'))){_0x82419f[_0x1c72('0x21')]=qs[_0x1c72('0x21')](_0xb0236d['query'][_0x1c72('0x21')]);_0x82419f['offset']=qs[_0x1c72('0x1f')](_0xb0236d[_0x1c72('0x37')][_0x1c72('0x1f')]);}_0x82419f[_0x1c72('0x40')]=qs[_0x1c72('0x41')](_0xb0236d[_0x1c72('0x37')][_0x1c72('0x41')]);_0x82419f['where']=qs['filters'](_['pick'](_0xb0236d[_0x1c72('0x37')],_0x2335a1[_0x1c72('0x39')]),_0x258373);if(_0xb0236d[_0x1c72('0x37')][_0x1c72('0x42')]){_0x82419f[_0x1c72('0x43')]=_[_0x1c72('0x44')](_0x82419f['where'],{'$or':_[_0x1c72('0x32')](_0x258373,function(_0x46064a){if(_0x46064a[_0x1c72('0x35')]!==_0x1c72('0x45')){var _0x5b2c11={};_0x5b2c11[_0x46064a[_0x1c72('0x2f')]]={'$like':'%'+_0xb0236d['query']['filter']+'%'};return _0x5b2c11;}})});}_0x82419f=_[_0x1c72('0x44')]({},_0x82419f,_0xb0236d[_0x1c72('0x46')]);var _0x53ff83={'where':_0x82419f[_0x1c72('0x43')]};return db[_0x1c72('0x33')][_0x1c72('0x22')](_0x53ff83)['then'](function(_0x4d1055){_0x473f5e[_0x1c72('0x22')]=_0x4d1055;if(_0xb0236d[_0x1c72('0x37')][_0x1c72('0x47')]){_0x82419f[_0x1c72('0x48')]=[{'all':!![]}];}return db[_0x1c72('0x33')][_0x1c72('0x49')](_0x82419f);})[_0x1c72('0x28')](function(_0x7f98a9){_0x473f5e['rows']=_0x7f98a9;return _0x473f5e;})['then'](respondWithFilteredResult(_0xe9161e,_0x82419f))['catch'](handleError(_0xe9161e,null));};exports['show']=function(_0x473310,_0xbdc105){var _0x4d8a8a={'raw':!![],'where':{'id':_0x473310[_0x1c72('0x4a')]['id']}},_0xd664d5={};_0xd664d5['model']=_[_0x1c72('0x38')](db[_0x1c72('0x33')]['rawAttributes']);_0xd664d5['query']=_[_0x1c72('0x38')](_0x473310[_0x1c72('0x37')]);_0xd664d5[_0x1c72('0x39')]=_['intersection'](_0xd664d5[_0x1c72('0x36')],_0xd664d5[_0x1c72('0x37')]);_0x4d8a8a['attributes']=_[_0x1c72('0x3a')](_0xd664d5[_0x1c72('0x36')],qs[_0x1c72('0x3c')](_0x473310[_0x1c72('0x37')]['fields']));_0x4d8a8a[_0x1c72('0x3b')]=_0x4d8a8a[_0x1c72('0x3b')][_0x1c72('0x3d')]?_0x4d8a8a['attributes']:_0xd664d5[_0x1c72('0x36')];if(_0x473310[_0x1c72('0x37')][_0x1c72('0x47')]){_0x4d8a8a[_0x1c72('0x48')]=[{'all':!![]}];}_0x4d8a8a=_[_0x1c72('0x44')]({},_0x4d8a8a,_0x473310[_0x1c72('0x46')]);return db[_0x1c72('0x33')][_0x1c72('0x4b')](_0x4d8a8a)['then'](handleEntityNotFound(_0xbdc105,null))[_0x1c72('0x28')](respondWithResult(_0xbdc105,null))[_0x1c72('0x4c')](handleError(_0xbdc105,null));};exports[_0x1c72('0x4d')]=function(_0x3e8b3c,_0x1c49d3,_0x53d292){return db[_0x1c72('0x33')][_0x1c72('0x4b')]({'where':{'id':_0x3e8b3c[_0x1c72('0x4a')]['id']},'attributes':[_0x1c72('0x2f'),_0x1c72('0x6')],'raw':!![]})[_0x1c72('0x28')](handleEntityNotFound(_0x1c49d3,null))['then'](function(_0x31e3b8){if(_0x31e3b8){var _0x13e68f=path[_0x1c72('0x4e')](config['root'],_0x1c72('0x4f'),util[_0x1c72('0x50')]('%s.zip',path['basename'](_0x31e3b8[_0x1c72('0x6')])));var _0x19c68b=fs[_0x1c72('0x51')](_0x13e68f);var _0x184a57=archiver(_0x1c72('0x52'),{'zlib':{'level':0x9}});_0x184a57['on'](_0x1c72('0x53'),function(_0x43e08e){if(_0x43e08e['code']===_0x1c72('0x54')){logger['error'](_0x43e08e);}else{throw new db[(_0x1c72('0x55'))]['Error'](_0x1c72('0x56'));}});_0x184a57['on'](_0x1c72('0x57'),function(_0x38fc8f){throw new db[(_0x1c72('0x55'))][(_0x1c72('0x58'))](_0x1c72('0x56'));});_0x184a57[_0x1c72('0x59')](_0x19c68b);_0x184a57['glob']('**/*',{'cwd':path[_0x1c72('0x4e')](config['root'],_0x1c72('0x4f'),path[_0x1c72('0x5a')](_0x31e3b8[_0x1c72('0x6')])),'ignore':[path[_0x1c72('0x4e')](path[_0x1c72('0x5b')](_0x31e3b8[_0x1c72('0x6')]),_0x1c72('0x5c')),path['join'](path['basename'](_0x31e3b8[_0x1c72('0x6')]),_0x1c72('0x5d'))],'nodir':!![]})[_0x1c72('0x5e')]();_0x19c68b['on'](_0x1c72('0x5f'),function(){if(!fs['existsSync'](_0x13e68f)){throw new db[(_0x1c72('0x55'))]['Error'](_0x1c72('0x60'));}return _0x1c49d3[_0x1c72('0x4d')](_0x13e68f,util[_0x1c72('0x50')]('%s.zip',path[_0x1c72('0x5b')](_0x31e3b8[_0x1c72('0x6')])),function(_0x4bde80){if(_0x4bde80){throw new db[(_0x1c72('0x55'))][(_0x1c72('0x58'))](_0x1c72('0x61'));}fs[_0x1c72('0x62')](_0x13e68f);logger[_0x1c72('0x63')](_0x1c72('0x64'));logger[_0x1c72('0x63')]('Temporary\x20file\x20removed');});});}return null;})[_0x1c72('0x4c')](handleError(_0x1c49d3,null));};exports[_0x1c72('0x65')]=function(_0x103ecf,_0x52e439,_0x4b708c){var _0x42ccd4=path[_0x1c72('0x5b')](_0x103ecf['file'][_0x1c72('0x66')],path[_0x1c72('0x67')](_0x103ecf[_0x1c72('0x68')]['filename']));var _0x5087f2=path[_0x1c72('0x4e')](config[_0x1c72('0x69')],'server/files/plugins',_0x103ecf[_0x1c72('0x68')][_0x1c72('0x66')]);var _0x28eca6=path[_0x1c72('0x4e')](config['root'],_0x1c72('0x4f'),_0x42ccd4);logger['info']('Plugin\x20upload\x20filepath:\x20%s',_0x5087f2);logger['info'](_0x1c72('0x6a'),_0x28eca6);try{fs[_0x1c72('0x6b')](_0x5087f2,parseInt('0777',0x8));extract(_0x5087f2,{'dir':_0x28eca6},function(_0xa9ddd1){if(_0xa9ddd1){logger[_0x1c72('0x57')](_0xa9ddd1);handleError(_0xa9ddd1,!![]);};var _0x35aec4=fs[_0x1c72('0x6c')](_0x28eca6);if(_0x35aec4[_0x1c72('0x3d')]>0x1){removeReferences(_0x5087f2,_0x28eca6);logger[_0x1c72('0x57')](_0x1c72('0x6d'));return _0x4b708c(new Error(_0x1c72('0x6d')));}var _0x53077a=fs[_0x1c72('0x6e')](path[_0x1c72('0x4e')](_0x28eca6,_0x35aec4[0x0]));if(_0x53077a[_0x1c72('0x6f')]()){removeReferences(_0x5087f2,_0x28eca6);logger[_0x1c72('0x57')](_0x1c72('0x6d'));return _0x4b708c(new Error(_0x1c72('0x6d')));}if(_0x53077a[_0x1c72('0x70')]()){var _0x480073=fs[_0x1c72('0x6c')](path[_0x1c72('0x4e')](_0x28eca6,_0x35aec4[0x0]));if(_0x480073[_0x1c72('0x3d')]===0x0){removeReferences(_0x5087f2,_0x28eca6);logger[_0x1c72('0x57')](_0x1c72('0x6d'));return _0x4b708c(new Error(_0x1c72('0x6d')));}var _0x3f28e1=_0x480073[_0x1c72('0x71')](function(_0x5480e6){return _0x5480e6===_0x1c72('0x72');});if(!_0x3f28e1){return _0x4b708c(new Error(_0x1c72('0x73')));}var _0x149179=fs[_0x1c72('0x74')](path['join'](_0x28eca6,_0x35aec4[0x0],'manifest.json'));var _0x3a4068=JSON['parse'](_0x149179);if(_0x1c72('0x20')==typeof _0x3a4068[_0x1c72('0x2f')]){return _0x4b708c(new Error(_0x1c72('0x75')));}if(_0x1c72('0x20')==typeof _0x3a4068[_0x1c72('0x35')]){return _0x4b708c(new Error(_0x1c72('0x76')));}if(_0x1c72('0x20')==typeof _0x3a4068[_0x1c72('0x77')]){return _0x4b708c(new Error(_0x1c72('0x78')));}if('undefined'==typeof _0x3a4068['parameters']){return _0x4b708c(new Error(_0x1c72('0x79')));}if(_0x3a4068[_0x1c72('0x35')]===_0x1c72('0x7a')){if('undefined'==typeof _0x3a4068[_0x1c72('0x7b')][_0x1c72('0x7c')]){return _0x4b708c(new Error('Invalid\x20manifest:\x20views\x20missing'));}if(_0x1c72('0x20')==typeof _0x3a4068['parameters'][_0x1c72('0x7c')][_0x1c72('0x7d')]&&_0x1c72('0x20')==typeof _0x3a4068[_0x1c72('0x7b')]['views'][_0x1c72('0x7e')]){return _0x4b708c(new Error(_0x1c72('0x7f')));}}else if(_0x3a4068[_0x1c72('0x35')]===_0x1c72('0x80')){if(_0x1c72('0x20')==typeof _0x3a4068['parameters']['scriptName']){return _0x4b708c(new Error('Invalid\x20manifest:\x20script\x20name\x20missing'));}if('undefined'==typeof _0x3a4068[_0x1c72('0x7b')][_0x1c72('0x81')]){return _0x4b708c(new Error(_0x1c72('0x82')));}}else{return _0x4b708c(new Error(_0x1c72('0x83')));}var _0x5d8494=_0x3a4068[_0x1c72('0x2f')];var _0xc2c842=_0x3a4068['description'];var _0x2278c0=_0x3a4068[_0x1c72('0x35')];var _0x4ca690=_0x3a4068[_0x1c72('0x84')]?_0x3a4068['sidebar']:'always';var _0x4356cc=_0x3a4068[_0x1c72('0x85')]?_0x3a4068[_0x1c72('0x85')]:_0x1c72('0x86');var _0xad2add='';var _0x4c29f0='';var _0x2364f1='';var _0x4c0b2f='';var _0x4f9e39=_0x3a4068[_0x1c72('0x77')];if(_0x2278c0===_0x1c72('0x7a')){if(_0x1c72('0x20')!=typeof _0x3a4068[_0x1c72('0x7b')][_0x1c72('0x7c')][_0x1c72('0x7d')]){var _0x470f3c=_0x3a4068['parameters']['views'][_0x1c72('0x7d')];if(!/^(f|ht)tps?:\/\//i[_0x1c72('0x87')](_0x470f3c)){_0xad2add=path[_0x1c72('0x4e')](_0x1c72('0x88'),_0x42ccd4,_0x35aec4[0x0],_0x470f3c);}else{_0xad2add=_0x470f3c;}}else{logger[_0x1c72('0x63')](_0x1c72('0x89'));}if(_0x1c72('0x20')!=typeof _0x3a4068[_0x1c72('0x7b')][_0x1c72('0x7c')][_0x1c72('0x7e')]){var _0x3ceacd=_0x3a4068['parameters']['views'][_0x1c72('0x7e')];if(!/^(f|ht)tps?:\/\//i[_0x1c72('0x87')](_0x3ceacd)){_0x4c29f0=path[_0x1c72('0x4e')](_0x1c72('0x88'),_0x42ccd4,_0x35aec4[0x0],_0x3ceacd);}else{_0x4c29f0=_0x3ceacd;}}else{logger[_0x1c72('0x63')]('Warning:\x20agent\x20view\x20not\x20specified');}}else if(_0x2278c0===_0x1c72('0x80')){_0x2364f1=_0x3a4068['parameters'][_0x1c72('0x8a')];_0x4c0b2f=_0x3a4068[_0x1c72('0x7b')][_0x1c72('0x81')];if(_0x1c72('0x20')!=typeof _0x3a4068['parameters'][_0x1c72('0x7c')]){if('undefined'!=typeof _0x3a4068['parameters'][_0x1c72('0x7c')]['admin']){var _0x470f3c=_0x3a4068[_0x1c72('0x7b')][_0x1c72('0x7c')][_0x1c72('0x7d')];if(!/^(f|ht)tps?:\/\//i[_0x1c72('0x87')](_0x470f3c)){_0xad2add=path[_0x1c72('0x4e')](_0x1c72('0x88'),_0x42ccd4,_0x35aec4[0x0],_0x470f3c);}else{_0xad2add=_0x470f3c;}}if(_0x1c72('0x20')!=typeof _0x3a4068['parameters'][_0x1c72('0x7c')][_0x1c72('0x7e')]){var _0x3ceacd=_0x3a4068[_0x1c72('0x7b')][_0x1c72('0x7c')][_0x1c72('0x7e')];if(!/^(f|ht)tps?:\/\//i[_0x1c72('0x87')](_0x3ceacd)){_0x4c29f0=path[_0x1c72('0x4e')]('plugins',_0x42ccd4,_0x35aec4[0x0],_0x3ceacd);}else{_0x4c29f0=_0x3ceacd;}}}}var _0x484eb0={'name':_0x5d8494,'description':_0xc2c842,'path':path[_0x1c72('0x4e')](_0x42ccd4,_0x35aec4[0x0]),'type':_0x2278c0,'sidebar':_0x4ca690,'icon':_0x4356cc,'adminUrl':_0xad2add,'agentUrl':_0x4c29f0,'scriptName':_0x2364f1,'scriptPath':_0x4c0b2f,'version':_0x4f9e39};removeReferences(_0x5087f2,null);return db[_0x1c72('0x33')][_0x1c72('0x8b')](_0x484eb0)[_0x1c72('0x28')](function(_0x8bc378){var _0x397586={'role':_0x103ecf[_0x1c72('0x8c')][_0x1c72('0x8d')],'userProfileId':_0x103ecf[_0x1c72('0x8c')]['userProfileId']};if(!_0x397586)throw new Error(_0x1c72('0x8e'));if(_0x397586[_0x1c72('0x8d')]===_0x1c72('0x8f')){var _0x36b1db=_0x8bc378[_0x1c72('0x2a')]({'plain':!![]});return db['UserProfileSection'][_0x1c72('0x4b')]({'where':{'name':'Plugins','userProfileId':_0x397586[_0x1c72('0x90')]},'raw':!![]})[_0x1c72('0x28')](function(_0x39c31a){if(_0x39c31a&&_0x39c31a[_0x1c72('0x91')]===0x0){return db[_0x1c72('0x2c')]['create']({'name':_0x36b1db[_0x1c72('0x2f')],'resourceId':_0x36b1db['id'],'type':_0x39c31a['name'],'sectionId':_0x39c31a['id']},{})[_0x1c72('0x28')](function(){return _0x8bc378;});}else{return _0x8bc378;}})[_0x1c72('0x4c')](function(_0x1b319d){logger[_0x1c72('0x57')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1b319d);throw _0x1b319d;});}return _0x8bc378;})[_0x1c72('0x28')](respondWithResult(_0x52e439,null))[_0x1c72('0x4c')](handleError(_0x52e439,null));}});}catch(_0x2e0ed0){_0x52e439[_0x1c72('0x23')](0x1f4)[_0x1c72('0x30')](_0x2e0ed0);}};function removeReferences(_0x4e786a,_0x44e4b6){try{if(_0x4e786a){fs['unlinkSync'](_0x4e786a);logger[_0x1c72('0x63')]('Zip\x20archive\x20removed');}if(_0x44e4b6){rimraf(_0x44e4b6,function(){});logger[_0x1c72('0x63')](_0x1c72('0x92'));}}catch(_0x1c41f3){logger[_0x1c72('0x57')](_0x1c41f3);}}exports[_0x1c72('0x93')]=function(_0x1546bb,_0x34a158,_0x48717c){return db[_0x1c72('0x33')][_0x1c72('0x4b')]({'where':{'id':_0x1546bb[_0x1c72('0x4a')]['id']}})['then'](handleEntityNotFound(_0x34a158,null))[_0x1c72('0x28')](saveUpdates(_0x1546bb['body'],null))[_0x1c72('0x28')](respondWithResult(_0x34a158,null))[_0x1c72('0x4c')](handleError(_0x34a158,null));};exports[_0x1c72('0x94')]=function(_0x2fc317,_0x4770ab,_0x45f5d7){return db[_0x1c72('0x33')][_0x1c72('0x4b')]({'where':{'id':_0x2fc317[_0x1c72('0x4a')]['id']}})[_0x1c72('0x28')](function(_0x2c11ab){if(_0x2c11ab){return _0x2c11ab[_0x1c72('0x29')]();}})[_0x1c72('0x28')](function(_0x1e933c){rimraf(path['join'](config[_0x1c72('0x69')],'server/files/plugins',path[_0x1c72('0x5a')](_0x1e933c[_0x1c72('0x6')])),function(){});return _0x1e933c;})[_0x1c72('0x28')](handleEntityNotFound(_0x4770ab,null))['then'](respondWithStatusCode(_0x4770ab,null))['catch'](handleError(_0x4770ab,null));};exports[_0x1c72('0x95')]=function(_0x2c5cd6,_0x5142b5,_0x54b469){return BPromise['resolve']()[_0x1c72('0x28')](function(){if(!_0x2c5cd6[_0x1c72('0x37')][_0x1c72('0x6')]){throw new Error(_0x1c72('0x96'));}if(!_0x2c5cd6[_0x1c72('0x37')][_0x1c72('0x97')]){throw new Error(_0x1c72('0x98'));}var _0x4311d2=_0x2c5cd6['query'][_0x1c72('0x99')]?_0x2c5cd6[_0x1c72('0x37')][_0x1c72('0x99')]+':'+_0x2c5cd6[_0x1c72('0x37')]['port']:_0x1c72('0x9a')+_0x2c5cd6[_0x1c72('0x37')]['port'];var _0x240cb1=_0x2c5cd6[_0x1c72('0x37')][_0x1c72('0x25')]?_0x2c5cd6[_0x1c72('0x37')][_0x1c72('0x25')]:!![];var _0x52dab4=_0x2c5cd6[_0x1c72('0x37')]['encoding']?_0x2c5cd6[_0x1c72('0x37')][_0x1c72('0x9b')]:null;var _0x297cf1={'method':_0x2c5cd6[_0x1c72('0x9c')],'uri':util[_0x1c72('0x50')](_0x1c72('0x9d'),_0x4311d2,_0x2c5cd6['query'][_0x1c72('0x6')]),'json':_0x240cb1,'resolveWithFullResponse':!![],'encoding':_0x52dab4,'qs':_0x2c5cd6['query']};if(_0x2c5cd6[_0x1c72('0x9e')]){_0x297cf1[_0x1c72('0x9e')]=_0x2c5cd6[_0x1c72('0x9e')];if(_0x297cf1[_0x1c72('0x9e')]['content-length']){delete _0x297cf1['headers']['content-length'];}}if(_0x297cf1['headers'][_0x1c72('0x9f')]){delete _0x297cf1[_0x1c72('0x9e')]['content-type'];}return rp(_0x297cf1);})[_0x1c72('0x28')](function(_0x186737){if(_0x186737){_0x5142b5['set'](_0x186737[_0x1c72('0x9e')]);logger['info'](_0x186737[_0x1c72('0x8c')]);if(_[_0x1c72('0xa0')](_0x2c5cd6['query']['path'],_0x1c72('0x4d'))&&_0x186737[_0x1c72('0xa1')]==0x1f4){return _0x5142b5[_0x1c72('0x1e')](_0x186737['statusCode']);}else{return _0x5142b5[_0x1c72('0x23')](_0x186737['statusCode'])[_0x1c72('0x30')](_0x186737[_0x1c72('0x8c')]);}}else{return _0x5142b5['sendStatus'](0xc8);}})[_0x1c72('0x4c')](handleError(_0x5142b5,null));};exports['webhookPost']=function(_0x578bec,_0x11696f,_0x503176){return BPromise[_0x1c72('0xa2')]()['then'](function(){if(!_0x578bec['query'][_0x1c72('0x6')]){throw new Error(_0x1c72('0x96'));}if(!_0x578bec[_0x1c72('0x37')][_0x1c72('0x97')]){throw new Error(_0x1c72('0x98'));}var _0x505391=_0x578bec[_0x1c72('0x37')][_0x1c72('0x99')]?_0x578bec[_0x1c72('0x37')][_0x1c72('0x99')]+':'+_0x578bec[_0x1c72('0x37')][_0x1c72('0x97')]:_0x1c72('0x9a')+_0x578bec[_0x1c72('0x37')]['port'];var _0x18dccb=_0x578bec['query'][_0x1c72('0x25')]?_0x578bec[_0x1c72('0x37')]['json']:!![];var _0x445e46=_0x578bec[_0x1c72('0x37')][_0x1c72('0x9b')]?_0x578bec[_0x1c72('0x37')][_0x1c72('0x9b')]:null;var _0x19b4e8={'method':_0x578bec[_0x1c72('0x9c')],'uri':util[_0x1c72('0x50')](_0x1c72('0x9d'),_0x505391,_0x578bec[_0x1c72('0x37')][_0x1c72('0x6')]),'json':_0x18dccb,'resolveWithFullResponse':!![],'encoding':_0x445e46,'body':_0x578bec['body']};if(_0x578bec[_0x1c72('0x9e')]){_0x19b4e8['headers']=_0x578bec[_0x1c72('0x9e')];if(_0x19b4e8[_0x1c72('0x9e')]['content-length']){delete _0x19b4e8[_0x1c72('0x9e')][_0x1c72('0xa3')];}}if(_0x19b4e8[_0x1c72('0x9e')][_0x1c72('0x9f')]){delete _0x19b4e8[_0x1c72('0x9e')][_0x1c72('0x9f')];}return rp(_0x19b4e8);})[_0x1c72('0x28')](function(_0x19af8c){if(_0x19af8c){_0x11696f[_0x1c72('0x24')](_0x19af8c[_0x1c72('0x9e')]);logger[_0x1c72('0x63')](_0x19af8c['body']);return _0x11696f[_0x1c72('0x23')](_0x19af8c[_0x1c72('0xa1')])[_0x1c72('0x30')](_0x19af8c[_0x1c72('0x8c')]);}else{return _0x11696f[_0x1c72('0x1e')](0xc8);}})[_0x1c72('0x4c')](handleError(_0x11696f,null));};