100e6b5b6e7e98485bd725f8535b6a6c2740aa9e
[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 _0xb8cc=['UserProfileResource','error','name','send','index','map','Plugin','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','length','nolimit','sort','filters','pick','merge','VIRTUAL','filter','where','count','includeAll','rows','catch','show','keys','include','options','download','find','params','path','join','server/files/plugins','%s.zip','basename','warning','code','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','**/*','dirname','node_modules/**/*','close','Plugin\x20not\x20found','format','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','upload','file','filename','extname','root','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','Invalid\x20plugin\x20structure','isFile','isDirectory','readdirSync','some','manifest.json','Plugin\x20manifest\x20missing','parse','undefined','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20version\x20not\x20specified','Invalid\x20manifest:\x20parameters\x20missing','views','Invalid\x20manifest:\x20views\x20missing','parameters','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','always','icon','icon-apps','html','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','Warning:\x20agent\x20view\x20not\x20specified','admin','agent','create','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Zip\x20archive\x20removed','delete','\x27PATH\x27\x20parameter\x20not\x20specified','port','hostname','http://localhost:','encoding','method','%s%s','headers','content-length','content-type','endsWith','statusCode','webhookPost','\x27PORT\x27\x20parameter\x20not\x20specified','html-pdf','eml-format','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','extract-zip','rimraf','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','status','end','offset','limit','set','Content-Range','json','reject','save','update','then','destroy','get','Plugins'];(function(_0x575a38,_0x2e83d7){var _0x5a7bdd=function(_0x1bf478){while(--_0x1bf478){_0x575a38['push'](_0x575a38['shift']());}};_0x5a7bdd(++_0x2e83d7);}(_0xb8cc,0x1d4));var _0xcb8c=function(_0x49d20b,_0x5f1a3b){_0x49d20b=_0x49d20b-0x0;var _0x2eb0b9=_0xb8cc[_0x49d20b];return _0x2eb0b9;};'use strict';var pdf=require(_0xcb8c('0x0'));var emlformat=require(_0xcb8c('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xcb8c('0x2'));var moment=require('moment');var BPromise=require(_0xcb8c('0x3'));var Mustache=require(_0xcb8c('0x4'));var util=require(_0xcb8c('0x5'));var path=require('path');var sox=require(_0xcb8c('0x6'));var csv=require(_0xcb8c('0x7'));var ejs=require(_0xcb8c('0x8'));var fs=require('fs');var _=require(_0xcb8c('0x9'));var squel=require(_0xcb8c('0xa'));var crypto=require(_0xcb8c('0xb'));var jsforce=require(_0xcb8c('0xc'));var deskjs=require(_0xcb8c('0xd'));var toCsv=require(_0xcb8c('0x7'));var querystring=require(_0xcb8c('0xe'));var Papa=require(_0xcb8c('0xf'));var extract=require(_0xcb8c('0x10'));var rimraf=require(_0xcb8c('0x11'));var archiver=require('archiver');var Redis=require(_0xcb8c('0x12'));var authService=require(_0xcb8c('0x13'));var qs=require(_0xcb8c('0x14'));var as=require(_0xcb8c('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xcb8c('0x16'))(_0xcb8c('0x17'));var utils=require(_0xcb8c('0x18'));var config=require(_0xcb8c('0x19'));var db=require(_0xcb8c('0x1a'))['db'];config[_0xcb8c('0x1b')]=_[_0xcb8c('0x1c')](config[_0xcb8c('0x1b')],{'host':_0xcb8c('0x1d'),'port':0x18eb});var socket=require(_0xcb8c('0x1e'))(new Redis(config[_0xcb8c('0x1b')]));require(_0xcb8c('0x1f'))[_0xcb8c('0x20')](socket);function respondWithStatusCode(_0x29232c,_0x44381e){_0x44381e=_0x44381e||0xcc;return function(_0x30d74c){if(_0x30d74c){return _0x29232c[_0xcb8c('0x21')](_0x44381e);}return _0x29232c[_0xcb8c('0x22')](_0x44381e)[_0xcb8c('0x23')]();};}function respondWithResult(_0x5ac3a3,_0x4f4cf9){_0x4f4cf9=_0x4f4cf9||0xc8;return function(_0x2cdf0d){if(_0x2cdf0d){return _0x5ac3a3['status'](_0x4f4cf9)['json'](_0x2cdf0d);}};}function respondWithFilteredResult(_0x297983,_0x3a9218){return function(_0xee418a){if(_0xee418a){var _0x56f402=_0xee418a['count'],_0x2e13c3=_0x3a9218[_0xcb8c('0x24')],_0xdc7994=_0x3a9218[_0xcb8c('0x24')]+_0x3a9218[_0xcb8c('0x25')],_0x1f8079;if(_0xdc7994>=_0x56f402){_0xdc7994=_0x56f402;_0x1f8079=0xc8;}else{_0x1f8079=0xce;}_0x297983[_0xcb8c('0x22')](_0x1f8079);return _0x297983[_0xcb8c('0x26')](_0xcb8c('0x27'),_0x2e13c3+'-'+_0xdc7994+'/'+_0x56f402)[_0xcb8c('0x28')](_0xee418a);}return null;};}function patchUpdates(_0x94d2b0){return function(_0x506c32){try{jsonpatch['apply'](_0x506c32,_0x94d2b0,!![]);}catch(_0x1a4c6b){return BPromise[_0xcb8c('0x29')](_0x1a4c6b);}return _0x506c32[_0xcb8c('0x2a')]();};}function saveUpdates(_0x391846,_0x46a11c){return function(_0x36cf13){if(_0x36cf13){return _0x36cf13[_0xcb8c('0x2b')](_0x391846)[_0xcb8c('0x2c')](function(_0x35a20a){return _0x35a20a;});}return null;};}function removeEntity(_0x5d4896,_0x41b85e){return function(_0x5733e2){if(_0x5733e2){return _0x5733e2[_0xcb8c('0x2d')]()[_0xcb8c('0x2c')](function(){var _0xcfc4ed=_0x5733e2[_0xcb8c('0x2e')]({'plain':!![]});var _0x2b989a=_0xcb8c('0x2f');return db[_0xcb8c('0x30')]['destroy']({'where':{'type':_0x2b989a,'resourceId':_0xcfc4ed['id']}})[_0xcb8c('0x2c')](function(){return _0x5733e2;});})[_0xcb8c('0x2c')](function(){_0x5d4896[_0xcb8c('0x22')](0xcc)[_0xcb8c('0x23')]();});}};}function handleEntityNotFound(_0x803a61,_0x3fad57){return function(_0x4bc925){if(!_0x4bc925){_0x803a61[_0xcb8c('0x21')](0x194);}return _0x4bc925;};}function handleError(_0xca881a,_0x4f7a71){_0x4f7a71=_0x4f7a71||0x1f4;return function(_0xf99e03){logger[_0xcb8c('0x31')](_0xf99e03['stack']);if(_0xf99e03[_0xcb8c('0x32')]){delete _0xf99e03[_0xcb8c('0x32')];}_0xca881a[_0xcb8c('0x22')](_0x4f7a71)[_0xcb8c('0x33')](_0xf99e03);};}exports[_0xcb8c('0x34')]=function(_0x40797b,_0x1ee6f6){var _0x1f756c={},_0xb5f83a={},_0x3e6d6d={'count':0x0,'rows':[]};var _0x367a79=_[_0xcb8c('0x35')](db[_0xcb8c('0x36')][_0xcb8c('0x37')],function(_0x242175){return{'name':_0x242175[_0xcb8c('0x38')],'type':_0x242175[_0xcb8c('0x39')][_0xcb8c('0x3a')]};});_0xb5f83a[_0xcb8c('0x3b')]=_['map'](_0x367a79,_0xcb8c('0x32'));_0xb5f83a['query']=_['keys'](_0x40797b[_0xcb8c('0x3c')]);_0xb5f83a['filters']=_[_0xcb8c('0x3d')](_0xb5f83a[_0xcb8c('0x3b')],_0xb5f83a['query']);_0x1f756c[_0xcb8c('0x3e')]=_[_0xcb8c('0x3d')](_0xb5f83a[_0xcb8c('0x3b')],qs[_0xcb8c('0x3f')](_0x40797b['query'][_0xcb8c('0x3f')]));_0x1f756c[_0xcb8c('0x3e')]=_0x1f756c['attributes'][_0xcb8c('0x40')]?_0x1f756c[_0xcb8c('0x3e')]:_0xb5f83a[_0xcb8c('0x3b')];if(!_0x40797b[_0xcb8c('0x3c')]['hasOwnProperty'](_0xcb8c('0x41'))){_0x1f756c[_0xcb8c('0x25')]=qs[_0xcb8c('0x25')](_0x40797b[_0xcb8c('0x3c')][_0xcb8c('0x25')]);_0x1f756c[_0xcb8c('0x24')]=qs[_0xcb8c('0x24')](_0x40797b[_0xcb8c('0x3c')][_0xcb8c('0x24')]);}_0x1f756c['order']=qs[_0xcb8c('0x42')](_0x40797b[_0xcb8c('0x3c')][_0xcb8c('0x42')]);_0x1f756c['where']=qs[_0xcb8c('0x43')](_[_0xcb8c('0x44')](_0x40797b[_0xcb8c('0x3c')],_0xb5f83a[_0xcb8c('0x43')]),_0x367a79);if(_0x40797b[_0xcb8c('0x3c')]['filter']){_0x1f756c['where']=_[_0xcb8c('0x45')](_0x1f756c['where'],{'$or':_[_0xcb8c('0x35')](_0x367a79,function(_0x4d95e9){if(_0x4d95e9[_0xcb8c('0x39')]!==_0xcb8c('0x46')){var _0x1d7a95={};_0x1d7a95[_0x4d95e9[_0xcb8c('0x32')]]={'$like':'%'+_0x40797b[_0xcb8c('0x3c')][_0xcb8c('0x47')]+'%'};return _0x1d7a95;}})});}_0x1f756c=_[_0xcb8c('0x45')]({},_0x1f756c,_0x40797b['options']);var _0x104ad0={'where':_0x1f756c[_0xcb8c('0x48')]};return db[_0xcb8c('0x36')][_0xcb8c('0x49')](_0x104ad0)['then'](function(_0x4ff2c1){_0x3e6d6d[_0xcb8c('0x49')]=_0x4ff2c1;if(_0x40797b[_0xcb8c('0x3c')][_0xcb8c('0x4a')]){_0x1f756c['include']=[{'all':!![]}];}return db[_0xcb8c('0x36')]['findAll'](_0x1f756c);})[_0xcb8c('0x2c')](function(_0x4ec9a0){_0x3e6d6d[_0xcb8c('0x4b')]=_0x4ec9a0;return _0x3e6d6d;})[_0xcb8c('0x2c')](respondWithFilteredResult(_0x1ee6f6,_0x1f756c))[_0xcb8c('0x4c')](handleError(_0x1ee6f6,null));};exports[_0xcb8c('0x4d')]=function(_0x5bbadb,_0x1f8748){var _0x4d26c3={'raw':!![],'where':{'id':_0x5bbadb['params']['id']}},_0xdcf300={};_0xdcf300[_0xcb8c('0x3b')]=_[_0xcb8c('0x4e')](db[_0xcb8c('0x36')][_0xcb8c('0x37')]);_0xdcf300[_0xcb8c('0x3c')]=_[_0xcb8c('0x4e')](_0x5bbadb[_0xcb8c('0x3c')]);_0xdcf300['filters']=_[_0xcb8c('0x3d')](_0xdcf300[_0xcb8c('0x3b')],_0xdcf300[_0xcb8c('0x3c')]);_0x4d26c3['attributes']=_[_0xcb8c('0x3d')](_0xdcf300[_0xcb8c('0x3b')],qs['fields'](_0x5bbadb[_0xcb8c('0x3c')]['fields']));_0x4d26c3[_0xcb8c('0x3e')]=_0x4d26c3[_0xcb8c('0x3e')][_0xcb8c('0x40')]?_0x4d26c3[_0xcb8c('0x3e')]:_0xdcf300[_0xcb8c('0x3b')];if(_0x5bbadb[_0xcb8c('0x3c')][_0xcb8c('0x4a')]){_0x4d26c3[_0xcb8c('0x4f')]=[{'all':!![]}];}_0x4d26c3=_['merge']({},_0x4d26c3,_0x5bbadb[_0xcb8c('0x50')]);return db['Plugin']['find'](_0x4d26c3)[_0xcb8c('0x2c')](handleEntityNotFound(_0x1f8748,null))[_0xcb8c('0x2c')](respondWithResult(_0x1f8748,null))[_0xcb8c('0x4c')](handleError(_0x1f8748,null));};exports[_0xcb8c('0x51')]=function(_0x16d645,_0x5d8229,_0x255881){return db[_0xcb8c('0x36')][_0xcb8c('0x52')]({'where':{'id':_0x16d645[_0xcb8c('0x53')]['id']},'attributes':['name',_0xcb8c('0x54')],'raw':!![]})['then'](handleEntityNotFound(_0x5d8229,null))[_0xcb8c('0x2c')](function(_0xfb8ee8){if(_0xfb8ee8){var _0xae1df4=path[_0xcb8c('0x55')](config['root'],_0xcb8c('0x56'),util['format'](_0xcb8c('0x57'),path[_0xcb8c('0x58')](_0xfb8ee8[_0xcb8c('0x54')])));var _0x327b86=fs['createWriteStream'](_0xae1df4);var _0x311c6f=archiver('zip',{'zlib':{'level':0x9}});_0x311c6f['on'](_0xcb8c('0x59'),function(_0x4d75de){if(_0x4d75de[_0xcb8c('0x5a')]===_0xcb8c('0x5b')){logger[_0xcb8c('0x31')](_0x4d75de);}else{throw new db[(_0xcb8c('0x5c'))][(_0xcb8c('0x5d'))](_0xcb8c('0x5e'));}});_0x311c6f['on'](_0xcb8c('0x31'),function(_0xaabd0e){throw new db[(_0xcb8c('0x5c'))][(_0xcb8c('0x5d'))](_0xcb8c('0x5e'));});_0x311c6f[_0xcb8c('0x5f')](_0x327b86);_0x311c6f[_0xcb8c('0x60')](_0xcb8c('0x61'),{'cwd':path[_0xcb8c('0x55')](config['root'],_0xcb8c('0x56'),path[_0xcb8c('0x62')](_0xfb8ee8[_0xcb8c('0x54')])),'ignore':[path[_0xcb8c('0x55')](path[_0xcb8c('0x58')](_0xfb8ee8[_0xcb8c('0x54')]),_0xcb8c('0x63')),path[_0xcb8c('0x55')](path['basename'](_0xfb8ee8['path']),'attachments/**/*')],'nodir':!![]})['finalize']();_0x327b86['on'](_0xcb8c('0x64'),function(){if(!fs['existsSync'](_0xae1df4)){throw new db[(_0xcb8c('0x5c'))][(_0xcb8c('0x5d'))](_0xcb8c('0x65'));}return _0x5d8229[_0xcb8c('0x51')](_0xae1df4,util[_0xcb8c('0x66')](_0xcb8c('0x57'),path[_0xcb8c('0x58')](_0xfb8ee8['path'])),function(_0x3fcab9){if(_0x3fcab9){throw new db[(_0xcb8c('0x5c'))][(_0xcb8c('0x5d'))](_0xcb8c('0x67'));}fs[_0xcb8c('0x68')](_0xae1df4);logger[_0xcb8c('0x69')](_0xcb8c('0x6a'));logger[_0xcb8c('0x69')](_0xcb8c('0x6b'));});});}return null;})[_0xcb8c('0x4c')](handleError(_0x5d8229,null));};exports[_0xcb8c('0x6c')]=function(_0x363fb5,_0x21623e,_0x51e98e){var _0x4794b3=path[_0xcb8c('0x58')](_0x363fb5[_0xcb8c('0x6d')][_0xcb8c('0x6e')],path[_0xcb8c('0x6f')](_0x363fb5[_0xcb8c('0x6d')]['filename']));var _0x76a968=path[_0xcb8c('0x55')](config[_0xcb8c('0x70')],_0xcb8c('0x56'),_0x363fb5[_0xcb8c('0x6d')][_0xcb8c('0x6e')]);var _0x15d444=path[_0xcb8c('0x55')](config[_0xcb8c('0x70')],'server/files/plugins',_0x4794b3);logger[_0xcb8c('0x69')](_0xcb8c('0x71'),_0x76a968);logger['info'](_0xcb8c('0x72'),_0x15d444);try{fs[_0xcb8c('0x73')](_0x76a968,parseInt('0777',0x8));extract(_0x76a968,{'dir':_0x15d444},function(_0x5bef98){if(_0x5bef98){logger['error'](_0x5bef98);handleError(_0x5bef98,!![]);};var _0x4a4044=fs['readdirSync'](_0x15d444);if(_0x4a4044[_0xcb8c('0x40')]>0x1){removeReferences(_0x76a968,_0x15d444);logger[_0xcb8c('0x31')](_0xcb8c('0x74'));return _0x51e98e(new Error('Invalid\x20plugin\x20structure'));}var _0x433bc3=fs['lstatSync'](path[_0xcb8c('0x55')](_0x15d444,_0x4a4044[0x0]));if(_0x433bc3[_0xcb8c('0x75')]()){removeReferences(_0x76a968,_0x15d444);logger[_0xcb8c('0x31')](_0xcb8c('0x74'));return _0x51e98e(new Error(_0xcb8c('0x74')));}if(_0x433bc3[_0xcb8c('0x76')]()){var _0x23b824=fs[_0xcb8c('0x77')](path[_0xcb8c('0x55')](_0x15d444,_0x4a4044[0x0]));if(_0x23b824[_0xcb8c('0x40')]===0x0){removeReferences(_0x76a968,_0x15d444);logger[_0xcb8c('0x31')](_0xcb8c('0x74'));return _0x51e98e(new Error(_0xcb8c('0x74')));}var _0x3c52b6=_0x23b824[_0xcb8c('0x78')](function(_0x2b6017){return _0x2b6017===_0xcb8c('0x79');});if(!_0x3c52b6){return _0x51e98e(new Error(_0xcb8c('0x7a')));}var _0x2ce4a0=fs['readFileSync'](path[_0xcb8c('0x55')](_0x15d444,_0x4a4044[0x0],_0xcb8c('0x79')));var _0x3f9f73=JSON[_0xcb8c('0x7b')](_0x2ce4a0);if(_0xcb8c('0x7c')==typeof _0x3f9f73['name']){return _0x51e98e(new Error(_0xcb8c('0x7d')));}if(_0xcb8c('0x7c')==typeof _0x3f9f73['type']){return _0x51e98e(new Error('Invalid\x20manifest:\x20type\x20missing'));}if(_0xcb8c('0x7c')==typeof _0x3f9f73['version']){return _0x51e98e(new Error(_0xcb8c('0x7e')));}if(_0xcb8c('0x7c')==typeof _0x3f9f73['parameters']){return _0x51e98e(new Error(_0xcb8c('0x7f')));}if(_0x3f9f73[_0xcb8c('0x39')]==='html'){if(_0xcb8c('0x7c')==typeof _0x3f9f73['parameters'][_0xcb8c('0x80')]){return _0x51e98e(new Error(_0xcb8c('0x81')));}if(_0xcb8c('0x7c')==typeof _0x3f9f73[_0xcb8c('0x82')][_0xcb8c('0x80')]['admin']&&'undefined'==typeof _0x3f9f73[_0xcb8c('0x82')][_0xcb8c('0x80')]['agent']){return _0x51e98e(new Error(_0xcb8c('0x83')));}}else if(_0x3f9f73[_0xcb8c('0x39')]===_0xcb8c('0x84')){if(_0xcb8c('0x7c')==typeof _0x3f9f73[_0xcb8c('0x82')][_0xcb8c('0x85')]){return _0x51e98e(new Error(_0xcb8c('0x86')));}if('undefined'==typeof _0x3f9f73[_0xcb8c('0x82')][_0xcb8c('0x87')]){return _0x51e98e(new Error(_0xcb8c('0x88')));}}else{return _0x51e98e(new Error(_0xcb8c('0x89')));}var _0x19a36e=_0x3f9f73[_0xcb8c('0x32')];var _0x36ac4a=_0x3f9f73[_0xcb8c('0x8a')];var _0x2c84af=_0x3f9f73['type'];var _0x2e3795=_0x3f9f73[_0xcb8c('0x8b')]?_0x3f9f73['sidebar']:_0xcb8c('0x8c');var _0xc818e1=_0x3f9f73[_0xcb8c('0x8d')]?_0x3f9f73['icon']:_0xcb8c('0x8e');var _0x11f080='';var _0x279ff7='';var _0x228d1f='';var _0x449340='';var _0x4acde4=_0x3f9f73['version'];if(_0x2c84af===_0xcb8c('0x8f')){if(_0xcb8c('0x7c')!=typeof _0x3f9f73[_0xcb8c('0x82')]['views']['admin']){var _0x1666e3=_0x3f9f73[_0xcb8c('0x82')][_0xcb8c('0x80')]['admin'];if(!/^(f|ht)tps?:\/\//i[_0xcb8c('0x90')](_0x1666e3)){_0x11f080=path[_0xcb8c('0x55')](_0xcb8c('0x91'),_0x4794b3,_0x4a4044[0x0],_0x1666e3);}else{_0x11f080=_0x1666e3;}}else{logger[_0xcb8c('0x69')](_0xcb8c('0x92'));}if(_0xcb8c('0x7c')!=typeof _0x3f9f73[_0xcb8c('0x82')]['views']['agent']){var _0x48a279=_0x3f9f73['parameters'][_0xcb8c('0x80')]['agent'];if(!/^(f|ht)tps?:\/\//i['test'](_0x48a279)){_0x279ff7=path[_0xcb8c('0x55')]('plugins',_0x4794b3,_0x4a4044[0x0],_0x48a279);}else{_0x279ff7=_0x48a279;}}else{logger[_0xcb8c('0x69')](_0xcb8c('0x93'));}}else if(_0x2c84af===_0xcb8c('0x84')){_0x228d1f=_0x3f9f73[_0xcb8c('0x82')][_0xcb8c('0x85')];_0x449340=_0x3f9f73[_0xcb8c('0x82')][_0xcb8c('0x87')];if(_0xcb8c('0x7c')!=typeof _0x3f9f73['parameters'][_0xcb8c('0x80')]){if(_0xcb8c('0x7c')!=typeof _0x3f9f73[_0xcb8c('0x82')][_0xcb8c('0x80')][_0xcb8c('0x94')]){var _0x1666e3=_0x3f9f73['parameters'][_0xcb8c('0x80')][_0xcb8c('0x94')];if(!/^(f|ht)tps?:\/\//i[_0xcb8c('0x90')](_0x1666e3)){_0x11f080=path[_0xcb8c('0x55')]('plugins',_0x4794b3,_0x4a4044[0x0],_0x1666e3);}else{_0x11f080=_0x1666e3;}}if('undefined'!=typeof _0x3f9f73[_0xcb8c('0x82')]['views'][_0xcb8c('0x95')]){var _0x48a279=_0x3f9f73[_0xcb8c('0x82')][_0xcb8c('0x80')][_0xcb8c('0x95')];if(!/^(f|ht)tps?:\/\//i[_0xcb8c('0x90')](_0x48a279)){_0x279ff7=path[_0xcb8c('0x55')](_0xcb8c('0x91'),_0x4794b3,_0x4a4044[0x0],_0x48a279);}else{_0x279ff7=_0x48a279;}}}}var _0x39552e={'name':_0x19a36e,'description':_0x36ac4a,'path':path[_0xcb8c('0x55')](_0x4794b3,_0x4a4044[0x0]),'type':_0x2c84af,'sidebar':_0x2e3795,'icon':_0xc818e1,'adminUrl':_0x11f080,'agentUrl':_0x279ff7,'scriptName':_0x228d1f,'scriptPath':_0x449340,'version':_0x4acde4};removeReferences(_0x76a968,null);return db[_0xcb8c('0x36')][_0xcb8c('0x96')](_0x39552e)[_0xcb8c('0x2c')](function(_0x22be8a){var _0x520213={'role':_0x363fb5[_0xcb8c('0x97')][_0xcb8c('0x98')],'userProfileId':_0x363fb5['body'][_0xcb8c('0x99')]};if(!_0x520213)throw new Error(_0xcb8c('0x9a'));if(_0x520213[_0xcb8c('0x98')]==='user'){var _0x519f64=_0x22be8a[_0xcb8c('0x2e')]({'plain':!![]});return db[_0xcb8c('0x9b')][_0xcb8c('0x52')]({'where':{'name':_0xcb8c('0x2f'),'userProfileId':_0x520213[_0xcb8c('0x99')]},'raw':!![]})['then'](function(_0x32fa35){if(_0x32fa35&&_0x32fa35['autoAssociation']===0x0){return db['UserProfileResource'][_0xcb8c('0x96')]({'name':_0x519f64[_0xcb8c('0x32')],'resourceId':_0x519f64['id'],'type':_0x32fa35[_0xcb8c('0x32')],'sectionId':_0x32fa35['id']},{})['then'](function(){return _0x22be8a;});}else{return _0x22be8a;}})['catch'](function(_0x5d2df8){logger[_0xcb8c('0x31')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5d2df8);throw _0x5d2df8;});}return _0x22be8a;})[_0xcb8c('0x2c')](respondWithResult(_0x21623e,null))[_0xcb8c('0x4c')](handleError(_0x21623e,null));}});}catch(_0x49ef10){_0x21623e[_0xcb8c('0x22')](0x1f4)[_0xcb8c('0x33')](_0x49ef10);}};function removeReferences(_0x52b896,_0x7f36e){try{if(_0x52b896){fs[_0xcb8c('0x68')](_0x52b896);logger[_0xcb8c('0x69')](_0xcb8c('0x9c'));}if(_0x7f36e){rimraf(_0x7f36e,function(){});logger[_0xcb8c('0x69')]('Extracted\x20folder\x20removed');}}catch(_0x65578f){logger[_0xcb8c('0x31')](_0x65578f);}}exports['update']=function(_0x31fff1,_0x3b9938,_0xa9887b){return db[_0xcb8c('0x36')]['find']({'where':{'id':_0x31fff1[_0xcb8c('0x53')]['id']}})[_0xcb8c('0x2c')](handleEntityNotFound(_0x3b9938,null))[_0xcb8c('0x2c')](saveUpdates(_0x31fff1[_0xcb8c('0x97')],null))[_0xcb8c('0x2c')](respondWithResult(_0x3b9938,null))[_0xcb8c('0x4c')](handleError(_0x3b9938,null));};exports[_0xcb8c('0x9d')]=function(_0x361d7a,_0x446cf6,_0x4bee2e){return db[_0xcb8c('0x36')][_0xcb8c('0x52')]({'where':{'id':_0x361d7a[_0xcb8c('0x53')]['id']}})['then'](function(_0x92e988){if(_0x92e988){return _0x92e988[_0xcb8c('0x2d')]();}})[_0xcb8c('0x2c')](function(_0x15f979){rimraf(path['join'](config[_0xcb8c('0x70')],_0xcb8c('0x56'),path[_0xcb8c('0x62')](_0x15f979['path'])),function(){});return _0x15f979;})['then'](handleEntityNotFound(_0x446cf6,null))[_0xcb8c('0x2c')](respondWithStatusCode(_0x446cf6,null))['catch'](handleError(_0x446cf6,null));};exports['webhookGet']=function(_0x122802,_0x205a4d,_0xa1a0aa){return BPromise['resolve']()[_0xcb8c('0x2c')](function(){if(!_0x122802['query'][_0xcb8c('0x54')]){throw new Error(_0xcb8c('0x9e'));}if(!_0x122802[_0xcb8c('0x3c')][_0xcb8c('0x9f')]){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x25f88d=_0x122802[_0xcb8c('0x3c')]['hostname']?_0x122802[_0xcb8c('0x3c')][_0xcb8c('0xa0')]+':'+_0x122802[_0xcb8c('0x3c')][_0xcb8c('0x9f')]:_0xcb8c('0xa1')+_0x122802['query'][_0xcb8c('0x9f')];var _0x1cd7c8=_0x122802[_0xcb8c('0x3c')][_0xcb8c('0x28')]?_0x122802[_0xcb8c('0x3c')][_0xcb8c('0x28')]:!![];var _0x28519c=_0x122802[_0xcb8c('0x3c')][_0xcb8c('0xa2')]?_0x122802['query'][_0xcb8c('0xa2')]:null;var _0x3514ec={'method':_0x122802[_0xcb8c('0xa3')],'uri':util['format'](_0xcb8c('0xa4'),_0x25f88d,_0x122802[_0xcb8c('0x3c')]['path']),'json':_0x1cd7c8,'resolveWithFullResponse':!![],'encoding':_0x28519c,'qs':_0x122802[_0xcb8c('0x3c')]};if(_0x122802[_0xcb8c('0xa5')]){_0x3514ec[_0xcb8c('0xa5')]=_0x122802[_0xcb8c('0xa5')];if(_0x3514ec['headers']['content-length']){delete _0x3514ec[_0xcb8c('0xa5')][_0xcb8c('0xa6')];}}if(_0x3514ec[_0xcb8c('0xa5')][_0xcb8c('0xa7')]){delete _0x3514ec['headers'][_0xcb8c('0xa7')];}return rp(_0x3514ec);})[_0xcb8c('0x2c')](function(_0x483d46){if(_0x483d46){_0x205a4d[_0xcb8c('0x26')](_0x483d46[_0xcb8c('0xa5')]);logger['info'](_0x483d46['body']);if(_[_0xcb8c('0xa8')](_0x122802['query'][_0xcb8c('0x54')],_0xcb8c('0x51'))&&_0x483d46[_0xcb8c('0xa9')]==0x1f4){return _0x205a4d[_0xcb8c('0x21')](_0x483d46['statusCode']);}else{return _0x205a4d['status'](_0x483d46[_0xcb8c('0xa9')])[_0xcb8c('0x33')](_0x483d46[_0xcb8c('0x97')]);}}else{return _0x205a4d[_0xcb8c('0x21')](0xc8);}})[_0xcb8c('0x4c')](handleError(_0x205a4d,null));};exports[_0xcb8c('0xaa')]=function(_0x55eb1d,_0x3ac4d6,_0x268213){return BPromise['resolve']()[_0xcb8c('0x2c')](function(){if(!_0x55eb1d['query'][_0xcb8c('0x54')]){throw new Error(_0xcb8c('0x9e'));}if(!_0x55eb1d['query']['port']){throw new Error(_0xcb8c('0xab'));}var _0x4e380b=_0x55eb1d[_0xcb8c('0x3c')]['hostname']?_0x55eb1d['query']['hostname']+':'+_0x55eb1d[_0xcb8c('0x3c')][_0xcb8c('0x9f')]:_0xcb8c('0xa1')+_0x55eb1d['query'][_0xcb8c('0x9f')];var _0x4684ae=_0x55eb1d[_0xcb8c('0x3c')]['json']?_0x55eb1d['query']['json']:!![];var _0x2e5e8f=_0x55eb1d[_0xcb8c('0x3c')][_0xcb8c('0xa2')]?_0x55eb1d['query'][_0xcb8c('0xa2')]:null;var _0x1d8327={'method':_0x55eb1d[_0xcb8c('0xa3')],'uri':util[_0xcb8c('0x66')](_0xcb8c('0xa4'),_0x4e380b,_0x55eb1d[_0xcb8c('0x3c')][_0xcb8c('0x54')]),'json':_0x4684ae,'resolveWithFullResponse':!![],'encoding':_0x2e5e8f,'body':_0x55eb1d['body']};if(_0x55eb1d[_0xcb8c('0xa5')]){_0x1d8327[_0xcb8c('0xa5')]=_0x55eb1d[_0xcb8c('0xa5')];if(_0x1d8327['headers']['content-length']){delete _0x1d8327[_0xcb8c('0xa5')][_0xcb8c('0xa6')];}}if(_0x1d8327[_0xcb8c('0xa5')][_0xcb8c('0xa7')]){delete _0x1d8327[_0xcb8c('0xa5')]['content-type'];}return rp(_0x1d8327);})[_0xcb8c('0x2c')](function(_0x4ba8c4){if(_0x4ba8c4){_0x3ac4d6[_0xcb8c('0x26')](_0x4ba8c4[_0xcb8c('0xa5')]);logger[_0xcb8c('0x69')](_0x4ba8c4[_0xcb8c('0x97')]);return _0x3ac4d6['status'](_0x4ba8c4[_0xcb8c('0xa9')])[_0xcb8c('0x33')](_0x4ba8c4['body']);}else{return _0x3ac4d6[_0xcb8c('0x21')](0xc8);}})['catch'](handleError(_0x3ac4d6,null));};