905573941d538c7b6b0ee40090871b5b1637441b
[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 _0xf2e5=['Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','always','icon','plugins','agent','test','Warning:\x20agent\x20view\x20not\x20specified','create','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','send','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','encoding','method','format','%s%s','headers','content-length','content-type','endsWith','statusCode','webhookPost','http://localhost:','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','jsforce','desk.js','to-csv','papaparse','archiver','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','status','end','json','offset','count','set','Content-Range','apply','save','update','get','Plugins','destroy','then','error','stack','name','index','map','Plugin','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','download','find','join','server/files/plugins','%s.zip','basename','createWriteStream','zip','warning','code','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','**/*','dirname','node_modules/**/*','finalize','existsSync','Plugin\x20not\x20found','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Temporary\x20file\x20removed','upload','file','filename','extname','root','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','0777','readdirSync','Invalid\x20plugin\x20structure','isFile','length','some','readFileSync','manifest.json','parse','undefined','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','Invalid\x20manifest:\x20parameters\x20missing','html','views','Invalid\x20manifest:\x20views\x20missing','admin','parameters','scriptName'];(function(_0x5ca644,_0x3d2165){var _0x5c87a2=function(_0x3dc7d9){while(--_0x3dc7d9){_0x5ca644['push'](_0x5ca644['shift']());}};_0x5c87a2(++_0x3d2165);}(_0xf2e5,0x18b));var _0x5f2e=function(_0x411631,_0x5cc5c3){_0x411631=_0x411631-0x0;var _0x490190=_0xf2e5[_0x411631];return _0x490190;};'use strict';var emlformat=require(_0x5f2e('0x0'));var rimraf=require(_0x5f2e('0x1'));var zipdir=require(_0x5f2e('0x2'));var jsonpatch=require(_0x5f2e('0x3'));var rp=require('request-promise');var moment=require(_0x5f2e('0x4'));var BPromise=require(_0x5f2e('0x5'));var Mustache=require(_0x5f2e('0x6'));var util=require(_0x5f2e('0x7'));var path=require(_0x5f2e('0x8'));var sox=require(_0x5f2e('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5f2e('0xa'));var _=require(_0x5f2e('0xb'));var squel=require(_0x5f2e('0xc'));var crypto=require('crypto');var jsforce=require(_0x5f2e('0xd'));var deskjs=require(_0x5f2e('0xe'));var toCsv=require(_0x5f2e('0xf'));var querystring=require('querystring');var Papa=require(_0x5f2e('0x10'));var extract=require('extract-zip');var rimraf=require('rimraf');var archiver=require(_0x5f2e('0x11'));var Redis=require(_0x5f2e('0x12'));var authService=require(_0x5f2e('0x13'));var qs=require(_0x5f2e('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5f2e('0x15'));var logger=require(_0x5f2e('0x16'))('api');var utils=require(_0x5f2e('0x17'));var config=require(_0x5f2e('0x18'));var licenseUtil=require(_0x5f2e('0x19'));var db=require(_0x5f2e('0x1a'))['db'];config[_0x5f2e('0x1b')]=_[_0x5f2e('0x1c')](config[_0x5f2e('0x1b')],{'host':_0x5f2e('0x1d'),'port':0x18eb});var socket=require(_0x5f2e('0x1e'))(new Redis(config[_0x5f2e('0x1b')]));require(_0x5f2e('0x1f'))[_0x5f2e('0x20')](socket);function respondWithStatusCode(_0x177ebb,_0x5db886){_0x5db886=_0x5db886||0xcc;return function(_0x51d588){if(_0x51d588){return _0x177ebb[_0x5f2e('0x21')](_0x5db886);}return _0x177ebb[_0x5f2e('0x22')](_0x5db886)[_0x5f2e('0x23')]();};}function respondWithResult(_0x29b6c5,_0x5a4c72){_0x5a4c72=_0x5a4c72||0xc8;return function(_0x58ecfc){if(_0x58ecfc){return _0x29b6c5[_0x5f2e('0x22')](_0x5a4c72)[_0x5f2e('0x24')](_0x58ecfc);}};}function respondWithFilteredResult(_0x56b77b,_0x56b419){return function(_0x419cc9){if(_0x419cc9){var _0x4d5720=typeof _0x56b419[_0x5f2e('0x25')]==='undefined'&&typeof _0x56b419['limit']==='undefined';var _0x54c410=_0x419cc9[_0x5f2e('0x26')];var _0x937b65=_0x4d5720?0x0:_0x56b419[_0x5f2e('0x25')];var _0x442873=_0x4d5720?_0x419cc9[_0x5f2e('0x26')]:_0x56b419[_0x5f2e('0x25')]+_0x56b419['limit'];var _0x1e86ce;if(_0x442873>=_0x54c410){_0x442873=_0x54c410;_0x1e86ce=0xc8;}else{_0x1e86ce=0xce;}_0x56b77b[_0x5f2e('0x22')](_0x1e86ce);return _0x56b77b[_0x5f2e('0x27')](_0x5f2e('0x28'),_0x937b65+'-'+_0x442873+'/'+_0x54c410)[_0x5f2e('0x24')](_0x419cc9);}return null;};}function patchUpdates(_0x16e1ba){return function(_0x24522c){try{jsonpatch[_0x5f2e('0x29')](_0x24522c,_0x16e1ba,!![]);}catch(_0x36c8a1){return BPromise['reject'](_0x36c8a1);}return _0x24522c[_0x5f2e('0x2a')]();};}function saveUpdates(_0x545af8,_0x4a2f07){return function(_0x4bded0){if(_0x4bded0){return _0x4bded0[_0x5f2e('0x2b')](_0x545af8)['then'](function(_0x17d6b0){return _0x17d6b0;});}return null;};}function removeEntity(_0x5ae8df,_0x1f8a2c){return function(_0x45cb92){if(_0x45cb92){return _0x45cb92['destroy']()['then'](function(){var _0x1a3ba1=_0x45cb92[_0x5f2e('0x2c')]({'plain':!![]});var _0x22ae3e=_0x5f2e('0x2d');return db['UserProfileResource'][_0x5f2e('0x2e')]({'where':{'type':_0x22ae3e,'resourceId':_0x1a3ba1['id']}})['then'](function(){return _0x45cb92;});})[_0x5f2e('0x2f')](function(){_0x5ae8df['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2ae2fc,_0xd01fb5){return function(_0x18ad7a){if(!_0x18ad7a){_0x2ae2fc[_0x5f2e('0x21')](0x194);}return _0x18ad7a;};}function handleError(_0x50c4c2,_0x3aa192){_0x3aa192=_0x3aa192||0x1f4;return function(_0x54033d){logger[_0x5f2e('0x30')](_0x54033d[_0x5f2e('0x31')]);if(_0x54033d[_0x5f2e('0x32')]){delete _0x54033d['name'];}_0x50c4c2[_0x5f2e('0x22')](_0x3aa192)['send'](_0x54033d);};}exports[_0x5f2e('0x33')]=function(_0x3a16a4,_0x23a9ce){var _0x22e6e1={},_0x5179c9={},_0x3b7595={'count':0x0,'rows':[]};var _0x130eeb=_[_0x5f2e('0x34')](db[_0x5f2e('0x35')][_0x5f2e('0x36')],function(_0x14c2a2){return{'name':_0x14c2a2[_0x5f2e('0x37')],'type':_0x14c2a2[_0x5f2e('0x38')][_0x5f2e('0x39')]};});_0x5179c9[_0x5f2e('0x3a')]=_[_0x5f2e('0x34')](_0x130eeb,_0x5f2e('0x32'));_0x5179c9[_0x5f2e('0x3b')]=_[_0x5f2e('0x3c')](_0x3a16a4[_0x5f2e('0x3b')]);_0x5179c9[_0x5f2e('0x3d')]=_[_0x5f2e('0x3e')](_0x5179c9[_0x5f2e('0x3a')],_0x5179c9[_0x5f2e('0x3b')]);_0x22e6e1[_0x5f2e('0x3f')]=_[_0x5f2e('0x3e')](_0x5179c9[_0x5f2e('0x3a')],qs[_0x5f2e('0x40')](_0x3a16a4[_0x5f2e('0x3b')][_0x5f2e('0x40')]));_0x22e6e1['attributes']=_0x22e6e1[_0x5f2e('0x3f')]['length']?_0x22e6e1[_0x5f2e('0x3f')]:_0x5179c9[_0x5f2e('0x3a')];if(!_0x3a16a4['query'][_0x5f2e('0x41')](_0x5f2e('0x42'))){_0x22e6e1[_0x5f2e('0x43')]=qs[_0x5f2e('0x43')](_0x3a16a4[_0x5f2e('0x3b')]['limit']);_0x22e6e1[_0x5f2e('0x25')]=qs['offset'](_0x3a16a4[_0x5f2e('0x3b')][_0x5f2e('0x25')]);}_0x22e6e1[_0x5f2e('0x44')]=qs[_0x5f2e('0x45')](_0x3a16a4['query'][_0x5f2e('0x45')]);_0x22e6e1[_0x5f2e('0x46')]=qs[_0x5f2e('0x3d')](_[_0x5f2e('0x47')](_0x3a16a4[_0x5f2e('0x3b')],_0x5179c9[_0x5f2e('0x3d')]),_0x130eeb);if(_0x3a16a4['query'][_0x5f2e('0x48')]){_0x22e6e1[_0x5f2e('0x46')]=_[_0x5f2e('0x49')](_0x22e6e1['where'],{'$or':_[_0x5f2e('0x34')](_0x130eeb,function(_0x211d3c){if(_0x211d3c[_0x5f2e('0x38')]!==_0x5f2e('0x4a')){var _0x50d7b3={};_0x50d7b3[_0x211d3c[_0x5f2e('0x32')]]={'$like':'%'+_0x3a16a4[_0x5f2e('0x3b')][_0x5f2e('0x48')]+'%'};return _0x50d7b3;}})});}_0x22e6e1=_[_0x5f2e('0x49')]({},_0x22e6e1,_0x3a16a4[_0x5f2e('0x4b')]);var _0x9d482e={'where':_0x22e6e1[_0x5f2e('0x46')]};return db[_0x5f2e('0x35')][_0x5f2e('0x26')](_0x9d482e)['then'](function(_0x41c2b3){_0x3b7595[_0x5f2e('0x26')]=_0x41c2b3;if(_0x3a16a4[_0x5f2e('0x3b')][_0x5f2e('0x4c')]){_0x22e6e1[_0x5f2e('0x4d')]=[{'all':!![]}];}return db[_0x5f2e('0x35')][_0x5f2e('0x4e')](_0x22e6e1);})[_0x5f2e('0x2f')](function(_0x240298){_0x3b7595[_0x5f2e('0x4f')]=_0x240298;return _0x3b7595;})[_0x5f2e('0x2f')](respondWithFilteredResult(_0x23a9ce,_0x22e6e1))[_0x5f2e('0x50')](handleError(_0x23a9ce,null));};exports[_0x5f2e('0x51')]=function(_0x142b20,_0x3c1c5f){var _0x5f141d={'raw':!![],'where':{'id':_0x142b20[_0x5f2e('0x52')]['id']}},_0x292087={};_0x292087['model']=_[_0x5f2e('0x3c')](db[_0x5f2e('0x35')]['rawAttributes']);_0x292087[_0x5f2e('0x3b')]=_[_0x5f2e('0x3c')](_0x142b20[_0x5f2e('0x3b')]);_0x292087['filters']=_['intersection'](_0x292087[_0x5f2e('0x3a')],_0x292087['query']);_0x5f141d[_0x5f2e('0x3f')]=_[_0x5f2e('0x3e')](_0x292087[_0x5f2e('0x3a')],qs[_0x5f2e('0x40')](_0x142b20[_0x5f2e('0x3b')][_0x5f2e('0x40')]));_0x5f141d[_0x5f2e('0x3f')]=_0x5f141d[_0x5f2e('0x3f')]['length']?_0x5f141d['attributes']:_0x292087[_0x5f2e('0x3a')];if(_0x142b20[_0x5f2e('0x3b')][_0x5f2e('0x4c')]){_0x5f141d['include']=[{'all':!![]}];}_0x5f141d=_[_0x5f2e('0x49')]({},_0x5f141d,_0x142b20[_0x5f2e('0x4b')]);return db['Plugin']['find'](_0x5f141d)[_0x5f2e('0x2f')](handleEntityNotFound(_0x3c1c5f,null))[_0x5f2e('0x2f')](respondWithResult(_0x3c1c5f,null))[_0x5f2e('0x50')](handleError(_0x3c1c5f,null));};exports[_0x5f2e('0x53')]=function(_0x1fa74a,_0x4bac43,_0x2ad7d0){return db[_0x5f2e('0x35')][_0x5f2e('0x54')]({'where':{'id':_0x1fa74a[_0x5f2e('0x52')]['id']},'attributes':[_0x5f2e('0x32'),_0x5f2e('0x8')],'raw':!![]})[_0x5f2e('0x2f')](handleEntityNotFound(_0x4bac43,null))[_0x5f2e('0x2f')](function(_0x47c42b){if(_0x47c42b){var _0x317226=path[_0x5f2e('0x55')](config['root'],_0x5f2e('0x56'),util['format'](_0x5f2e('0x57'),path[_0x5f2e('0x58')](_0x47c42b[_0x5f2e('0x8')])));var _0x493226=fs[_0x5f2e('0x59')](_0x317226);var _0x376573=archiver(_0x5f2e('0x5a'),{'zlib':{'level':0x9}});_0x376573['on'](_0x5f2e('0x5b'),function(_0x503e73){if(_0x503e73[_0x5f2e('0x5c')]==='ENOENT'){logger[_0x5f2e('0x30')](_0x503e73);}else{throw new db[(_0x5f2e('0x5d'))][(_0x5f2e('0x5e'))](_0x5f2e('0x5f'));}});_0x376573['on'](_0x5f2e('0x30'),function(_0xac66b3){throw new db[(_0x5f2e('0x5d'))]['Error'](_0x5f2e('0x5f'));});_0x376573[_0x5f2e('0x60')](_0x493226);_0x376573[_0x5f2e('0x61')](_0x5f2e('0x62'),{'cwd':path[_0x5f2e('0x55')](config['root'],_0x5f2e('0x56'),path[_0x5f2e('0x63')](_0x47c42b[_0x5f2e('0x8')])),'ignore':[path[_0x5f2e('0x55')](path[_0x5f2e('0x58')](_0x47c42b[_0x5f2e('0x8')]),_0x5f2e('0x64')),path[_0x5f2e('0x55')](path[_0x5f2e('0x58')](_0x47c42b['path']),'attachments/**/*')],'nodir':!![]})[_0x5f2e('0x65')]();_0x493226['on']('close',function(){if(!fs[_0x5f2e('0x66')](_0x317226)){throw new db[(_0x5f2e('0x5d'))][(_0x5f2e('0x5e'))](_0x5f2e('0x67'));}return _0x4bac43[_0x5f2e('0x53')](_0x317226,util['format'](_0x5f2e('0x57'),path[_0x5f2e('0x58')](_0x47c42b[_0x5f2e('0x8')])),function(_0xe1214b){if(_0xe1214b){throw new db[(_0x5f2e('0x5d'))]['Error'](_0x5f2e('0x68'));}fs[_0x5f2e('0x69')](_0x317226);logger[_0x5f2e('0x6a')]('Download\x20completed');logger[_0x5f2e('0x6a')](_0x5f2e('0x6b'));});});}return null;})[_0x5f2e('0x50')](handleError(_0x4bac43,null));};exports[_0x5f2e('0x6c')]=function(_0x3be0f6,_0x5252b3,_0x3fa7c2){var _0xfecd90=path[_0x5f2e('0x58')](_0x3be0f6[_0x5f2e('0x6d')][_0x5f2e('0x6e')],path[_0x5f2e('0x6f')](_0x3be0f6[_0x5f2e('0x6d')][_0x5f2e('0x6e')]));var _0xb0ce53=path[_0x5f2e('0x55')](config['root'],_0x5f2e('0x56'),_0x3be0f6[_0x5f2e('0x6d')][_0x5f2e('0x6e')]);var _0x291f27=path[_0x5f2e('0x55')](config[_0x5f2e('0x70')],'server/files/plugins',_0xfecd90);logger[_0x5f2e('0x6a')](_0x5f2e('0x71'),_0xb0ce53);logger['info'](_0x5f2e('0x72'),_0x291f27);try{fs[_0x5f2e('0x73')](_0xb0ce53,parseInt(_0x5f2e('0x74'),0x8));extract(_0xb0ce53,{'dir':_0x291f27},function(_0x167430){if(_0x167430){logger[_0x5f2e('0x30')](_0x167430);handleError(_0x167430,!![]);};var _0x3527c3=fs[_0x5f2e('0x75')](_0x291f27);if(_0x3527c3['length']>0x1){removeReferences(_0xb0ce53,_0x291f27);logger[_0x5f2e('0x30')](_0x5f2e('0x76'));return _0x3fa7c2(new Error('Invalid\x20plugin\x20structure'));}var _0x6997ff=fs['lstatSync'](path[_0x5f2e('0x55')](_0x291f27,_0x3527c3[0x0]));if(_0x6997ff[_0x5f2e('0x77')]()){removeReferences(_0xb0ce53,_0x291f27);logger[_0x5f2e('0x30')](_0x5f2e('0x76'));return _0x3fa7c2(new Error(_0x5f2e('0x76')));}if(_0x6997ff['isDirectory']()){var _0x345595=fs['readdirSync'](path[_0x5f2e('0x55')](_0x291f27,_0x3527c3[0x0]));if(_0x345595[_0x5f2e('0x78')]===0x0){removeReferences(_0xb0ce53,_0x291f27);logger[_0x5f2e('0x30')](_0x5f2e('0x76'));return _0x3fa7c2(new Error(_0x5f2e('0x76')));}var _0x3670cf=_0x345595[_0x5f2e('0x79')](function(_0x26ed59){return _0x26ed59==='manifest.json';});if(!_0x3670cf){return _0x3fa7c2(new Error('Plugin\x20manifest\x20missing'));}var _0x540584=fs[_0x5f2e('0x7a')](path[_0x5f2e('0x55')](_0x291f27,_0x3527c3[0x0],_0x5f2e('0x7b')));var _0x2657de=JSON[_0x5f2e('0x7c')](_0x540584);if(_0x5f2e('0x7d')==typeof _0x2657de[_0x5f2e('0x32')]){return _0x3fa7c2(new Error('Invalid\x20manifest:\x20name\x20missing'));}if(_0x5f2e('0x7d')==typeof _0x2657de[_0x5f2e('0x38')]){return _0x3fa7c2(new Error(_0x5f2e('0x7e')));}if(_0x5f2e('0x7d')==typeof _0x2657de[_0x5f2e('0x7f')]){return _0x3fa7c2(new Error(_0x5f2e('0x80')));}if(_0x5f2e('0x7d')==typeof _0x2657de['parameters']){return _0x3fa7c2(new Error(_0x5f2e('0x81')));}if(_0x2657de[_0x5f2e('0x38')]===_0x5f2e('0x82')){if('undefined'==typeof _0x2657de['parameters'][_0x5f2e('0x83')]){return _0x3fa7c2(new Error(_0x5f2e('0x84')));}if(_0x5f2e('0x7d')==typeof _0x2657de['parameters']['views'][_0x5f2e('0x85')]&&'undefined'==typeof _0x2657de['parameters'][_0x5f2e('0x83')]['agent']){return _0x3fa7c2(new Error('Invalid\x20manifest:\x20no\x20view\x20specified'));}}else if(_0x2657de[_0x5f2e('0x38')]==='script'){if(_0x5f2e('0x7d')==typeof _0x2657de[_0x5f2e('0x86')][_0x5f2e('0x87')]){return _0x3fa7c2(new Error(_0x5f2e('0x88')));}if(_0x5f2e('0x7d')==typeof _0x2657de[_0x5f2e('0x86')][_0x5f2e('0x89')]){return _0x3fa7c2(new Error(_0x5f2e('0x8a')));}}else{return _0x3fa7c2(new Error(_0x5f2e('0x8b')));}var _0x2dcfdf=_0x2657de[_0x5f2e('0x32')];var _0x1dbf72=_0x2657de[_0x5f2e('0x8c')];var _0xd65527=_0x2657de[_0x5f2e('0x38')];var _0x4eb083=_0x2657de[_0x5f2e('0x8d')]?_0x2657de['sidebar']:_0x5f2e('0x8e');var _0x392686=_0x2657de[_0x5f2e('0x8f')]?_0x2657de[_0x5f2e('0x8f')]:'icon-apps';var _0x1833f2='';var _0x56d4eb='';var _0x5e9ef3='';var _0xc1ebd9='';var _0x7746fe=_0x2657de['version'];if(_0xd65527==='html'){if('undefined'!=typeof _0x2657de[_0x5f2e('0x86')][_0x5f2e('0x83')][_0x5f2e('0x85')]){var _0x35ea75=_0x2657de[_0x5f2e('0x86')]['views'][_0x5f2e('0x85')];if(!/^(f|ht)tps?:\/\//i['test'](_0x35ea75)){_0x1833f2=path[_0x5f2e('0x55')](_0x5f2e('0x90'),_0xfecd90,_0x3527c3[0x0],_0x35ea75);}else{_0x1833f2=_0x35ea75;}}else{logger[_0x5f2e('0x6a')]('Warning:\x20admin\x20view\x20not\x20specified');}if(_0x5f2e('0x7d')!=typeof _0x2657de[_0x5f2e('0x86')][_0x5f2e('0x83')][_0x5f2e('0x91')]){var _0x13aa24=_0x2657de[_0x5f2e('0x86')][_0x5f2e('0x83')]['agent'];if(!/^(f|ht)tps?:\/\//i[_0x5f2e('0x92')](_0x13aa24)){_0x56d4eb=path[_0x5f2e('0x55')](_0x5f2e('0x90'),_0xfecd90,_0x3527c3[0x0],_0x13aa24);}else{_0x56d4eb=_0x13aa24;}}else{logger['info'](_0x5f2e('0x93'));}}else if(_0xd65527==='script'){_0x5e9ef3=_0x2657de[_0x5f2e('0x86')][_0x5f2e('0x87')];_0xc1ebd9=_0x2657de[_0x5f2e('0x86')][_0x5f2e('0x89')];if(_0x5f2e('0x7d')!=typeof _0x2657de['parameters'][_0x5f2e('0x83')]){if(_0x5f2e('0x7d')!=typeof _0x2657de[_0x5f2e('0x86')][_0x5f2e('0x83')][_0x5f2e('0x85')]){var _0x35ea75=_0x2657de[_0x5f2e('0x86')][_0x5f2e('0x83')][_0x5f2e('0x85')];if(!/^(f|ht)tps?:\/\//i[_0x5f2e('0x92')](_0x35ea75)){_0x1833f2=path['join'](_0x5f2e('0x90'),_0xfecd90,_0x3527c3[0x0],_0x35ea75);}else{_0x1833f2=_0x35ea75;}}if('undefined'!=typeof _0x2657de[_0x5f2e('0x86')]['views'][_0x5f2e('0x91')]){var _0x13aa24=_0x2657de['parameters'][_0x5f2e('0x83')][_0x5f2e('0x91')];if(!/^(f|ht)tps?:\/\//i[_0x5f2e('0x92')](_0x13aa24)){_0x56d4eb=path[_0x5f2e('0x55')](_0x5f2e('0x90'),_0xfecd90,_0x3527c3[0x0],_0x13aa24);}else{_0x56d4eb=_0x13aa24;}}}}var _0x61d60c={'name':_0x2dcfdf,'description':_0x1dbf72,'path':path[_0x5f2e('0x55')](_0xfecd90,_0x3527c3[0x0]),'type':_0xd65527,'sidebar':_0x4eb083,'icon':_0x392686,'adminUrl':_0x1833f2,'agentUrl':_0x56d4eb,'scriptName':_0x5e9ef3,'scriptPath':_0xc1ebd9,'version':_0x7746fe};removeReferences(_0xb0ce53,null);return db[_0x5f2e('0x35')][_0x5f2e('0x94')](_0x61d60c)[_0x5f2e('0x2f')](function(_0x23794b){var _0x529b01={'role':_0x3be0f6[_0x5f2e('0x95')][_0x5f2e('0x96')],'userProfileId':_0x3be0f6[_0x5f2e('0x95')][_0x5f2e('0x97')]};if(!_0x529b01)throw new Error(_0x5f2e('0x98'));if(_0x529b01[_0x5f2e('0x96')]===_0x5f2e('0x99')){var _0x1e6bd4=_0x23794b[_0x5f2e('0x2c')]({'plain':!![]});return db[_0x5f2e('0x9a')][_0x5f2e('0x54')]({'where':{'name':_0x5f2e('0x2d'),'userProfileId':_0x529b01[_0x5f2e('0x97')]},'raw':!![]})[_0x5f2e('0x2f')](function(_0xd1973c){if(_0xd1973c&&_0xd1973c[_0x5f2e('0x9b')]===0x0){return db[_0x5f2e('0x9c')][_0x5f2e('0x94')]({'name':_0x1e6bd4['name'],'resourceId':_0x1e6bd4['id'],'type':_0xd1973c['name'],'sectionId':_0xd1973c['id']},{})[_0x5f2e('0x2f')](function(){return _0x23794b;});}else{return _0x23794b;}})[_0x5f2e('0x50')](function(_0x1f8e5b){logger['error'](_0x5f2e('0x9d'),_0x1f8e5b);throw _0x1f8e5b;});}return _0x23794b;})['then'](respondWithResult(_0x5252b3,null))[_0x5f2e('0x50')](handleError(_0x5252b3,null));}});}catch(_0xb22b63){_0x5252b3[_0x5f2e('0x22')](0x1f4)[_0x5f2e('0x9e')](_0xb22b63);}};function removeReferences(_0x6ea3e3,_0x21ef87){try{if(_0x6ea3e3){fs[_0x5f2e('0x69')](_0x6ea3e3);logger[_0x5f2e('0x6a')](_0x5f2e('0x9f'));}if(_0x21ef87){rimraf(_0x21ef87,function(){});logger['info'](_0x5f2e('0xa0'));}}catch(_0xbb6804){logger[_0x5f2e('0x30')](_0xbb6804);}}exports['update']=function(_0x32909c,_0x285fa1,_0x3280a9){return db[_0x5f2e('0x35')][_0x5f2e('0x54')]({'where':{'id':_0x32909c['params']['id']}})[_0x5f2e('0x2f')](handleEntityNotFound(_0x285fa1,null))[_0x5f2e('0x2f')](saveUpdates(_0x32909c[_0x5f2e('0x95')],null))[_0x5f2e('0x2f')](respondWithResult(_0x285fa1,null))[_0x5f2e('0x50')](handleError(_0x285fa1,null));};exports['delete']=function(_0x58e6c7,_0x241d11,_0x44107f){return db['Plugin'][_0x5f2e('0x54')]({'where':{'id':_0x58e6c7[_0x5f2e('0x52')]['id']}})[_0x5f2e('0x2f')](function(_0x70c499){if(_0x70c499){return _0x70c499['destroy']();}})['then'](function(_0x45c679){rimraf(path[_0x5f2e('0x55')](config[_0x5f2e('0x70')],_0x5f2e('0x56'),path['dirname'](_0x45c679[_0x5f2e('0x8')])),function(){});return _0x45c679;})['then'](handleEntityNotFound(_0x241d11,null))[_0x5f2e('0x2f')](respondWithStatusCode(_0x241d11,null))['catch'](handleError(_0x241d11,null));};exports['webhookGet']=function(_0x45fb55,_0x2a3559,_0x2e0355){return BPromise[_0x5f2e('0xa1')]()[_0x5f2e('0x2f')](function(){if(!_0x45fb55['query'][_0x5f2e('0x8')]){throw new Error(_0x5f2e('0xa2'));}if(!_0x45fb55[_0x5f2e('0x3b')][_0x5f2e('0xa3')]){throw new Error(_0x5f2e('0xa4'));}var _0x2c852b=_0x45fb55[_0x5f2e('0x3b')][_0x5f2e('0xa5')]?_0x45fb55['query'][_0x5f2e('0xa5')]+':'+_0x45fb55[_0x5f2e('0x3b')][_0x5f2e('0xa3')]:'http://localhost:'+_0x45fb55['query'][_0x5f2e('0xa3')];var _0x200a41=_0x45fb55['query']['json']?_0x45fb55[_0x5f2e('0x3b')][_0x5f2e('0x24')]:!![];var _0x14abb2=_0x45fb55['query'][_0x5f2e('0xa6')]?_0x45fb55['query'][_0x5f2e('0xa6')]:null;var _0x4ddc18={'method':_0x45fb55[_0x5f2e('0xa7')],'uri':util[_0x5f2e('0xa8')](_0x5f2e('0xa9'),_0x2c852b,_0x45fb55[_0x5f2e('0x3b')][_0x5f2e('0x8')]),'json':_0x200a41,'resolveWithFullResponse':!![],'encoding':_0x14abb2,'qs':_0x45fb55['query']};if(_0x45fb55[_0x5f2e('0xaa')]){_0x4ddc18[_0x5f2e('0xaa')]=_0x45fb55[_0x5f2e('0xaa')];if(_0x4ddc18[_0x5f2e('0xaa')]['content-length']){delete _0x4ddc18[_0x5f2e('0xaa')][_0x5f2e('0xab')];}}if(_0x4ddc18[_0x5f2e('0xaa')][_0x5f2e('0xac')]){delete _0x4ddc18['headers'][_0x5f2e('0xac')];}return rp(_0x4ddc18);})[_0x5f2e('0x2f')](function(_0x5d2e07){if(_0x5d2e07){_0x2a3559['set'](_0x5d2e07[_0x5f2e('0xaa')]);logger[_0x5f2e('0x6a')](_0x5d2e07[_0x5f2e('0x95')]);if(_[_0x5f2e('0xad')](_0x45fb55['query'][_0x5f2e('0x8')],'download')&&_0x5d2e07[_0x5f2e('0xae')]==0x1f4){return _0x2a3559[_0x5f2e('0x21')](_0x5d2e07[_0x5f2e('0xae')]);}else{return _0x2a3559[_0x5f2e('0x22')](_0x5d2e07[_0x5f2e('0xae')])['send'](_0x5d2e07[_0x5f2e('0x95')]);}}else{return _0x2a3559['sendStatus'](0xc8);}})[_0x5f2e('0x50')](handleError(_0x2a3559,null));};exports[_0x5f2e('0xaf')]=function(_0x18b1a6,_0x1d9446,_0x2b1773){return BPromise[_0x5f2e('0xa1')]()['then'](function(){if(!_0x18b1a6[_0x5f2e('0x3b')][_0x5f2e('0x8')]){throw new Error(_0x5f2e('0xa2'));}if(!_0x18b1a6[_0x5f2e('0x3b')][_0x5f2e('0xa3')]){throw new Error(_0x5f2e('0xa4'));}var _0x293166=_0x18b1a6[_0x5f2e('0x3b')][_0x5f2e('0xa5')]?_0x18b1a6[_0x5f2e('0x3b')][_0x5f2e('0xa5')]+':'+_0x18b1a6['query']['port']:_0x5f2e('0xb0')+_0x18b1a6['query'][_0x5f2e('0xa3')];var _0x1eb23a=_0x18b1a6[_0x5f2e('0x3b')][_0x5f2e('0x24')]?_0x18b1a6[_0x5f2e('0x3b')]['json']:!![];var _0x1960ae=_0x18b1a6['query'][_0x5f2e('0xa6')]?_0x18b1a6['query']['encoding']:null;var _0x3d8ce2={'method':_0x18b1a6[_0x5f2e('0xa7')],'uri':util[_0x5f2e('0xa8')](_0x5f2e('0xa9'),_0x293166,_0x18b1a6[_0x5f2e('0x3b')][_0x5f2e('0x8')]),'json':_0x1eb23a,'resolveWithFullResponse':!![],'encoding':_0x1960ae,'body':_0x18b1a6[_0x5f2e('0x95')]};if(_0x18b1a6['headers']){_0x3d8ce2[_0x5f2e('0xaa')]=_0x18b1a6['headers'];if(_0x3d8ce2['headers'][_0x5f2e('0xab')]){delete _0x3d8ce2['headers'][_0x5f2e('0xab')];}}if(_0x3d8ce2['headers']['content-type']){delete _0x3d8ce2[_0x5f2e('0xaa')]['content-type'];}return rp(_0x3d8ce2);})[_0x5f2e('0x2f')](function(_0x2e08be){if(_0x2e08be){_0x1d9446[_0x5f2e('0x27')](_0x2e08be['headers']);logger[_0x5f2e('0x6a')](_0x2e08be[_0x5f2e('0x95')]);return _0x1d9446[_0x5f2e('0x22')](_0x2e08be[_0x5f2e('0xae')])[_0x5f2e('0x9e')](_0x2e08be[_0x5f2e('0x95')]);}else{return _0x1d9446[_0x5f2e('0x21')](0xc8);}})[_0x5f2e('0x50')](handleError(_0x1d9446,null));};