Built motion from commit 3e059bc2.|2.5.32
[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 _0xcc2a=['offset','undefined','limit','count','set','Content-Range','reject','save','then','destroy','Plugins','UserProfileResource','error','stack','name','send','index','Plugin','rawAttributes','fieldName','type','key','model','map','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','keys','includeAll','find','download','join','root','server/files/plugins','format','basename','createWriteStream','zip','code','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','**/*','node_modules/**/*','attachments/**/*','finalize','close','Plugin\x20not\x20found','%s.zip','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','upload','file','extname','Invalid\x20plugin\x20structure','lstatSync','isFile','readdirSync','some','manifest.json','readFileSync','parse','Invalid\x20manifest:\x20name\x20missing','parameters','html','views','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','icon','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','Warning:\x20agent\x20view\x20not\x20specified','scriptPath','create','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','get','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','dirname','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','method','headers','content-length','statusCode','%s%s','content-type','eml-format','fast-json-patch','bluebird','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','rimraf','archiver','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','defaults','redis','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','status','end','json'];(function(_0x228dfc,_0x5a56fe){var _0x515c7a=function(_0x7d9043){while(--_0x7d9043){_0x228dfc['push'](_0x228dfc['shift']());}};_0x515c7a(++_0x5a56fe);}(_0xcc2a,0x1ca));var _0xacc2=function(_0x337482,_0x1237ce){_0x337482=_0x337482-0x0;var _0x35376f=_0xcc2a[_0x337482];return _0x35376f;};'use strict';var emlformat=require(_0xacc2('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xacc2('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xacc2('0x2'));var Mustache=require('mustache');var util=require(_0xacc2('0x3'));var path=require(_0xacc2('0x4'));var sox=require(_0xacc2('0x5'));var csv=require(_0xacc2('0x6'));var ejs=require(_0xacc2('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xacc2('0x8'));var squel=require('squel');var crypto=require(_0xacc2('0x9'));var jsforce=require(_0xacc2('0xa'));var deskjs=require(_0xacc2('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var extract=require('extract-zip');var rimraf=require(_0xacc2('0xc'));var archiver=require(_0xacc2('0xd'));var Redis=require(_0xacc2('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xacc2('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xacc2('0x10'));var logger=require(_0xacc2('0x11'))(_0xacc2('0x12'));var utils=require(_0xacc2('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0xacc2('0x14'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xacc2('0x15')](config[_0xacc2('0x16')],{'host':_0xacc2('0x17'),'port':0x18eb});var socket=require(_0xacc2('0x18'))(new Redis(config[_0xacc2('0x16')]));require(_0xacc2('0x19'))[_0xacc2('0x1a')](socket);function respondWithStatusCode(_0x3f1471,_0x25a751){_0x25a751=_0x25a751||0xcc;return function(_0x3c537c){if(_0x3c537c){return _0x3f1471[_0xacc2('0x1b')](_0x25a751);}return _0x3f1471[_0xacc2('0x1c')](_0x25a751)[_0xacc2('0x1d')]();};}function respondWithResult(_0x9d7483,_0x3fada1){_0x3fada1=_0x3fada1||0xc8;return function(_0x2ecdc4){if(_0x2ecdc4){return _0x9d7483[_0xacc2('0x1c')](_0x3fada1)[_0xacc2('0x1e')](_0x2ecdc4);}};}function respondWithFilteredResult(_0x566696,_0x383467){return function(_0x516bd5){if(_0x516bd5){var _0x191258=typeof _0x383467[_0xacc2('0x1f')]===_0xacc2('0x20')&&typeof _0x383467[_0xacc2('0x21')]===_0xacc2('0x20');var _0x3f4b53=_0x516bd5['count'];var _0x484fac=_0x191258?0x0:_0x383467[_0xacc2('0x1f')];var _0x1769a8=_0x191258?_0x516bd5[_0xacc2('0x22')]:_0x383467[_0xacc2('0x1f')]+_0x383467[_0xacc2('0x21')];var _0xa8f10e;if(_0x1769a8>=_0x3f4b53){_0x1769a8=_0x3f4b53;_0xa8f10e=0xc8;}else{_0xa8f10e=0xce;}_0x566696[_0xacc2('0x1c')](_0xa8f10e);return _0x566696[_0xacc2('0x23')](_0xacc2('0x24'),_0x484fac+'-'+_0x1769a8+'/'+_0x3f4b53)[_0xacc2('0x1e')](_0x516bd5);}return null;};}function patchUpdates(_0x4ffc69){return function(_0x3142a6){try{jsonpatch['apply'](_0x3142a6,_0x4ffc69,!![]);}catch(_0x4306e7){return BPromise[_0xacc2('0x25')](_0x4306e7);}return _0x3142a6[_0xacc2('0x26')]();};}function saveUpdates(_0x4deb2e,_0x16f25b){return function(_0x351ea0){if(_0x351ea0){return _0x351ea0['update'](_0x4deb2e)[_0xacc2('0x27')](function(_0x397c66){return _0x397c66;});}return null;};}function removeEntity(_0x21a241,_0x571c44){return function(_0x3dcf39){if(_0x3dcf39){return _0x3dcf39[_0xacc2('0x28')]()[_0xacc2('0x27')](function(){var _0x566912=_0x3dcf39['get']({'plain':!![]});var _0x110a4e=_0xacc2('0x29');return db[_0xacc2('0x2a')][_0xacc2('0x28')]({'where':{'type':_0x110a4e,'resourceId':_0x566912['id']}})[_0xacc2('0x27')](function(){return _0x3dcf39;});})[_0xacc2('0x27')](function(){_0x21a241[_0xacc2('0x1c')](0xcc)[_0xacc2('0x1d')]();});}};}function handleEntityNotFound(_0x4d3582,_0x5239c1){return function(_0x5e179e){if(!_0x5e179e){_0x4d3582['sendStatus'](0x194);}return _0x5e179e;};}function handleError(_0x3cc154,_0x162b9a){_0x162b9a=_0x162b9a||0x1f4;return function(_0x17fc56){logger[_0xacc2('0x2b')](_0x17fc56[_0xacc2('0x2c')]);if(_0x17fc56[_0xacc2('0x2d')]){delete _0x17fc56['name'];}_0x3cc154[_0xacc2('0x1c')](_0x162b9a)[_0xacc2('0x2e')](_0x17fc56);};}exports[_0xacc2('0x2f')]=function(_0x385ca2,_0x362523){var _0x57013b={},_0x3cbdae={},_0x387b6a={'count':0x0,'rows':[]};var _0x3a972a=_['map'](db[_0xacc2('0x30')][_0xacc2('0x31')],function(_0x3a693c){return{'name':_0x3a693c[_0xacc2('0x32')],'type':_0x3a693c[_0xacc2('0x33')][_0xacc2('0x34')]};});_0x3cbdae[_0xacc2('0x35')]=_[_0xacc2('0x36')](_0x3a972a,_0xacc2('0x2d'));_0x3cbdae[_0xacc2('0x37')]=_['keys'](_0x385ca2[_0xacc2('0x37')]);_0x3cbdae['filters']=_[_0xacc2('0x38')](_0x3cbdae[_0xacc2('0x35')],_0x3cbdae[_0xacc2('0x37')]);_0x57013b[_0xacc2('0x39')]=_['intersection'](_0x3cbdae[_0xacc2('0x35')],qs[_0xacc2('0x3a')](_0x385ca2['query'][_0xacc2('0x3a')]));_0x57013b[_0xacc2('0x39')]=_0x57013b['attributes'][_0xacc2('0x3b')]?_0x57013b[_0xacc2('0x39')]:_0x3cbdae[_0xacc2('0x35')];if(!_0x385ca2[_0xacc2('0x37')][_0xacc2('0x3c')](_0xacc2('0x3d'))){_0x57013b[_0xacc2('0x21')]=qs[_0xacc2('0x21')](_0x385ca2[_0xacc2('0x37')]['limit']);_0x57013b['offset']=qs[_0xacc2('0x1f')](_0x385ca2[_0xacc2('0x37')]['offset']);}_0x57013b['order']=qs[_0xacc2('0x3e')](_0x385ca2[_0xacc2('0x37')][_0xacc2('0x3e')]);_0x57013b[_0xacc2('0x3f')]=qs[_0xacc2('0x40')](_['pick'](_0x385ca2['query'],_0x3cbdae['filters']),_0x3a972a);if(_0x385ca2[_0xacc2('0x37')][_0xacc2('0x41')]){_0x57013b[_0xacc2('0x3f')]=_[_0xacc2('0x42')](_0x57013b[_0xacc2('0x3f')],{'$or':_[_0xacc2('0x36')](_0x3a972a,function(_0x4a3033){if(_0x4a3033['type']!==_0xacc2('0x43')){var _0x589906={};_0x589906[_0x4a3033[_0xacc2('0x2d')]]={'$like':'%'+_0x385ca2[_0xacc2('0x37')][_0xacc2('0x41')]+'%'};return _0x589906;}})});}_0x57013b=_[_0xacc2('0x42')]({},_0x57013b,_0x385ca2[_0xacc2('0x44')]);var _0x49758e={'where':_0x57013b['where']};return db[_0xacc2('0x30')][_0xacc2('0x22')](_0x49758e)[_0xacc2('0x27')](function(_0x50d9e7){_0x387b6a[_0xacc2('0x22')]=_0x50d9e7;if(_0x385ca2['query']['includeAll']){_0x57013b[_0xacc2('0x45')]=[{'all':!![]}];}return db[_0xacc2('0x30')][_0xacc2('0x46')](_0x57013b);})[_0xacc2('0x27')](function(_0x4cf9f9){_0x387b6a[_0xacc2('0x47')]=_0x4cf9f9;return _0x387b6a;})[_0xacc2('0x27')](respondWithFilteredResult(_0x362523,_0x57013b))[_0xacc2('0x48')](handleError(_0x362523,null));};exports[_0xacc2('0x49')]=function(_0x9944bd,_0x28d18b){var _0xd02e0c={'raw':!![],'where':{'id':_0x9944bd[_0xacc2('0x4a')]['id']}},_0x3bc31b={};_0x3bc31b['model']=_['keys'](db[_0xacc2('0x30')][_0xacc2('0x31')]);_0x3bc31b[_0xacc2('0x37')]=_[_0xacc2('0x4b')](_0x9944bd[_0xacc2('0x37')]);_0x3bc31b[_0xacc2('0x40')]=_[_0xacc2('0x38')](_0x3bc31b[_0xacc2('0x35')],_0x3bc31b[_0xacc2('0x37')]);_0xd02e0c[_0xacc2('0x39')]=_['intersection'](_0x3bc31b[_0xacc2('0x35')],qs[_0xacc2('0x3a')](_0x9944bd[_0xacc2('0x37')]['fields']));_0xd02e0c['attributes']=_0xd02e0c[_0xacc2('0x39')][_0xacc2('0x3b')]?_0xd02e0c[_0xacc2('0x39')]:_0x3bc31b[_0xacc2('0x35')];if(_0x9944bd['query'][_0xacc2('0x4c')]){_0xd02e0c[_0xacc2('0x45')]=[{'all':!![]}];}_0xd02e0c=_['merge']({},_0xd02e0c,_0x9944bd[_0xacc2('0x44')]);return db[_0xacc2('0x30')][_0xacc2('0x4d')](_0xd02e0c)['then'](handleEntityNotFound(_0x28d18b,null))[_0xacc2('0x27')](respondWithResult(_0x28d18b,null))[_0xacc2('0x48')](handleError(_0x28d18b,null));};exports[_0xacc2('0x4e')]=function(_0x2b1414,_0x506cbf,_0x5adee8){return db[_0xacc2('0x30')][_0xacc2('0x4d')]({'where':{'id':_0x2b1414[_0xacc2('0x4a')]['id']},'attributes':[_0xacc2('0x2d'),_0xacc2('0x4')],'raw':!![]})[_0xacc2('0x27')](handleEntityNotFound(_0x506cbf,null))[_0xacc2('0x27')](function(_0x24109c){if(_0x24109c){var _0x465a76=path[_0xacc2('0x4f')](config[_0xacc2('0x50')],_0xacc2('0x51'),util[_0xacc2('0x52')]('%s.zip',path[_0xacc2('0x53')](_0x24109c['path'])));var _0x48e229=fs[_0xacc2('0x54')](_0x465a76);var _0x20cf79=archiver(_0xacc2('0x55'),{'zlib':{'level':0x9}});_0x20cf79['on']('warning',function(_0x1d6beb){if(_0x1d6beb[_0xacc2('0x56')]===_0xacc2('0x57')){logger[_0xacc2('0x2b')](_0x1d6beb);}else{throw new db[(_0xacc2('0x58'))][(_0xacc2('0x59'))](_0xacc2('0x5a'));}});_0x20cf79['on']('error',function(_0x2d4934){throw new db[(_0xacc2('0x58'))][(_0xacc2('0x59'))](_0xacc2('0x5a'));});_0x20cf79[_0xacc2('0x5b')](_0x48e229);_0x20cf79[_0xacc2('0x5c')](_0xacc2('0x5d'),{'cwd':path[_0xacc2('0x4f')](config[_0xacc2('0x50')],_0xacc2('0x51'),path['dirname'](_0x24109c[_0xacc2('0x4')])),'ignore':[path[_0xacc2('0x4f')](path[_0xacc2('0x53')](_0x24109c[_0xacc2('0x4')]),_0xacc2('0x5e')),path['join'](path[_0xacc2('0x53')](_0x24109c['path']),_0xacc2('0x5f'))],'nodir':!![]})[_0xacc2('0x60')]();_0x48e229['on'](_0xacc2('0x61'),function(){if(!fs['existsSync'](_0x465a76)){throw new db[(_0xacc2('0x58'))][(_0xacc2('0x59'))](_0xacc2('0x62'));}return _0x506cbf[_0xacc2('0x4e')](_0x465a76,util['format'](_0xacc2('0x63'),path[_0xacc2('0x53')](_0x24109c[_0xacc2('0x4')])),function(_0x198156){if(_0x198156){throw new db[(_0xacc2('0x58'))]['Error'](_0xacc2('0x64'));}fs[_0xacc2('0x65')](_0x465a76);logger[_0xacc2('0x66')](_0xacc2('0x67'));logger[_0xacc2('0x66')](_0xacc2('0x68'));});});}return null;})[_0xacc2('0x48')](handleError(_0x506cbf,null));};exports[_0xacc2('0x69')]=function(_0x204501,_0x351304,_0x23a810){var _0x4e45c8=path[_0xacc2('0x53')](_0x204501[_0xacc2('0x6a')]['filename'],path[_0xacc2('0x6b')](_0x204501[_0xacc2('0x6a')]['filename']));var _0x3a9b40=path[_0xacc2('0x4f')](config[_0xacc2('0x50')],_0xacc2('0x51'),_0x204501[_0xacc2('0x6a')]['filename']);var _0x1f7b7d=path[_0xacc2('0x4f')](config[_0xacc2('0x50')],_0xacc2('0x51'),_0x4e45c8);logger[_0xacc2('0x66')]('Plugin\x20upload\x20filepath:\x20%s',_0x3a9b40);logger['info']('Plugin\x20upload\x20destination:\x20%s',_0x1f7b7d);try{fs['chmodSync'](_0x3a9b40,parseInt('0777',0x8));extract(_0x3a9b40,{'dir':_0x1f7b7d},function(_0x2019df){if(_0x2019df){logger['error'](_0x2019df);handleError(_0x2019df,!![]);};var _0x4a5163=fs['readdirSync'](_0x1f7b7d);if(_0x4a5163[_0xacc2('0x3b')]>0x1){removeReferences(_0x3a9b40,_0x1f7b7d);logger[_0xacc2('0x2b')](_0xacc2('0x6c'));return _0x23a810(new Error(_0xacc2('0x6c')));}var _0x3bfbf8=fs[_0xacc2('0x6d')](path[_0xacc2('0x4f')](_0x1f7b7d,_0x4a5163[0x0]));if(_0x3bfbf8[_0xacc2('0x6e')]()){removeReferences(_0x3a9b40,_0x1f7b7d);logger[_0xacc2('0x2b')](_0xacc2('0x6c'));return _0x23a810(new Error(_0xacc2('0x6c')));}if(_0x3bfbf8['isDirectory']()){var _0x12c616=fs[_0xacc2('0x6f')](path['join'](_0x1f7b7d,_0x4a5163[0x0]));if(_0x12c616[_0xacc2('0x3b')]===0x0){removeReferences(_0x3a9b40,_0x1f7b7d);logger[_0xacc2('0x2b')](_0xacc2('0x6c'));return _0x23a810(new Error(_0xacc2('0x6c')));}var _0x69fca7=_0x12c616[_0xacc2('0x70')](function(_0x144b49){return _0x144b49===_0xacc2('0x71');});if(!_0x69fca7){return _0x23a810(new Error('Plugin\x20manifest\x20missing'));}var _0x40caff=fs[_0xacc2('0x72')](path[_0xacc2('0x4f')](_0x1f7b7d,_0x4a5163[0x0],_0xacc2('0x71')));var _0xfcda9a=JSON[_0xacc2('0x73')](_0x40caff);if(_0xacc2('0x20')==typeof _0xfcda9a[_0xacc2('0x2d')]){return _0x23a810(new Error(_0xacc2('0x74')));}if(_0xacc2('0x20')==typeof _0xfcda9a[_0xacc2('0x33')]){return _0x23a810(new Error('Invalid\x20manifest:\x20type\x20missing'));}if(_0xacc2('0x20')==typeof _0xfcda9a['version']){return _0x23a810(new Error('Invalid\x20manifest:\x20version\x20not\x20specified'));}if(_0xacc2('0x20')==typeof _0xfcda9a[_0xacc2('0x75')]){return _0x23a810(new Error('Invalid\x20manifest:\x20parameters\x20missing'));}if(_0xfcda9a['type']===_0xacc2('0x76')){if('undefined'==typeof _0xfcda9a['parameters']['views']){return _0x23a810(new Error('Invalid\x20manifest:\x20views\x20missing'));}if(_0xacc2('0x20')==typeof _0xfcda9a[_0xacc2('0x75')][_0xacc2('0x77')][_0xacc2('0x78')]&&_0xacc2('0x20')==typeof _0xfcda9a[_0xacc2('0x75')]['views'][_0xacc2('0x79')]){return _0x23a810(new Error(_0xacc2('0x7a')));}}else if(_0xfcda9a[_0xacc2('0x33')]===_0xacc2('0x7b')){if(_0xacc2('0x20')==typeof _0xfcda9a[_0xacc2('0x75')][_0xacc2('0x7c')]){return _0x23a810(new Error(_0xacc2('0x7d')));}if(_0xacc2('0x20')==typeof _0xfcda9a[_0xacc2('0x75')]['scriptPath']){return _0x23a810(new Error('Invalid\x20manifest:\x20script\x20path\x20missing'));}}else{return _0x23a810(new Error(_0xacc2('0x7e')));}var _0x17a921=_0xfcda9a[_0xacc2('0x2d')];var _0x49996e=_0xfcda9a[_0xacc2('0x7f')];var _0x31bb1f=_0xfcda9a[_0xacc2('0x33')];var _0x3dd405=_0xfcda9a[_0xacc2('0x80')]?_0xfcda9a[_0xacc2('0x80')]:'always';var _0x16afe4=_0xfcda9a[_0xacc2('0x81')]?_0xfcda9a[_0xacc2('0x81')]:'icon-apps';var _0xd32c92='';var _0x49e938='';var _0x42cb80='';var _0xd42ad8='';var _0x1b2dfa=_0xfcda9a['version'];if(_0x31bb1f===_0xacc2('0x76')){if('undefined'!=typeof _0xfcda9a['parameters'][_0xacc2('0x77')]['admin']){var _0x341961=_0xfcda9a[_0xacc2('0x75')][_0xacc2('0x77')]['admin'];if(!/^(f|ht)tps?:\/\//i[_0xacc2('0x82')](_0x341961)){_0xd32c92=path['join'](_0xacc2('0x83'),_0x4e45c8,_0x4a5163[0x0],_0x341961);}else{_0xd32c92=_0x341961;}}else{logger[_0xacc2('0x66')](_0xacc2('0x84'));}if('undefined'!=typeof _0xfcda9a['parameters'][_0xacc2('0x77')][_0xacc2('0x79')]){var _0xb21cf6=_0xfcda9a[_0xacc2('0x75')]['views'][_0xacc2('0x79')];if(!/^(f|ht)tps?:\/\//i[_0xacc2('0x82')](_0xb21cf6)){_0x49e938=path[_0xacc2('0x4f')](_0xacc2('0x83'),_0x4e45c8,_0x4a5163[0x0],_0xb21cf6);}else{_0x49e938=_0xb21cf6;}}else{logger[_0xacc2('0x66')](_0xacc2('0x85'));}}else if(_0x31bb1f===_0xacc2('0x7b')){_0x42cb80=_0xfcda9a[_0xacc2('0x75')][_0xacc2('0x7c')];_0xd42ad8=_0xfcda9a[_0xacc2('0x75')][_0xacc2('0x86')];if(_0xacc2('0x20')!=typeof _0xfcda9a[_0xacc2('0x75')][_0xacc2('0x77')]){if(_0xacc2('0x20')!=typeof _0xfcda9a[_0xacc2('0x75')][_0xacc2('0x77')][_0xacc2('0x78')]){var _0x341961=_0xfcda9a['parameters'][_0xacc2('0x77')][_0xacc2('0x78')];if(!/^(f|ht)tps?:\/\//i[_0xacc2('0x82')](_0x341961)){_0xd32c92=path['join']('plugins',_0x4e45c8,_0x4a5163[0x0],_0x341961);}else{_0xd32c92=_0x341961;}}if(_0xacc2('0x20')!=typeof _0xfcda9a[_0xacc2('0x75')][_0xacc2('0x77')][_0xacc2('0x79')]){var _0xb21cf6=_0xfcda9a[_0xacc2('0x75')][_0xacc2('0x77')][_0xacc2('0x79')];if(!/^(f|ht)tps?:\/\//i[_0xacc2('0x82')](_0xb21cf6)){_0x49e938=path[_0xacc2('0x4f')](_0xacc2('0x83'),_0x4e45c8,_0x4a5163[0x0],_0xb21cf6);}else{_0x49e938=_0xb21cf6;}}}}var _0x3c19fd={'name':_0x17a921,'description':_0x49996e,'path':path[_0xacc2('0x4f')](_0x4e45c8,_0x4a5163[0x0]),'type':_0x31bb1f,'sidebar':_0x3dd405,'icon':_0x16afe4,'adminUrl':_0xd32c92,'agentUrl':_0x49e938,'scriptName':_0x42cb80,'scriptPath':_0xd42ad8,'version':_0x1b2dfa};removeReferences(_0x3a9b40,null);return db['Plugin'][_0xacc2('0x87')](_0x3c19fd)[_0xacc2('0x27')](function(_0xef04a){var _0xabec1c={'role':_0x204501[_0xacc2('0x88')][_0xacc2('0x89')],'userProfileId':_0x204501[_0xacc2('0x88')][_0xacc2('0x8a')]};if(!_0xabec1c)throw new Error(_0xacc2('0x8b'));if(_0xabec1c[_0xacc2('0x89')]===_0xacc2('0x8c')){var _0x523b49=_0xef04a[_0xacc2('0x8d')]({'plain':!![]});return db[_0xacc2('0x8e')][_0xacc2('0x4d')]({'where':{'name':_0xacc2('0x29'),'userProfileId':_0xabec1c[_0xacc2('0x8a')]},'raw':!![]})[_0xacc2('0x27')](function(_0xfe6884){if(_0xfe6884&&_0xfe6884[_0xacc2('0x8f')]===0x0){return db[_0xacc2('0x2a')][_0xacc2('0x87')]({'name':_0x523b49[_0xacc2('0x2d')],'resourceId':_0x523b49['id'],'type':_0xfe6884[_0xacc2('0x2d')],'sectionId':_0xfe6884['id']},{})['then'](function(){return _0xef04a;});}else{return _0xef04a;}})[_0xacc2('0x48')](function(_0x383e96){logger[_0xacc2('0x2b')](_0xacc2('0x90'),_0x383e96);throw _0x383e96;});}return _0xef04a;})[_0xacc2('0x27')](respondWithResult(_0x351304,null))[_0xacc2('0x48')](handleError(_0x351304,null));}});}catch(_0x386ba2){_0x351304[_0xacc2('0x1c')](0x1f4)[_0xacc2('0x2e')](_0x386ba2);}};function removeReferences(_0x5d077a,_0x3e43d5){try{if(_0x5d077a){fs[_0xacc2('0x65')](_0x5d077a);logger[_0xacc2('0x66')](_0xacc2('0x91'));}if(_0x3e43d5){rimraf(_0x3e43d5,function(){});logger[_0xacc2('0x66')](_0xacc2('0x92'));}}catch(_0x35a4ac){logger[_0xacc2('0x2b')](_0x35a4ac);}}exports['update']=function(_0x3a91e8,_0x3cfd44,_0x2ac941){return db[_0xacc2('0x30')]['find']({'where':{'id':_0x3a91e8[_0xacc2('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3cfd44,null))[_0xacc2('0x27')](saveUpdates(_0x3a91e8[_0xacc2('0x88')],null))[_0xacc2('0x27')](respondWithResult(_0x3cfd44,null))[_0xacc2('0x48')](handleError(_0x3cfd44,null));};exports[_0xacc2('0x93')]=function(_0x3465ea,_0x12549,_0x20651e){return db[_0xacc2('0x30')][_0xacc2('0x4d')]({'where':{'id':_0x3465ea[_0xacc2('0x4a')]['id']}})[_0xacc2('0x27')](function(_0x33fab5){if(_0x33fab5){return _0x33fab5['destroy']();}})[_0xacc2('0x27')](function(_0x2e59ae){rimraf(path['join'](config[_0xacc2('0x50')],'server/files/plugins',path[_0xacc2('0x94')](_0x2e59ae[_0xacc2('0x4')])),function(){});return _0x2e59ae;})[_0xacc2('0x27')](handleEntityNotFound(_0x12549,null))[_0xacc2('0x27')](respondWithStatusCode(_0x12549,null))[_0xacc2('0x48')](handleError(_0x12549,null));};exports[_0xacc2('0x95')]=function(_0x4980f1,_0x35d038,_0x261ae7){return BPromise[_0xacc2('0x96')]()[_0xacc2('0x27')](function(){if(!_0x4980f1[_0xacc2('0x37')][_0xacc2('0x4')]){throw new Error(_0xacc2('0x97'));}if(!_0x4980f1[_0xacc2('0x37')][_0xacc2('0x98')]){throw new Error(_0xacc2('0x99'));}var _0x375f75=_0x4980f1[_0xacc2('0x37')][_0xacc2('0x9a')]?_0x4980f1[_0xacc2('0x37')][_0xacc2('0x9a')]+':'+_0x4980f1[_0xacc2('0x37')]['port']:_0xacc2('0x9b')+_0x4980f1[_0xacc2('0x37')]['port'];var _0xbfb8de=_0x4980f1[_0xacc2('0x37')][_0xacc2('0x1e')]?_0x4980f1[_0xacc2('0x37')][_0xacc2('0x1e')]:!![];var _0x292f3c=_0x4980f1['query'][_0xacc2('0x9c')]?_0x4980f1[_0xacc2('0x37')][_0xacc2('0x9c')]:null;var _0x2b459d={'method':_0x4980f1[_0xacc2('0x9d')],'uri':util[_0xacc2('0x52')]('%s%s',_0x375f75,_0x4980f1['query'][_0xacc2('0x4')]),'json':_0xbfb8de,'resolveWithFullResponse':!![],'encoding':_0x292f3c,'qs':_0x4980f1[_0xacc2('0x37')]};if(_0x4980f1[_0xacc2('0x9e')]){_0x2b459d[_0xacc2('0x9e')]=_0x4980f1[_0xacc2('0x9e')];if(_0x2b459d['headers'][_0xacc2('0x9f')]){delete _0x2b459d[_0xacc2('0x9e')][_0xacc2('0x9f')];}}if(_0x2b459d['headers']['content-type']){delete _0x2b459d[_0xacc2('0x9e')]['content-type'];}return rp(_0x2b459d);})[_0xacc2('0x27')](function(_0x1a72fc){if(_0x1a72fc){_0x35d038[_0xacc2('0x23')](_0x1a72fc[_0xacc2('0x9e')]);logger['info'](_0x1a72fc['body']);if(_['endsWith'](_0x4980f1[_0xacc2('0x37')][_0xacc2('0x4')],_0xacc2('0x4e'))&&_0x1a72fc[_0xacc2('0xa0')]==0x1f4){return _0x35d038[_0xacc2('0x1b')](_0x1a72fc[_0xacc2('0xa0')]);}else{return _0x35d038[_0xacc2('0x1c')](_0x1a72fc['statusCode'])[_0xacc2('0x2e')](_0x1a72fc[_0xacc2('0x88')]);}}else{return _0x35d038['sendStatus'](0xc8);}})[_0xacc2('0x48')](handleError(_0x35d038,null));};exports['webhookPost']=function(_0x241e83,_0x2ffc28,_0x4c836a){return BPromise[_0xacc2('0x96')]()[_0xacc2('0x27')](function(){if(!_0x241e83['query'][_0xacc2('0x4')]){throw new Error(_0xacc2('0x97'));}if(!_0x241e83[_0xacc2('0x37')][_0xacc2('0x98')]){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x596daa=_0x241e83[_0xacc2('0x37')]['hostname']?_0x241e83[_0xacc2('0x37')]['hostname']+':'+_0x241e83[_0xacc2('0x37')]['port']:_0xacc2('0x9b')+_0x241e83[_0xacc2('0x37')][_0xacc2('0x98')];var _0x180ce8=_0x241e83[_0xacc2('0x37')][_0xacc2('0x1e')]?_0x241e83[_0xacc2('0x37')][_0xacc2('0x1e')]:!![];var _0x3ac1ea=_0x241e83[_0xacc2('0x37')][_0xacc2('0x9c')]?_0x241e83[_0xacc2('0x37')][_0xacc2('0x9c')]:null;var _0x161646={'method':_0x241e83[_0xacc2('0x9d')],'uri':util[_0xacc2('0x52')](_0xacc2('0xa1'),_0x596daa,_0x241e83[_0xacc2('0x37')][_0xacc2('0x4')]),'json':_0x180ce8,'resolveWithFullResponse':!![],'encoding':_0x3ac1ea,'body':_0x241e83[_0xacc2('0x88')]};if(_0x241e83[_0xacc2('0x9e')]){_0x161646['headers']=_0x241e83['headers'];if(_0x161646[_0xacc2('0x9e')][_0xacc2('0x9f')]){delete _0x161646[_0xacc2('0x9e')][_0xacc2('0x9f')];}}if(_0x161646[_0xacc2('0x9e')]['content-type']){delete _0x161646[_0xacc2('0x9e')][_0xacc2('0xa2')];}return rp(_0x161646);})[_0xacc2('0x27')](function(_0x110bd5){if(_0x110bd5){_0x2ffc28[_0xacc2('0x23')](_0x110bd5[_0xacc2('0x9e')]);logger[_0xacc2('0x66')](_0x110bd5[_0xacc2('0x88')]);return _0x2ffc28[_0xacc2('0x1c')](_0x110bd5[_0xacc2('0xa0')])['send'](_0x110bd5[_0xacc2('0x88')]);}else{return _0x2ffc28['sendStatus'](0xc8);}})[_0xacc2('0x48')](handleError(_0x2ffc28,null));};