Built motion from commit e6806ed6.|2.6.0
[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 _0xf0ba=['Warning:\x20agent\x20view\x20not\x20specified','script','scriptPath','agent','create','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Extracted\x20folder\x20removed','dirname','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','encoding','method','headers','content-length','content-type','endsWith','statusCode','http://localhost:','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','extract-zip','archiver','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','get','Plugins','UserProfileResource','error','name','send','index','map','Plugin','rawAttributes','fieldName','model','query','keys','filters','attributes','intersection','fields','nolimit','order','sort','where','pick','filter','merge','includeAll','include','findAll','rows','catch','length','find','params','path','join','root','server/files/plugins','format','basename','createWriteStream','warning','code','ENOENT','Sequelize','Error\x20while\x20generating\x20the\x20zip\x20archive','Error','pipe','glob','**/*','node_modules/**/*','existsSync','Plugin\x20not\x20found','download','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','Download\x20completed','Temporary\x20file\x20removed','upload','file','filename','extname','info','Plugin\x20upload\x20filepath:\x20%s','0777','Invalid\x20plugin\x20structure','lstatSync','isDirectory','readdirSync','some','manifest.json','Plugin\x20manifest\x20missing','readFileSync','parse','Invalid\x20manifest:\x20name\x20missing','type','version','Invalid\x20manifest:\x20parameters\x20missing','html','views','admin','parameters','Invalid\x20manifest:\x20no\x20view\x20specified','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','description','sidebar','icon','icon-apps','plugins','Warning:\x20admin\x20view\x20not\x20specified','test'];(function(_0x36eaaa,_0x326732){var _0x461349=function(_0x4e4180){while(--_0x4e4180){_0x36eaaa['push'](_0x36eaaa['shift']());}};_0x461349(++_0x326732);}(_0xf0ba,0x164));var _0xaf0b=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xf0ba[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0xaf0b('0x0'));var rimraf=require(_0xaf0b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xaf0b('0x2'));var rp=require('request-promise');var moment=require(_0xaf0b('0x3'));var BPromise=require(_0xaf0b('0x4'));var Mustache=require(_0xaf0b('0x5'));var util=require(_0xaf0b('0x6'));var path=require('path');var sox=require(_0xaf0b('0x7'));var csv=require(_0xaf0b('0x8'));var ejs=require(_0xaf0b('0x9'));var fs=require('fs');var fs_extra=require(_0xaf0b('0xa'));var _=require(_0xaf0b('0xb'));var squel=require('squel');var crypto=require(_0xaf0b('0xc'));var jsforce=require(_0xaf0b('0xd'));var deskjs=require(_0xaf0b('0xe'));var toCsv=require(_0xaf0b('0x8'));var querystring=require('querystring');var Papa=require(_0xaf0b('0xf'));var extract=require(_0xaf0b('0x10'));var rimraf=require(_0xaf0b('0x1'));var archiver=require(_0xaf0b('0x11'));var Redis=require('ioredis');var authService=require(_0xaf0b('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xaf0b('0x13'));var hardwareService=require(_0xaf0b('0x14'));var logger=require(_0xaf0b('0x15'))(_0xaf0b('0x16'));var utils=require('../../config/utils');var config=require(_0xaf0b('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xaf0b('0x18'))['db'];config['redis']=_[_0xaf0b('0x19')](config[_0xaf0b('0x1a')],{'host':_0xaf0b('0x1b'),'port':0x18eb});var socket=require(_0xaf0b('0x1c'))(new Redis(config[_0xaf0b('0x1a')]));require('./plugin.socket')[_0xaf0b('0x1d')](socket);function respondWithStatusCode(_0x8f4003,_0x367ea2){_0x367ea2=_0x367ea2||0xcc;return function(_0x2c4f64){if(_0x2c4f64){return _0x8f4003[_0xaf0b('0x1e')](_0x367ea2);}return _0x8f4003['status'](_0x367ea2)[_0xaf0b('0x1f')]();};}function respondWithResult(_0xcd7b6,_0x3d15f5){_0x3d15f5=_0x3d15f5||0xc8;return function(_0x356688){if(_0x356688){return _0xcd7b6[_0xaf0b('0x20')](_0x3d15f5)[_0xaf0b('0x21')](_0x356688);}};}function respondWithFilteredResult(_0x4b8380,_0x3fb403){return function(_0xd77392){if(_0xd77392){var _0x3dad7b=typeof _0x3fb403[_0xaf0b('0x22')]===_0xaf0b('0x23')&&typeof _0x3fb403[_0xaf0b('0x24')]===_0xaf0b('0x23');var _0x3018a=_0xd77392['count'];var _0x4c63a2=_0x3dad7b?0x0:_0x3fb403[_0xaf0b('0x22')];var _0x36b203=_0x3dad7b?_0xd77392[_0xaf0b('0x25')]:_0x3fb403[_0xaf0b('0x22')]+_0x3fb403[_0xaf0b('0x24')];var _0x3d2acb;if(_0x36b203>=_0x3018a){_0x36b203=_0x3018a;_0x3d2acb=0xc8;}else{_0x3d2acb=0xce;}_0x4b8380['status'](_0x3d2acb);return _0x4b8380[_0xaf0b('0x26')](_0xaf0b('0x27'),_0x4c63a2+'-'+_0x36b203+'/'+_0x3018a)[_0xaf0b('0x21')](_0xd77392);}return null;};}function patchUpdates(_0x476344){return function(_0x569bc6){try{jsonpatch['apply'](_0x569bc6,_0x476344,!![]);}catch(_0x45051f){return BPromise[_0xaf0b('0x28')](_0x45051f);}return _0x569bc6[_0xaf0b('0x29')]();};}function saveUpdates(_0x5318df,_0x3c6f99){return function(_0x2633f3){if(_0x2633f3){return _0x2633f3[_0xaf0b('0x2a')](_0x5318df)[_0xaf0b('0x2b')](function(_0x46d87e){return _0x46d87e;});}return null;};}function removeEntity(_0x2d852d,_0x443494){return function(_0x554f1b){if(_0x554f1b){return _0x554f1b[_0xaf0b('0x2c')]()['then'](function(){var _0x2cfaa6=_0x554f1b[_0xaf0b('0x2d')]({'plain':!![]});var _0x181c2c=_0xaf0b('0x2e');return db[_0xaf0b('0x2f')][_0xaf0b('0x2c')]({'where':{'type':_0x181c2c,'resourceId':_0x2cfaa6['id']}})[_0xaf0b('0x2b')](function(){return _0x554f1b;});})[_0xaf0b('0x2b')](function(){_0x2d852d[_0xaf0b('0x20')](0xcc)[_0xaf0b('0x1f')]();});}};}function handleEntityNotFound(_0x52cc4e,_0x10bcbe){return function(_0x5d09ab){if(!_0x5d09ab){_0x52cc4e[_0xaf0b('0x1e')](0x194);}return _0x5d09ab;};}function handleError(_0xa6806d,_0x44602d){_0x44602d=_0x44602d||0x1f4;return function(_0x1270c9){logger[_0xaf0b('0x30')](_0x1270c9['stack']);if(_0x1270c9[_0xaf0b('0x31')]){delete _0x1270c9[_0xaf0b('0x31')];}_0xa6806d[_0xaf0b('0x20')](_0x44602d)[_0xaf0b('0x32')](_0x1270c9);};}exports[_0xaf0b('0x33')]=function(_0x563a6b,_0x49d0b4){var _0x438a2f={},_0x157f1e={},_0x378564={'count':0x0,'rows':[]};var _0x142c34=_[_0xaf0b('0x34')](db[_0xaf0b('0x35')][_0xaf0b('0x36')],function(_0x44de5d){return{'name':_0x44de5d[_0xaf0b('0x37')],'type':_0x44de5d['type']['key']};});_0x157f1e[_0xaf0b('0x38')]=_[_0xaf0b('0x34')](_0x142c34,_0xaf0b('0x31'));_0x157f1e[_0xaf0b('0x39')]=_[_0xaf0b('0x3a')](_0x563a6b[_0xaf0b('0x39')]);_0x157f1e[_0xaf0b('0x3b')]=_['intersection'](_0x157f1e[_0xaf0b('0x38')],_0x157f1e[_0xaf0b('0x39')]);_0x438a2f[_0xaf0b('0x3c')]=_[_0xaf0b('0x3d')](_0x157f1e[_0xaf0b('0x38')],qs[_0xaf0b('0x3e')](_0x563a6b[_0xaf0b('0x39')]['fields']));_0x438a2f[_0xaf0b('0x3c')]=_0x438a2f['attributes']['length']?_0x438a2f[_0xaf0b('0x3c')]:_0x157f1e[_0xaf0b('0x38')];if(!_0x563a6b['query']['hasOwnProperty'](_0xaf0b('0x3f'))){_0x438a2f[_0xaf0b('0x24')]=qs[_0xaf0b('0x24')](_0x563a6b[_0xaf0b('0x39')][_0xaf0b('0x24')]);_0x438a2f['offset']=qs[_0xaf0b('0x22')](_0x563a6b['query'][_0xaf0b('0x22')]);}_0x438a2f[_0xaf0b('0x40')]=qs[_0xaf0b('0x41')](_0x563a6b[_0xaf0b('0x39')][_0xaf0b('0x41')]);_0x438a2f[_0xaf0b('0x42')]=qs[_0xaf0b('0x3b')](_[_0xaf0b('0x43')](_0x563a6b[_0xaf0b('0x39')],_0x157f1e['filters']),_0x142c34);if(_0x563a6b['query'][_0xaf0b('0x44')]){_0x438a2f[_0xaf0b('0x42')]=_[_0xaf0b('0x45')](_0x438a2f[_0xaf0b('0x42')],{'$or':_[_0xaf0b('0x34')](_0x142c34,function(_0x3f66a6){if(_0x3f66a6['type']!=='VIRTUAL'){var _0x3fb8fa={};_0x3fb8fa[_0x3f66a6[_0xaf0b('0x31')]]={'$like':'%'+_0x563a6b[_0xaf0b('0x39')][_0xaf0b('0x44')]+'%'};return _0x3fb8fa;}})});}_0x438a2f=_['merge']({},_0x438a2f,_0x563a6b['options']);var _0x2a7fb9={'where':_0x438a2f[_0xaf0b('0x42')]};return db['Plugin'][_0xaf0b('0x25')](_0x2a7fb9)[_0xaf0b('0x2b')](function(_0x6dfecf){_0x378564[_0xaf0b('0x25')]=_0x6dfecf;if(_0x563a6b[_0xaf0b('0x39')][_0xaf0b('0x46')]){_0x438a2f[_0xaf0b('0x47')]=[{'all':!![]}];}return db[_0xaf0b('0x35')][_0xaf0b('0x48')](_0x438a2f);})['then'](function(_0x20e130){_0x378564[_0xaf0b('0x49')]=_0x20e130;return _0x378564;})[_0xaf0b('0x2b')](respondWithFilteredResult(_0x49d0b4,_0x438a2f))[_0xaf0b('0x4a')](handleError(_0x49d0b4,null));};exports['show']=function(_0x609faa,_0x5f1aa6){var _0x2a6e92={'raw':!![],'where':{'id':_0x609faa['params']['id']}},_0x2560e7={};_0x2560e7[_0xaf0b('0x38')]=_['keys'](db['Plugin'][_0xaf0b('0x36')]);_0x2560e7[_0xaf0b('0x39')]=_['keys'](_0x609faa[_0xaf0b('0x39')]);_0x2560e7[_0xaf0b('0x3b')]=_[_0xaf0b('0x3d')](_0x2560e7['model'],_0x2560e7[_0xaf0b('0x39')]);_0x2a6e92[_0xaf0b('0x3c')]=_[_0xaf0b('0x3d')](_0x2560e7[_0xaf0b('0x38')],qs['fields'](_0x609faa[_0xaf0b('0x39')][_0xaf0b('0x3e')]));_0x2a6e92[_0xaf0b('0x3c')]=_0x2a6e92['attributes'][_0xaf0b('0x4b')]?_0x2a6e92[_0xaf0b('0x3c')]:_0x2560e7[_0xaf0b('0x38')];if(_0x609faa['query']['includeAll']){_0x2a6e92['include']=[{'all':!![]}];}_0x2a6e92=_['merge']({},_0x2a6e92,_0x609faa['options']);return db['Plugin'][_0xaf0b('0x4c')](_0x2a6e92)[_0xaf0b('0x2b')](handleEntityNotFound(_0x5f1aa6,null))['then'](respondWithResult(_0x5f1aa6,null))[_0xaf0b('0x4a')](handleError(_0x5f1aa6,null));};exports['download']=function(_0x4103d1,_0x156f30,_0x1dd8ad){return db[_0xaf0b('0x35')][_0xaf0b('0x4c')]({'where':{'id':_0x4103d1[_0xaf0b('0x4d')]['id']},'attributes':[_0xaf0b('0x31'),_0xaf0b('0x4e')],'raw':!![]})[_0xaf0b('0x2b')](handleEntityNotFound(_0x156f30,null))[_0xaf0b('0x2b')](function(_0x5d7e6c){if(_0x5d7e6c){var _0x5c61aa=path[_0xaf0b('0x4f')](config[_0xaf0b('0x50')],_0xaf0b('0x51'),util[_0xaf0b('0x52')]('%s.zip',path[_0xaf0b('0x53')](_0x5d7e6c[_0xaf0b('0x4e')])));var _0x23f236=fs[_0xaf0b('0x54')](_0x5c61aa);var _0x332310=archiver('zip',{'zlib':{'level':0x9}});_0x332310['on'](_0xaf0b('0x55'),function(_0x1948a6){if(_0x1948a6[_0xaf0b('0x56')]===_0xaf0b('0x57')){logger[_0xaf0b('0x30')](_0x1948a6);}else{throw new db[(_0xaf0b('0x58'))]['Error'](_0xaf0b('0x59'));}});_0x332310['on']('error',function(_0x46bb2b){throw new db[(_0xaf0b('0x58'))][(_0xaf0b('0x5a'))](_0xaf0b('0x59'));});_0x332310[_0xaf0b('0x5b')](_0x23f236);_0x332310[_0xaf0b('0x5c')](_0xaf0b('0x5d'),{'cwd':path[_0xaf0b('0x4f')](config[_0xaf0b('0x50')],'server/files/plugins',path['dirname'](_0x5d7e6c[_0xaf0b('0x4e')])),'ignore':[path[_0xaf0b('0x4f')](path[_0xaf0b('0x53')](_0x5d7e6c['path']),_0xaf0b('0x5e')),path[_0xaf0b('0x4f')](path['basename'](_0x5d7e6c[_0xaf0b('0x4e')]),'attachments/**/*')],'nodir':!![]})['finalize']();_0x23f236['on']('close',function(){if(!fs[_0xaf0b('0x5f')](_0x5c61aa)){throw new db[(_0xaf0b('0x58'))][(_0xaf0b('0x5a'))](_0xaf0b('0x60'));}return _0x156f30[_0xaf0b('0x61')](_0x5c61aa,util['format']('%s.zip',path['basename'](_0x5d7e6c[_0xaf0b('0x4e')])),function(_0xd26624){if(_0xd26624){throw new db[(_0xaf0b('0x58'))][(_0xaf0b('0x5a'))](_0xaf0b('0x62'));}fs[_0xaf0b('0x63')](_0x5c61aa);logger['info'](_0xaf0b('0x64'));logger['info'](_0xaf0b('0x65'));});});}return null;})[_0xaf0b('0x4a')](handleError(_0x156f30,null));};exports[_0xaf0b('0x66')]=function(_0xda584c,_0x4d73da,_0x190c09){var _0x30ed78=path[_0xaf0b('0x53')](_0xda584c[_0xaf0b('0x67')][_0xaf0b('0x68')],path[_0xaf0b('0x69')](_0xda584c['file'][_0xaf0b('0x68')]));var _0x4fb994=path['join'](config['root'],_0xaf0b('0x51'),_0xda584c[_0xaf0b('0x67')][_0xaf0b('0x68')]);var _0xbeaa87=path['join'](config[_0xaf0b('0x50')],_0xaf0b('0x51'),_0x30ed78);logger[_0xaf0b('0x6a')](_0xaf0b('0x6b'),_0x4fb994);logger['info']('Plugin\x20upload\x20destination:\x20%s',_0xbeaa87);try{fs['chmodSync'](_0x4fb994,parseInt(_0xaf0b('0x6c'),0x8));extract(_0x4fb994,{'dir':_0xbeaa87},function(_0x333017){if(_0x333017){logger[_0xaf0b('0x30')](_0x333017);handleError(_0x333017,!![]);};var _0x3128c0=fs['readdirSync'](_0xbeaa87);if(_0x3128c0[_0xaf0b('0x4b')]>0x1){removeReferences(_0x4fb994,_0xbeaa87);logger[_0xaf0b('0x30')](_0xaf0b('0x6d'));return _0x190c09(new Error(_0xaf0b('0x6d')));}var _0x5507d6=fs[_0xaf0b('0x6e')](path[_0xaf0b('0x4f')](_0xbeaa87,_0x3128c0[0x0]));if(_0x5507d6['isFile']()){removeReferences(_0x4fb994,_0xbeaa87);logger[_0xaf0b('0x30')]('Invalid\x20plugin\x20structure');return _0x190c09(new Error(_0xaf0b('0x6d')));}if(_0x5507d6[_0xaf0b('0x6f')]()){var _0x32bde9=fs[_0xaf0b('0x70')](path[_0xaf0b('0x4f')](_0xbeaa87,_0x3128c0[0x0]));if(_0x32bde9['length']===0x0){removeReferences(_0x4fb994,_0xbeaa87);logger[_0xaf0b('0x30')](_0xaf0b('0x6d'));return _0x190c09(new Error(_0xaf0b('0x6d')));}var _0x4c3685=_0x32bde9[_0xaf0b('0x71')](function(_0xd42a7b){return _0xd42a7b===_0xaf0b('0x72');});if(!_0x4c3685){return _0x190c09(new Error(_0xaf0b('0x73')));}var _0x396a99=fs[_0xaf0b('0x74')](path[_0xaf0b('0x4f')](_0xbeaa87,_0x3128c0[0x0],'manifest.json'));var _0x17d436=JSON[_0xaf0b('0x75')](_0x396a99);if(_0xaf0b('0x23')==typeof _0x17d436[_0xaf0b('0x31')]){return _0x190c09(new Error(_0xaf0b('0x76')));}if(_0xaf0b('0x23')==typeof _0x17d436[_0xaf0b('0x77')]){return _0x190c09(new Error('Invalid\x20manifest:\x20type\x20missing'));}if(_0xaf0b('0x23')==typeof _0x17d436[_0xaf0b('0x78')]){return _0x190c09(new Error('Invalid\x20manifest:\x20version\x20not\x20specified'));}if(_0xaf0b('0x23')==typeof _0x17d436['parameters']){return _0x190c09(new Error(_0xaf0b('0x79')));}if(_0x17d436[_0xaf0b('0x77')]===_0xaf0b('0x7a')){if(_0xaf0b('0x23')==typeof _0x17d436['parameters'][_0xaf0b('0x7b')]){return _0x190c09(new Error('Invalid\x20manifest:\x20views\x20missing'));}if(_0xaf0b('0x23')==typeof _0x17d436['parameters'][_0xaf0b('0x7b')][_0xaf0b('0x7c')]&&_0xaf0b('0x23')==typeof _0x17d436[_0xaf0b('0x7d')]['views']['agent']){return _0x190c09(new Error(_0xaf0b('0x7e')));}}else if(_0x17d436[_0xaf0b('0x77')]==='script'){if(_0xaf0b('0x23')==typeof _0x17d436[_0xaf0b('0x7d')][_0xaf0b('0x7f')]){return _0x190c09(new Error(_0xaf0b('0x80')));}if(_0xaf0b('0x23')==typeof _0x17d436[_0xaf0b('0x7d')]['scriptPath']){return _0x190c09(new Error('Invalid\x20manifest:\x20script\x20path\x20missing'));}}else{return _0x190c09(new Error('Invalid\x20manifest:\x20invalid\x20type'));}var _0x5602c2=_0x17d436[_0xaf0b('0x31')];var _0x2b502a=_0x17d436[_0xaf0b('0x81')];var _0x57e8b2=_0x17d436['type'];var _0x2d6c8a=_0x17d436[_0xaf0b('0x82')]?_0x17d436[_0xaf0b('0x82')]:'always';var _0x3d3a5d=_0x17d436[_0xaf0b('0x83')]?_0x17d436[_0xaf0b('0x83')]:_0xaf0b('0x84');var _0x39ad33='';var _0x5f316f='';var _0x54a63b='';var _0x34ad08='';var _0x206316=_0x17d436[_0xaf0b('0x78')];if(_0x57e8b2==='html'){if(_0xaf0b('0x23')!=typeof _0x17d436[_0xaf0b('0x7d')][_0xaf0b('0x7b')][_0xaf0b('0x7c')]){var _0x3c9395=_0x17d436[_0xaf0b('0x7d')]['views'][_0xaf0b('0x7c')];if(!/^(f|ht)tps?:\/\//i['test'](_0x3c9395)){_0x39ad33=path[_0xaf0b('0x4f')](_0xaf0b('0x85'),_0x30ed78,_0x3128c0[0x0],_0x3c9395);}else{_0x39ad33=_0x3c9395;}}else{logger['info'](_0xaf0b('0x86'));}if(_0xaf0b('0x23')!=typeof _0x17d436['parameters'][_0xaf0b('0x7b')]['agent']){var _0x2196a0=_0x17d436['parameters'][_0xaf0b('0x7b')]['agent'];if(!/^(f|ht)tps?:\/\//i[_0xaf0b('0x87')](_0x2196a0)){_0x5f316f=path['join'](_0xaf0b('0x85'),_0x30ed78,_0x3128c0[0x0],_0x2196a0);}else{_0x5f316f=_0x2196a0;}}else{logger[_0xaf0b('0x6a')](_0xaf0b('0x88'));}}else if(_0x57e8b2===_0xaf0b('0x89')){_0x54a63b=_0x17d436[_0xaf0b('0x7d')][_0xaf0b('0x7f')];_0x34ad08=_0x17d436[_0xaf0b('0x7d')][_0xaf0b('0x8a')];if('undefined'!=typeof _0x17d436[_0xaf0b('0x7d')][_0xaf0b('0x7b')]){if('undefined'!=typeof _0x17d436['parameters'][_0xaf0b('0x7b')][_0xaf0b('0x7c')]){var _0x3c9395=_0x17d436[_0xaf0b('0x7d')]['views'][_0xaf0b('0x7c')];if(!/^(f|ht)tps?:\/\//i[_0xaf0b('0x87')](_0x3c9395)){_0x39ad33=path[_0xaf0b('0x4f')](_0xaf0b('0x85'),_0x30ed78,_0x3128c0[0x0],_0x3c9395);}else{_0x39ad33=_0x3c9395;}}if('undefined'!=typeof _0x17d436[_0xaf0b('0x7d')][_0xaf0b('0x7b')]['agent']){var _0x2196a0=_0x17d436[_0xaf0b('0x7d')][_0xaf0b('0x7b')][_0xaf0b('0x8b')];if(!/^(f|ht)tps?:\/\//i[_0xaf0b('0x87')](_0x2196a0)){_0x5f316f=path['join'](_0xaf0b('0x85'),_0x30ed78,_0x3128c0[0x0],_0x2196a0);}else{_0x5f316f=_0x2196a0;}}}}var _0x167380={'name':_0x5602c2,'description':_0x2b502a,'path':path[_0xaf0b('0x4f')](_0x30ed78,_0x3128c0[0x0]),'type':_0x57e8b2,'sidebar':_0x2d6c8a,'icon':_0x3d3a5d,'adminUrl':_0x39ad33,'agentUrl':_0x5f316f,'scriptName':_0x54a63b,'scriptPath':_0x34ad08,'version':_0x206316};removeReferences(_0x4fb994,null);return db['Plugin'][_0xaf0b('0x8c')](_0x167380)[_0xaf0b('0x2b')](function(_0x2023ff){var _0x13dc3a={'role':_0xda584c[_0xaf0b('0x8d')][_0xaf0b('0x8e')],'userProfileId':_0xda584c[_0xaf0b('0x8d')][_0xaf0b('0x8f')]};if(!_0x13dc3a)throw new Error(_0xaf0b('0x90'));if(_0x13dc3a[_0xaf0b('0x8e')]==='user'){var _0x180783=_0x2023ff['get']({'plain':!![]});return db[_0xaf0b('0x91')]['find']({'where':{'name':_0xaf0b('0x2e'),'userProfileId':_0x13dc3a[_0xaf0b('0x8f')]},'raw':!![]})[_0xaf0b('0x2b')](function(_0x3d4cd0){if(_0x3d4cd0&&_0x3d4cd0[_0xaf0b('0x92')]===0x0){return db[_0xaf0b('0x2f')][_0xaf0b('0x8c')]({'name':_0x180783[_0xaf0b('0x31')],'resourceId':_0x180783['id'],'type':_0x3d4cd0['name'],'sectionId':_0x3d4cd0['id']},{})['then'](function(){return _0x2023ff;});}else{return _0x2023ff;}})['catch'](function(_0x1550cf){logger[_0xaf0b('0x30')](_0xaf0b('0x93'),_0x1550cf);throw _0x1550cf;});}return _0x2023ff;})[_0xaf0b('0x2b')](respondWithResult(_0x4d73da,null))[_0xaf0b('0x4a')](handleError(_0x4d73da,null));}});}catch(_0x4f73b5){_0x4d73da[_0xaf0b('0x20')](0x1f4)[_0xaf0b('0x32')](_0x4f73b5);}};function removeReferences(_0x2e3d79,_0x4426a7){try{if(_0x2e3d79){fs[_0xaf0b('0x63')](_0x2e3d79);logger[_0xaf0b('0x6a')]('Zip\x20archive\x20removed');}if(_0x4426a7){rimraf(_0x4426a7,function(){});logger['info'](_0xaf0b('0x94'));}}catch(_0x58b820){logger[_0xaf0b('0x30')](_0x58b820);}}exports[_0xaf0b('0x2a')]=function(_0x5e5255,_0xfe6110,_0x498604){return db['Plugin'][_0xaf0b('0x4c')]({'where':{'id':_0x5e5255[_0xaf0b('0x4d')]['id']}})[_0xaf0b('0x2b')](handleEntityNotFound(_0xfe6110,null))[_0xaf0b('0x2b')](saveUpdates(_0x5e5255['body'],null))[_0xaf0b('0x2b')](respondWithResult(_0xfe6110,null))['catch'](handleError(_0xfe6110,null));};exports['delete']=function(_0x36b2b2,_0x3740bc,_0xffdd8f){return db['Plugin'][_0xaf0b('0x4c')]({'where':{'id':_0x36b2b2[_0xaf0b('0x4d')]['id']}})[_0xaf0b('0x2b')](function(_0x1d7fc2){if(_0x1d7fc2){return _0x1d7fc2[_0xaf0b('0x2c')]();}})[_0xaf0b('0x2b')](function(_0x589040){rimraf(path[_0xaf0b('0x4f')](config[_0xaf0b('0x50')],_0xaf0b('0x51'),path[_0xaf0b('0x95')](_0x589040[_0xaf0b('0x4e')])),function(){});return _0x589040;})['then'](handleEntityNotFound(_0x3740bc,null))[_0xaf0b('0x2b')](respondWithStatusCode(_0x3740bc,null))[_0xaf0b('0x4a')](handleError(_0x3740bc,null));};exports[_0xaf0b('0x96')]=function(_0x1cc9b7,_0x307f44,_0x4a3b27){return BPromise[_0xaf0b('0x97')]()[_0xaf0b('0x2b')](function(){if(!_0x1cc9b7['query'][_0xaf0b('0x4e')]){throw new Error(_0xaf0b('0x98'));}if(!_0x1cc9b7[_0xaf0b('0x39')][_0xaf0b('0x99')]){throw new Error(_0xaf0b('0x9a'));}var _0xc7f905=_0x1cc9b7[_0xaf0b('0x39')][_0xaf0b('0x9b')]?_0x1cc9b7[_0xaf0b('0x39')][_0xaf0b('0x9b')]+':'+_0x1cc9b7[_0xaf0b('0x39')][_0xaf0b('0x99')]:'http://localhost:'+_0x1cc9b7[_0xaf0b('0x39')][_0xaf0b('0x99')];var _0x27a76c=_0x1cc9b7[_0xaf0b('0x39')][_0xaf0b('0x21')]?_0x1cc9b7[_0xaf0b('0x39')][_0xaf0b('0x21')]:!![];var _0xf616b=_0x1cc9b7[_0xaf0b('0x39')][_0xaf0b('0x9c')]?_0x1cc9b7[_0xaf0b('0x39')][_0xaf0b('0x9c')]:null;var _0x54a75c={'method':_0x1cc9b7[_0xaf0b('0x9d')],'uri':util[_0xaf0b('0x52')]('%s%s',_0xc7f905,_0x1cc9b7[_0xaf0b('0x39')][_0xaf0b('0x4e')]),'json':_0x27a76c,'resolveWithFullResponse':!![],'encoding':_0xf616b,'qs':_0x1cc9b7[_0xaf0b('0x39')]};if(_0x1cc9b7[_0xaf0b('0x9e')]){_0x54a75c['headers']=_0x1cc9b7['headers'];if(_0x54a75c[_0xaf0b('0x9e')][_0xaf0b('0x9f')]){delete _0x54a75c[_0xaf0b('0x9e')][_0xaf0b('0x9f')];}}if(_0x54a75c['headers'][_0xaf0b('0xa0')]){delete _0x54a75c[_0xaf0b('0x9e')][_0xaf0b('0xa0')];}return rp(_0x54a75c);})['then'](function(_0x3a6f0b){if(_0x3a6f0b){_0x307f44[_0xaf0b('0x26')](_0x3a6f0b['headers']);logger[_0xaf0b('0x6a')](_0x3a6f0b[_0xaf0b('0x8d')]);if(_[_0xaf0b('0xa1')](_0x1cc9b7['query'][_0xaf0b('0x4e')],_0xaf0b('0x61'))&&_0x3a6f0b[_0xaf0b('0xa2')]==0x1f4){return _0x307f44[_0xaf0b('0x1e')](_0x3a6f0b[_0xaf0b('0xa2')]);}else{return _0x307f44['status'](_0x3a6f0b['statusCode'])[_0xaf0b('0x32')](_0x3a6f0b[_0xaf0b('0x8d')]);}}else{return _0x307f44[_0xaf0b('0x1e')](0xc8);}})[_0xaf0b('0x4a')](handleError(_0x307f44,null));};exports['webhookPost']=function(_0x4c8bbd,_0x4ef759,_0x4cb9bd){return BPromise[_0xaf0b('0x97')]()[_0xaf0b('0x2b')](function(){if(!_0x4c8bbd['query']['path']){throw new Error(_0xaf0b('0x98'));}if(!_0x4c8bbd[_0xaf0b('0x39')]['port']){throw new Error(_0xaf0b('0x9a'));}var _0xa11245=_0x4c8bbd[_0xaf0b('0x39')][_0xaf0b('0x9b')]?_0x4c8bbd[_0xaf0b('0x39')]['hostname']+':'+_0x4c8bbd['query'][_0xaf0b('0x99')]:_0xaf0b('0xa3')+_0x4c8bbd[_0xaf0b('0x39')][_0xaf0b('0x99')];var _0x53bdb9=_0x4c8bbd['query'][_0xaf0b('0x21')]?_0x4c8bbd['query'][_0xaf0b('0x21')]:!![];var _0x4e8416=_0x4c8bbd[_0xaf0b('0x39')]['encoding']?_0x4c8bbd[_0xaf0b('0x39')][_0xaf0b('0x9c')]:null;var _0x188a06={'method':_0x4c8bbd[_0xaf0b('0x9d')],'uri':util[_0xaf0b('0x52')]('%s%s',_0xa11245,_0x4c8bbd[_0xaf0b('0x39')][_0xaf0b('0x4e')]),'json':_0x53bdb9,'resolveWithFullResponse':!![],'encoding':_0x4e8416,'body':_0x4c8bbd[_0xaf0b('0x8d')]};if(_0x4c8bbd[_0xaf0b('0x9e')]){_0x188a06['headers']=_0x4c8bbd[_0xaf0b('0x9e')];if(_0x188a06['headers'][_0xaf0b('0x9f')]){delete _0x188a06[_0xaf0b('0x9e')][_0xaf0b('0x9f')];}}if(_0x188a06[_0xaf0b('0x9e')][_0xaf0b('0xa0')]){delete _0x188a06['headers']['content-type'];}return rp(_0x188a06);})[_0xaf0b('0x2b')](function(_0x123daf){if(_0x123daf){_0x4ef759['set'](_0x123daf['headers']);logger[_0xaf0b('0x6a')](_0x123daf[_0xaf0b('0x8d')]);return _0x4ef759[_0xaf0b('0x20')](_0x123daf[_0xaf0b('0xa2')])[_0xaf0b('0x32')](_0x123daf[_0xaf0b('0x8d')]);}else{return _0x4ef759['sendStatus'](0xc8);}})['catch'](handleError(_0x4ef759,null));};