Built motion from commit 1fa89557.|2.6.10
[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 _0xc5c3=['name','keys','query','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','findAll','catch','show','fields','includeAll','include','find','download','params','%s.zip','basename','zip','warning','code','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','error','glob','**/*','join','root','server/files/plugins','dirname','node_modules/**/*','attachments/**/*','finalize','existsSync','Plugin\x20not\x20found','format','info','Download\x20completed','Temporary\x20file\x20removed','file','filename','extname','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','0777','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','manifest.json','Plugin\x20manifest\x20missing','readFileSync','parse','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','Invalid\x20manifest:\x20parameters\x20missing','html','parameters','views','Invalid\x20manifest:\x20views\x20missing','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','always','icon','icon-apps','admin','test','plugins','Warning:\x20agent\x20view\x20not\x20specified','scriptName','create','role','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','get','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','unlinkSync','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','webhookGet','\x27PATH\x27\x20parameter\x20not\x20specified','port','hostname','http://localhost:','encoding','%s%s','headers','content-length','content-type','statusCode','send','resolve','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','extract-zip','archiver','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register','status','end','offset','undefined','limit','count','set','json','apply','reject','save','update','destroy','then','Plugins','sendStatus','stack','map','Plugin','rawAttributes','fieldName','type','key'];(function(_0x383156,_0x5438d4){var _0x2d178f=function(_0x29d133){while(--_0x29d133){_0x383156['push'](_0x383156['shift']());}};_0x2d178f(++_0x5438d4);}(_0xc5c3,0x126));var _0x3c5c=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc5c3[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x3c5c('0x0'));var rimraf=require(_0x3c5c('0x1'));var zipdir=require(_0x3c5c('0x2'));var jsonpatch=require(_0x3c5c('0x3'));var rp=require('request-promise');var moment=require(_0x3c5c('0x4'));var BPromise=require(_0x3c5c('0x5'));var Mustache=require(_0x3c5c('0x6'));var util=require(_0x3c5c('0x7'));var path=require(_0x3c5c('0x8'));var sox=require(_0x3c5c('0x9'));var csv=require(_0x3c5c('0xa'));var ejs=require(_0x3c5c('0xb'));var fs=require('fs');var fs_extra=require(_0x3c5c('0xc'));var _=require(_0x3c5c('0xd'));var squel=require('squel');var crypto=require(_0x3c5c('0xe'));var jsforce=require(_0x3c5c('0xf'));var deskjs=require(_0x3c5c('0x10'));var toCsv=require(_0x3c5c('0xa'));var querystring=require(_0x3c5c('0x11'));var Papa=require(_0x3c5c('0x12'));var extract=require(_0x3c5c('0x13'));var rimraf=require(_0x3c5c('0x1'));var archiver=require(_0x3c5c('0x14'));var Redis=require('ioredis');var authService=require(_0x3c5c('0x15'));var qs=require(_0x3c5c('0x16'));var as=require(_0x3c5c('0x17'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3c5c('0x18'))(_0x3c5c('0x19'));var utils=require(_0x3c5c('0x1a'));var config=require(_0x3c5c('0x1b'));var licenseUtil=require(_0x3c5c('0x1c'));var db=require('../../mysqldb')['db'];config[_0x3c5c('0x1d')]=_[_0x3c5c('0x1e')](config[_0x3c5c('0x1d')],{'host':_0x3c5c('0x1f'),'port':0x18eb});var socket=require(_0x3c5c('0x20'))(new Redis(config['redis']));require(_0x3c5c('0x21'))[_0x3c5c('0x22')](socket);function respondWithStatusCode(_0x4f39a0,_0x447b92){_0x447b92=_0x447b92||0xcc;return function(_0x4ee120){if(_0x4ee120){return _0x4f39a0['sendStatus'](_0x447b92);}return _0x4f39a0[_0x3c5c('0x23')](_0x447b92)[_0x3c5c('0x24')]();};}function respondWithResult(_0x4ff1fe,_0x52a5a8){_0x52a5a8=_0x52a5a8||0xc8;return function(_0x4a6c69){if(_0x4a6c69){return _0x4ff1fe[_0x3c5c('0x23')](_0x52a5a8)['json'](_0x4a6c69);}};}function respondWithFilteredResult(_0x589607,_0x1d094d){return function(_0x45bac9){if(_0x45bac9){var _0xb5033f=typeof _0x1d094d[_0x3c5c('0x25')]===_0x3c5c('0x26')&&typeof _0x1d094d[_0x3c5c('0x27')]===_0x3c5c('0x26');var _0x52362a=_0x45bac9[_0x3c5c('0x28')];var _0x16aa37=_0xb5033f?0x0:_0x1d094d[_0x3c5c('0x25')];var _0x6e6fb1=_0xb5033f?_0x45bac9[_0x3c5c('0x28')]:_0x1d094d[_0x3c5c('0x25')]+_0x1d094d[_0x3c5c('0x27')];var _0x4cb35f;if(_0x6e6fb1>=_0x52362a){_0x6e6fb1=_0x52362a;_0x4cb35f=0xc8;}else{_0x4cb35f=0xce;}_0x589607[_0x3c5c('0x23')](_0x4cb35f);return _0x589607[_0x3c5c('0x29')]('Content-Range',_0x16aa37+'-'+_0x6e6fb1+'/'+_0x52362a)[_0x3c5c('0x2a')](_0x45bac9);}return null;};}function patchUpdates(_0x5a8719){return function(_0x437682){try{jsonpatch[_0x3c5c('0x2b')](_0x437682,_0x5a8719,!![]);}catch(_0x3ed0b4){return BPromise[_0x3c5c('0x2c')](_0x3ed0b4);}return _0x437682[_0x3c5c('0x2d')]();};}function saveUpdates(_0xe3078,_0x4eef5d){return function(_0x28c8f1){if(_0x28c8f1){return _0x28c8f1[_0x3c5c('0x2e')](_0xe3078)['then'](function(_0x832304){return _0x832304;});}return null;};}function removeEntity(_0xc15b02,_0x132c19){return function(_0x7d9c0){if(_0x7d9c0){return _0x7d9c0[_0x3c5c('0x2f')]()[_0x3c5c('0x30')](function(){var _0x12c0e5=_0x7d9c0['get']({'plain':!![]});var _0x1cee9c=_0x3c5c('0x31');return db['UserProfileResource'][_0x3c5c('0x2f')]({'where':{'type':_0x1cee9c,'resourceId':_0x12c0e5['id']}})[_0x3c5c('0x30')](function(){return _0x7d9c0;});})['then'](function(){_0xc15b02[_0x3c5c('0x23')](0xcc)[_0x3c5c('0x24')]();});}};}function handleEntityNotFound(_0x37cb81,_0x38e6cf){return function(_0x52a344){if(!_0x52a344){_0x37cb81[_0x3c5c('0x32')](0x194);}return _0x52a344;};}function handleError(_0x5d8334,_0x15880e){_0x15880e=_0x15880e||0x1f4;return function(_0xe751c7){logger['error'](_0xe751c7[_0x3c5c('0x33')]);if(_0xe751c7['name']){delete _0xe751c7['name'];}_0x5d8334[_0x3c5c('0x23')](_0x15880e)['send'](_0xe751c7);};}exports['index']=function(_0x107e10,_0x473b86){var _0x3ea89c={},_0x2ad075={},_0x7ea9cb={'count':0x0,'rows':[]};var _0x5ad50=_[_0x3c5c('0x34')](db[_0x3c5c('0x35')][_0x3c5c('0x36')],function(_0xd90912){return{'name':_0xd90912[_0x3c5c('0x37')],'type':_0xd90912[_0x3c5c('0x38')][_0x3c5c('0x39')]};});_0x2ad075['model']=_[_0x3c5c('0x34')](_0x5ad50,_0x3c5c('0x3a'));_0x2ad075['query']=_[_0x3c5c('0x3b')](_0x107e10[_0x3c5c('0x3c')]);_0x2ad075[_0x3c5c('0x3d')]=_[_0x3c5c('0x3e')](_0x2ad075[_0x3c5c('0x3f')],_0x2ad075['query']);_0x3ea89c[_0x3c5c('0x40')]=_[_0x3c5c('0x3e')](_0x2ad075[_0x3c5c('0x3f')],qs['fields'](_0x107e10[_0x3c5c('0x3c')]['fields']));_0x3ea89c[_0x3c5c('0x40')]=_0x3ea89c[_0x3c5c('0x40')][_0x3c5c('0x41')]?_0x3ea89c[_0x3c5c('0x40')]:_0x2ad075['model'];if(!_0x107e10[_0x3c5c('0x3c')][_0x3c5c('0x42')](_0x3c5c('0x43'))){_0x3ea89c[_0x3c5c('0x27')]=qs['limit'](_0x107e10[_0x3c5c('0x3c')][_0x3c5c('0x27')]);_0x3ea89c[_0x3c5c('0x25')]=qs['offset'](_0x107e10[_0x3c5c('0x3c')][_0x3c5c('0x25')]);}_0x3ea89c['order']=qs[_0x3c5c('0x44')](_0x107e10[_0x3c5c('0x3c')][_0x3c5c('0x44')]);_0x3ea89c[_0x3c5c('0x45')]=qs[_0x3c5c('0x3d')](_[_0x3c5c('0x46')](_0x107e10[_0x3c5c('0x3c')],_0x2ad075['filters']),_0x5ad50);if(_0x107e10['query'][_0x3c5c('0x47')]){_0x3ea89c[_0x3c5c('0x45')]=_[_0x3c5c('0x48')](_0x3ea89c[_0x3c5c('0x45')],{'$or':_[_0x3c5c('0x34')](_0x5ad50,function(_0x30044d){if(_0x30044d[_0x3c5c('0x38')]!==_0x3c5c('0x49')){var _0x10dfba={};_0x10dfba[_0x30044d[_0x3c5c('0x3a')]]={'$like':'%'+_0x107e10[_0x3c5c('0x3c')][_0x3c5c('0x47')]+'%'};return _0x10dfba;}})});}_0x3ea89c=_['merge']({},_0x3ea89c,_0x107e10[_0x3c5c('0x4a')]);var _0x2fce2d={'where':_0x3ea89c[_0x3c5c('0x45')]};return db['Plugin'][_0x3c5c('0x28')](_0x2fce2d)['then'](function(_0x27ac6a){_0x7ea9cb[_0x3c5c('0x28')]=_0x27ac6a;if(_0x107e10[_0x3c5c('0x3c')]['includeAll']){_0x3ea89c['include']=[{'all':!![]}];}return db['Plugin'][_0x3c5c('0x4b')](_0x3ea89c);})[_0x3c5c('0x30')](function(_0x1304cc){_0x7ea9cb['rows']=_0x1304cc;return _0x7ea9cb;})[_0x3c5c('0x30')](respondWithFilteredResult(_0x473b86,_0x3ea89c))[_0x3c5c('0x4c')](handleError(_0x473b86,null));};exports[_0x3c5c('0x4d')]=function(_0x3f9147,_0x22ad70){var _0x101fff={'raw':!![],'where':{'id':_0x3f9147['params']['id']}},_0x26ec84={};_0x26ec84['model']=_[_0x3c5c('0x3b')](db[_0x3c5c('0x35')]['rawAttributes']);_0x26ec84['query']=_[_0x3c5c('0x3b')](_0x3f9147[_0x3c5c('0x3c')]);_0x26ec84['filters']=_[_0x3c5c('0x3e')](_0x26ec84[_0x3c5c('0x3f')],_0x26ec84[_0x3c5c('0x3c')]);_0x101fff['attributes']=_[_0x3c5c('0x3e')](_0x26ec84[_0x3c5c('0x3f')],qs[_0x3c5c('0x4e')](_0x3f9147['query']['fields']));_0x101fff[_0x3c5c('0x40')]=_0x101fff['attributes']['length']?_0x101fff[_0x3c5c('0x40')]:_0x26ec84[_0x3c5c('0x3f')];if(_0x3f9147[_0x3c5c('0x3c')][_0x3c5c('0x4f')]){_0x101fff[_0x3c5c('0x50')]=[{'all':!![]}];}_0x101fff=_['merge']({},_0x101fff,_0x3f9147[_0x3c5c('0x4a')]);return db[_0x3c5c('0x35')][_0x3c5c('0x51')](_0x101fff)['then'](handleEntityNotFound(_0x22ad70,null))[_0x3c5c('0x30')](respondWithResult(_0x22ad70,null))[_0x3c5c('0x4c')](handleError(_0x22ad70,null));};exports[_0x3c5c('0x52')]=function(_0x4e068c,_0x12cb5b,_0x39f6fe){return db[_0x3c5c('0x35')][_0x3c5c('0x51')]({'where':{'id':_0x4e068c[_0x3c5c('0x53')]['id']},'attributes':[_0x3c5c('0x3a'),'path'],'raw':!![]})[_0x3c5c('0x30')](handleEntityNotFound(_0x12cb5b,null))[_0x3c5c('0x30')](function(_0x47f652){if(_0x47f652){var _0x57e27a=path['join'](config['root'],'server/files/plugins',util['format'](_0x3c5c('0x54'),path[_0x3c5c('0x55')](_0x47f652[_0x3c5c('0x8')])));var _0x2ade12=fs['createWriteStream'](_0x57e27a);var _0x1906fd=archiver(_0x3c5c('0x56'),{'zlib':{'level':0x9}});_0x1906fd['on'](_0x3c5c('0x57'),function(_0xe13d4a){if(_0xe13d4a[_0x3c5c('0x58')]===_0x3c5c('0x59')){logger['error'](_0xe13d4a);}else{throw new db[(_0x3c5c('0x5a'))][(_0x3c5c('0x5b'))](_0x3c5c('0x5c'));}});_0x1906fd['on'](_0x3c5c('0x5d'),function(_0x4326b1){throw new db[(_0x3c5c('0x5a'))][(_0x3c5c('0x5b'))]('Error\x20while\x20generating\x20the\x20zip\x20archive');});_0x1906fd['pipe'](_0x2ade12);_0x1906fd[_0x3c5c('0x5e')](_0x3c5c('0x5f'),{'cwd':path[_0x3c5c('0x60')](config[_0x3c5c('0x61')],_0x3c5c('0x62'),path[_0x3c5c('0x63')](_0x47f652[_0x3c5c('0x8')])),'ignore':[path['join'](path['basename'](_0x47f652[_0x3c5c('0x8')]),_0x3c5c('0x64')),path[_0x3c5c('0x60')](path['basename'](_0x47f652[_0x3c5c('0x8')]),_0x3c5c('0x65'))],'nodir':!![]})[_0x3c5c('0x66')]();_0x2ade12['on']('close',function(){if(!fs[_0x3c5c('0x67')](_0x57e27a)){throw new db[(_0x3c5c('0x5a'))][(_0x3c5c('0x5b'))](_0x3c5c('0x68'));}return _0x12cb5b[_0x3c5c('0x52')](_0x57e27a,util[_0x3c5c('0x69')](_0x3c5c('0x54'),path[_0x3c5c('0x55')](_0x47f652[_0x3c5c('0x8')])),function(_0x43a708){if(_0x43a708){throw new db[(_0x3c5c('0x5a'))][(_0x3c5c('0x5b'))]('Error\x20while\x20downloading\x20the\x20plugin');}fs['unlinkSync'](_0x57e27a);logger[_0x3c5c('0x6a')](_0x3c5c('0x6b'));logger[_0x3c5c('0x6a')](_0x3c5c('0x6c'));});});}return null;})[_0x3c5c('0x4c')](handleError(_0x12cb5b,null));};exports['upload']=function(_0x16b9dd,_0x538b08,_0x2cd516){var _0x14cea9=path[_0x3c5c('0x55')](_0x16b9dd[_0x3c5c('0x6d')][_0x3c5c('0x6e')],path[_0x3c5c('0x6f')](_0x16b9dd[_0x3c5c('0x6d')]['filename']));var _0x19fc8d=path['join'](config[_0x3c5c('0x61')],_0x3c5c('0x62'),_0x16b9dd[_0x3c5c('0x6d')][_0x3c5c('0x6e')]);var _0x3c3ff6=path[_0x3c5c('0x60')](config['root'],'server/files/plugins',_0x14cea9);logger[_0x3c5c('0x6a')](_0x3c5c('0x70'),_0x19fc8d);logger['info'](_0x3c5c('0x71'),_0x3c3ff6);try{fs[_0x3c5c('0x72')](_0x19fc8d,parseInt(_0x3c5c('0x73'),0x8));extract(_0x19fc8d,{'dir':_0x3c3ff6},function(_0x3ec99f){if(_0x3ec99f){logger[_0x3c5c('0x5d')](_0x3ec99f);handleError(_0x3ec99f,!![]);};var _0x4e8588=fs[_0x3c5c('0x74')](_0x3c3ff6);if(_0x4e8588['length']>0x1){removeReferences(_0x19fc8d,_0x3c3ff6);logger['error'](_0x3c5c('0x75'));return _0x2cd516(new Error(_0x3c5c('0x75')));}var _0x4cfbe2=fs[_0x3c5c('0x76')](path[_0x3c5c('0x60')](_0x3c3ff6,_0x4e8588[0x0]));if(_0x4cfbe2[_0x3c5c('0x77')]()){removeReferences(_0x19fc8d,_0x3c3ff6);logger[_0x3c5c('0x5d')](_0x3c5c('0x75'));return _0x2cd516(new Error('Invalid\x20plugin\x20structure'));}if(_0x4cfbe2[_0x3c5c('0x78')]()){var _0x200b48=fs[_0x3c5c('0x74')](path[_0x3c5c('0x60')](_0x3c3ff6,_0x4e8588[0x0]));if(_0x200b48[_0x3c5c('0x41')]===0x0){removeReferences(_0x19fc8d,_0x3c3ff6);logger[_0x3c5c('0x5d')](_0x3c5c('0x75'));return _0x2cd516(new Error(_0x3c5c('0x75')));}var _0x4d4175=_0x200b48['some'](function(_0x4bf813){return _0x4bf813===_0x3c5c('0x79');});if(!_0x4d4175){return _0x2cd516(new Error(_0x3c5c('0x7a')));}var _0x62a239=fs[_0x3c5c('0x7b')](path[_0x3c5c('0x60')](_0x3c3ff6,_0x4e8588[0x0],_0x3c5c('0x79')));var _0x38fded=JSON[_0x3c5c('0x7c')](_0x62a239);if(_0x3c5c('0x26')==typeof _0x38fded[_0x3c5c('0x3a')]){return _0x2cd516(new Error('Invalid\x20manifest:\x20name\x20missing'));}if(_0x3c5c('0x26')==typeof _0x38fded['type']){return _0x2cd516(new Error(_0x3c5c('0x7d')));}if(_0x3c5c('0x26')==typeof _0x38fded[_0x3c5c('0x7e')]){return _0x2cd516(new Error(_0x3c5c('0x7f')));}if('undefined'==typeof _0x38fded['parameters']){return _0x2cd516(new Error(_0x3c5c('0x80')));}if(_0x38fded[_0x3c5c('0x38')]===_0x3c5c('0x81')){if(_0x3c5c('0x26')==typeof _0x38fded[_0x3c5c('0x82')][_0x3c5c('0x83')]){return _0x2cd516(new Error(_0x3c5c('0x84')));}if(_0x3c5c('0x26')==typeof _0x38fded[_0x3c5c('0x82')][_0x3c5c('0x83')]['admin']&&_0x3c5c('0x26')==typeof _0x38fded['parameters'][_0x3c5c('0x83')][_0x3c5c('0x85')]){return _0x2cd516(new Error(_0x3c5c('0x86')));}}else if(_0x38fded['type']===_0x3c5c('0x87')){if(_0x3c5c('0x26')==typeof _0x38fded[_0x3c5c('0x82')]['scriptName']){return _0x2cd516(new Error(_0x3c5c('0x88')));}if('undefined'==typeof _0x38fded[_0x3c5c('0x82')][_0x3c5c('0x89')]){return _0x2cd516(new Error(_0x3c5c('0x8a')));}}else{return _0x2cd516(new Error(_0x3c5c('0x8b')));}var _0x164e98=_0x38fded['name'];var _0x414719=_0x38fded[_0x3c5c('0x8c')];var _0x5f1224=_0x38fded['type'];var _0xe7ff19=_0x38fded[_0x3c5c('0x8d')]?_0x38fded[_0x3c5c('0x8d')]:_0x3c5c('0x8e');var _0x47f8f8=_0x38fded[_0x3c5c('0x8f')]?_0x38fded['icon']:_0x3c5c('0x90');var _0x4fd066='';var _0x231325='';var _0x272bac='';var _0x1e0491='';var _0x387b05=_0x38fded[_0x3c5c('0x7e')];if(_0x5f1224==='html'){if(_0x3c5c('0x26')!=typeof _0x38fded[_0x3c5c('0x82')][_0x3c5c('0x83')][_0x3c5c('0x91')]){var _0x2167f2=_0x38fded[_0x3c5c('0x82')]['views'][_0x3c5c('0x91')];if(!/^(f|ht)tps?:\/\//i[_0x3c5c('0x92')](_0x2167f2)){_0x4fd066=path[_0x3c5c('0x60')]('plugins',_0x14cea9,_0x4e8588[0x0],_0x2167f2);}else{_0x4fd066=_0x2167f2;}}else{logger['info']('Warning:\x20admin\x20view\x20not\x20specified');}if(_0x3c5c('0x26')!=typeof _0x38fded['parameters']['views'][_0x3c5c('0x85')]){var _0x3a2e66=_0x38fded[_0x3c5c('0x82')][_0x3c5c('0x83')][_0x3c5c('0x85')];if(!/^(f|ht)tps?:\/\//i[_0x3c5c('0x92')](_0x3a2e66)){_0x231325=path['join'](_0x3c5c('0x93'),_0x14cea9,_0x4e8588[0x0],_0x3a2e66);}else{_0x231325=_0x3a2e66;}}else{logger[_0x3c5c('0x6a')](_0x3c5c('0x94'));}}else if(_0x5f1224==='script'){_0x272bac=_0x38fded[_0x3c5c('0x82')][_0x3c5c('0x95')];_0x1e0491=_0x38fded['parameters']['scriptPath'];if(_0x3c5c('0x26')!=typeof _0x38fded[_0x3c5c('0x82')][_0x3c5c('0x83')]){if(_0x3c5c('0x26')!=typeof _0x38fded[_0x3c5c('0x82')][_0x3c5c('0x83')][_0x3c5c('0x91')]){var _0x2167f2=_0x38fded[_0x3c5c('0x82')]['views'][_0x3c5c('0x91')];if(!/^(f|ht)tps?:\/\//i[_0x3c5c('0x92')](_0x2167f2)){_0x4fd066=path[_0x3c5c('0x60')](_0x3c5c('0x93'),_0x14cea9,_0x4e8588[0x0],_0x2167f2);}else{_0x4fd066=_0x2167f2;}}if(_0x3c5c('0x26')!=typeof _0x38fded[_0x3c5c('0x82')]['views'][_0x3c5c('0x85')]){var _0x3a2e66=_0x38fded[_0x3c5c('0x82')][_0x3c5c('0x83')]['agent'];if(!/^(f|ht)tps?:\/\//i['test'](_0x3a2e66)){_0x231325=path['join']('plugins',_0x14cea9,_0x4e8588[0x0],_0x3a2e66);}else{_0x231325=_0x3a2e66;}}}}var _0x580134={'name':_0x164e98,'description':_0x414719,'path':path['join'](_0x14cea9,_0x4e8588[0x0]),'type':_0x5f1224,'sidebar':_0xe7ff19,'icon':_0x47f8f8,'adminUrl':_0x4fd066,'agentUrl':_0x231325,'scriptName':_0x272bac,'scriptPath':_0x1e0491,'version':_0x387b05};removeReferences(_0x19fc8d,null);return db[_0x3c5c('0x35')][_0x3c5c('0x96')](_0x580134)[_0x3c5c('0x30')](function(_0x490abc){var _0x42e76b={'role':_0x16b9dd['body'][_0x3c5c('0x97')],'userProfileId':_0x16b9dd[_0x3c5c('0x98')][_0x3c5c('0x99')]};if(!_0x42e76b)throw new Error(_0x3c5c('0x9a'));if(_0x42e76b['role']===_0x3c5c('0x9b')){var _0x399558=_0x490abc[_0x3c5c('0x9c')]({'plain':!![]});return db[_0x3c5c('0x9d')][_0x3c5c('0x51')]({'where':{'name':'Plugins','userProfileId':_0x42e76b['userProfileId']},'raw':!![]})[_0x3c5c('0x30')](function(_0x41cff4){if(_0x41cff4&&_0x41cff4[_0x3c5c('0x9e')]===0x0){return db['UserProfileResource'][_0x3c5c('0x96')]({'name':_0x399558[_0x3c5c('0x3a')],'resourceId':_0x399558['id'],'type':_0x41cff4['name'],'sectionId':_0x41cff4['id']},{})[_0x3c5c('0x30')](function(){return _0x490abc;});}else{return _0x490abc;}})['catch'](function(_0x569a12){logger[_0x3c5c('0x5d')](_0x3c5c('0x9f'),_0x569a12);throw _0x569a12;});}return _0x490abc;})[_0x3c5c('0x30')](respondWithResult(_0x538b08,null))[_0x3c5c('0x4c')](handleError(_0x538b08,null));}});}catch(_0x462959){_0x538b08[_0x3c5c('0x23')](0x1f4)['send'](_0x462959);}};function removeReferences(_0x1ee0bd,_0x3d589b){try{if(_0x1ee0bd){fs[_0x3c5c('0xa0')](_0x1ee0bd);logger[_0x3c5c('0x6a')](_0x3c5c('0xa1'));}if(_0x3d589b){rimraf(_0x3d589b,function(){});logger[_0x3c5c('0x6a')](_0x3c5c('0xa2'));}}catch(_0x11b56b){logger[_0x3c5c('0x5d')](_0x11b56b);}}exports['update']=function(_0x2f7853,_0x1209bd,_0x31fbcb){return db['Plugin'][_0x3c5c('0x51')]({'where':{'id':_0x2f7853[_0x3c5c('0x53')]['id']}})[_0x3c5c('0x30')](handleEntityNotFound(_0x1209bd,null))[_0x3c5c('0x30')](saveUpdates(_0x2f7853['body'],null))['then'](respondWithResult(_0x1209bd,null))['catch'](handleError(_0x1209bd,null));};exports['delete']=function(_0x1dbd1a,_0x884b1f,_0x25c56f){return db[_0x3c5c('0x35')][_0x3c5c('0x51')]({'where':{'id':_0x1dbd1a[_0x3c5c('0x53')]['id']}})[_0x3c5c('0x30')](function(_0x56b6f0){if(_0x56b6f0){return _0x56b6f0['destroy']();}})[_0x3c5c('0x30')](function(_0x4a5b18){rimraf(path[_0x3c5c('0x60')](config[_0x3c5c('0x61')],_0x3c5c('0x62'),path['dirname'](_0x4a5b18[_0x3c5c('0x8')])),function(){});return _0x4a5b18;})[_0x3c5c('0x30')](handleEntityNotFound(_0x884b1f,null))[_0x3c5c('0x30')](respondWithStatusCode(_0x884b1f,null))[_0x3c5c('0x4c')](handleError(_0x884b1f,null));};exports[_0x3c5c('0xa3')]=function(_0x279ac0,_0x48aacd,_0x593a11){return BPromise['resolve']()[_0x3c5c('0x30')](function(){if(!_0x279ac0[_0x3c5c('0x3c')][_0x3c5c('0x8')]){throw new Error(_0x3c5c('0xa4'));}if(!_0x279ac0[_0x3c5c('0x3c')][_0x3c5c('0xa5')]){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x37c60e=_0x279ac0[_0x3c5c('0x3c')][_0x3c5c('0xa6')]?_0x279ac0[_0x3c5c('0x3c')][_0x3c5c('0xa6')]+':'+_0x279ac0[_0x3c5c('0x3c')][_0x3c5c('0xa5')]:_0x3c5c('0xa7')+_0x279ac0[_0x3c5c('0x3c')][_0x3c5c('0xa5')];var _0x3732a7=_0x279ac0[_0x3c5c('0x3c')][_0x3c5c('0x2a')]?_0x279ac0['query'][_0x3c5c('0x2a')]:!![];var _0x21dd89=_0x279ac0[_0x3c5c('0x3c')][_0x3c5c('0xa8')]?_0x279ac0[_0x3c5c('0x3c')]['encoding']:null;var _0x51ea95={'method':_0x279ac0['method'],'uri':util['format'](_0x3c5c('0xa9'),_0x37c60e,_0x279ac0[_0x3c5c('0x3c')][_0x3c5c('0x8')]),'json':_0x3732a7,'resolveWithFullResponse':!![],'encoding':_0x21dd89,'qs':_0x279ac0['query']};if(_0x279ac0[_0x3c5c('0xaa')]){_0x51ea95[_0x3c5c('0xaa')]=_0x279ac0['headers'];if(_0x51ea95['headers'][_0x3c5c('0xab')]){delete _0x51ea95[_0x3c5c('0xaa')][_0x3c5c('0xab')];}}if(_0x51ea95[_0x3c5c('0xaa')][_0x3c5c('0xac')]){delete _0x51ea95[_0x3c5c('0xaa')][_0x3c5c('0xac')];}return rp(_0x51ea95);})[_0x3c5c('0x30')](function(_0x186dd2){if(_0x186dd2){_0x48aacd[_0x3c5c('0x29')](_0x186dd2['headers']);logger[_0x3c5c('0x6a')](_0x186dd2['body']);if(_['endsWith'](_0x279ac0[_0x3c5c('0x3c')][_0x3c5c('0x8')],_0x3c5c('0x52'))&&_0x186dd2[_0x3c5c('0xad')]==0x1f4){return _0x48aacd[_0x3c5c('0x32')](_0x186dd2[_0x3c5c('0xad')]);}else{return _0x48aacd['status'](_0x186dd2[_0x3c5c('0xad')])[_0x3c5c('0xae')](_0x186dd2['body']);}}else{return _0x48aacd['sendStatus'](0xc8);}})[_0x3c5c('0x4c')](handleError(_0x48aacd,null));};exports['webhookPost']=function(_0x276207,_0x24b405,_0x28ea17){return BPromise[_0x3c5c('0xaf')]()['then'](function(){if(!_0x276207[_0x3c5c('0x3c')]['path']){throw new Error(_0x3c5c('0xa4'));}if(!_0x276207[_0x3c5c('0x3c')][_0x3c5c('0xa5')]){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x393b5b=_0x276207[_0x3c5c('0x3c')][_0x3c5c('0xa6')]?_0x276207[_0x3c5c('0x3c')]['hostname']+':'+_0x276207['query']['port']:'http://localhost:'+_0x276207['query'][_0x3c5c('0xa5')];var _0x8e9697=_0x276207[_0x3c5c('0x3c')][_0x3c5c('0x2a')]?_0x276207[_0x3c5c('0x3c')][_0x3c5c('0x2a')]:!![];var _0x1b8b07=_0x276207[_0x3c5c('0x3c')]['encoding']?_0x276207['query'][_0x3c5c('0xa8')]:null;var _0x16ea7c={'method':_0x276207['method'],'uri':util[_0x3c5c('0x69')](_0x3c5c('0xa9'),_0x393b5b,_0x276207['query']['path']),'json':_0x8e9697,'resolveWithFullResponse':!![],'encoding':_0x1b8b07,'body':_0x276207['body']};if(_0x276207['headers']){_0x16ea7c[_0x3c5c('0xaa')]=_0x276207[_0x3c5c('0xaa')];if(_0x16ea7c[_0x3c5c('0xaa')][_0x3c5c('0xab')]){delete _0x16ea7c[_0x3c5c('0xaa')][_0x3c5c('0xab')];}}if(_0x16ea7c[_0x3c5c('0xaa')]['content-type']){delete _0x16ea7c[_0x3c5c('0xaa')][_0x3c5c('0xac')];}return rp(_0x16ea7c);})[_0x3c5c('0x30')](function(_0x26d74d){if(_0x26d74d){_0x24b405['set'](_0x26d74d['headers']);logger[_0x3c5c('0x6a')](_0x26d74d[_0x3c5c('0x98')]);return _0x24b405[_0x3c5c('0x23')](_0x26d74d[_0x3c5c('0xad')])[_0x3c5c('0xae')](_0x26d74d[_0x3c5c('0x98')]);}else{return _0x24b405[_0x3c5c('0x32')](0xc8);}})[_0x3c5c('0x4c')](handleError(_0x24b405,null));};