cb2d69d6e260fb7620b5ac22bbc39e91c4cffe4c
[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 _0xaab2=['querystring','papaparse','archiver','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','end','json','offset','undefined','limit','count','Content-Range','apply','save','update','destroy','get','Plugins','UserProfileResource','then','name','status','send','index','map','Plugin','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','catch','show','params','length','include','find','download','join','root','format','%s.zip','basename','createWriteStream','zip','code','ENOENT','error','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','**/*','server/files/plugins','dirname','node_modules/**/*','attachments/**/*','finalize','close','existsSync','Plugin\x20not\x20found','Error\x20while\x20downloading\x20the\x20plugin','info','Download\x20completed','Temporary\x20file\x20removed','upload','filename','Plugin\x20upload\x20destination:\x20%s','chmodSync','0777','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','some','manifest.json','Plugin\x20manifest\x20missing','parse','Invalid\x20manifest:\x20type\x20missing','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','views','Invalid\x20manifest:\x20views\x20missing','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','always','icon','icon-apps','version','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','Warning:\x20agent\x20view\x20not\x20specified','create','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','unlinkSync','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','method','%s%s','headers','content-length','content-type','set','endsWith','statusCode','webhookPost','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js'];(function(_0x5a9596,_0x1f8dec){var _0x214e55=function(_0x5acdcc){while(--_0x5acdcc){_0x5a9596['push'](_0x5a9596['shift']());}};_0x214e55(++_0x1f8dec);}(_0xaab2,0x9c));var _0x2aab=function(_0x56482c,_0x16118d){_0x56482c=_0x56482c-0x0;var _0x5aae7a=_0xaab2[_0x56482c];return _0x5aae7a;};'use strict';var emlformat=require(_0x2aab('0x0'));var rimraf=require(_0x2aab('0x1'));var zipdir=require(_0x2aab('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x2aab('0x3'));var BPromise=require(_0x2aab('0x4'));var Mustache=require(_0x2aab('0x5'));var util=require(_0x2aab('0x6'));var path=require(_0x2aab('0x7'));var sox=require(_0x2aab('0x8'));var csv=require(_0x2aab('0x9'));var ejs=require(_0x2aab('0xa'));var fs=require('fs');var fs_extra=require(_0x2aab('0xb'));var _=require(_0x2aab('0xc'));var squel=require(_0x2aab('0xd'));var crypto=require(_0x2aab('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x2aab('0xf'));var toCsv=require(_0x2aab('0x9'));var querystring=require(_0x2aab('0x10'));var Papa=require(_0x2aab('0x11'));var extract=require('extract-zip');var rimraf=require(_0x2aab('0x1'));var archiver=require(_0x2aab('0x12'));var Redis=require('ioredis');var authService=require(_0x2aab('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x2aab('0x14'));var hardwareService=require(_0x2aab('0x15'));var logger=require(_0x2aab('0x16'))(_0x2aab('0x17'));var utils=require(_0x2aab('0x18'));var config=require(_0x2aab('0x19'));var licenseUtil=require(_0x2aab('0x1a'));var db=require('../../mysqldb')['db'];config[_0x2aab('0x1b')]=_[_0x2aab('0x1c')](config[_0x2aab('0x1b')],{'host':_0x2aab('0x1d'),'port':0x18eb});var socket=require(_0x2aab('0x1e'))(new Redis(config[_0x2aab('0x1b')]));require(_0x2aab('0x1f'))[_0x2aab('0x20')](socket);function respondWithStatusCode(_0x4e58df,_0x5261c0){_0x5261c0=_0x5261c0||0xcc;return function(_0x1e633b){if(_0x1e633b){return _0x4e58df[_0x2aab('0x21')](_0x5261c0);}return _0x4e58df['status'](_0x5261c0)[_0x2aab('0x22')]();};}function respondWithResult(_0x200243,_0x52dc86){_0x52dc86=_0x52dc86||0xc8;return function(_0x2c2416){if(_0x2c2416){return _0x200243['status'](_0x52dc86)[_0x2aab('0x23')](_0x2c2416);}};}function respondWithFilteredResult(_0x48c9c6,_0x2a3f22){return function(_0x3917b2){if(_0x3917b2){var _0x3345b4=typeof _0x2a3f22[_0x2aab('0x24')]===_0x2aab('0x25')&&typeof _0x2a3f22[_0x2aab('0x26')]===_0x2aab('0x25');var _0x405fe4=_0x3917b2['count'];var _0x7ae2be=_0x3345b4?0x0:_0x2a3f22[_0x2aab('0x24')];var _0x11a55a=_0x3345b4?_0x3917b2[_0x2aab('0x27')]:_0x2a3f22[_0x2aab('0x24')]+_0x2a3f22['limit'];var _0x154c12;if(_0x11a55a>=_0x405fe4){_0x11a55a=_0x405fe4;_0x154c12=0xc8;}else{_0x154c12=0xce;}_0x48c9c6['status'](_0x154c12);return _0x48c9c6['set'](_0x2aab('0x28'),_0x7ae2be+'-'+_0x11a55a+'/'+_0x405fe4)[_0x2aab('0x23')](_0x3917b2);}return null;};}function patchUpdates(_0xb75ffe){return function(_0x1502f4){try{jsonpatch[_0x2aab('0x29')](_0x1502f4,_0xb75ffe,!![]);}catch(_0x3d9b69){return BPromise['reject'](_0x3d9b69);}return _0x1502f4[_0x2aab('0x2a')]();};}function saveUpdates(_0x12be25,_0x489c40){return function(_0x430972){if(_0x430972){return _0x430972[_0x2aab('0x2b')](_0x12be25)['then'](function(_0x260837){return _0x260837;});}return null;};}function removeEntity(_0x27dbd5,_0x2ef5fe){return function(_0x29e3d0){if(_0x29e3d0){return _0x29e3d0[_0x2aab('0x2c')]()['then'](function(){var _0x317fda=_0x29e3d0[_0x2aab('0x2d')]({'plain':!![]});var _0x3568bb=_0x2aab('0x2e');return db[_0x2aab('0x2f')][_0x2aab('0x2c')]({'where':{'type':_0x3568bb,'resourceId':_0x317fda['id']}})[_0x2aab('0x30')](function(){return _0x29e3d0;});})['then'](function(){_0x27dbd5['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x567026,_0x1b4ebd){return function(_0xfc1e00){if(!_0xfc1e00){_0x567026[_0x2aab('0x21')](0x194);}return _0xfc1e00;};}function handleError(_0x5118dc,_0x1a03e1){_0x1a03e1=_0x1a03e1||0x1f4;return function(_0x5d1590){logger['error'](_0x5d1590['stack']);if(_0x5d1590[_0x2aab('0x31')]){delete _0x5d1590['name'];}_0x5118dc[_0x2aab('0x32')](_0x1a03e1)[_0x2aab('0x33')](_0x5d1590);};}exports[_0x2aab('0x34')]=function(_0x251677,_0x4ddb0c){var _0x36a047={},_0x51ac76={},_0x476aaf={'count':0x0,'rows':[]};var _0x304b35=_[_0x2aab('0x35')](db[_0x2aab('0x36')][_0x2aab('0x37')],function(_0x6cd9aa){return{'name':_0x6cd9aa[_0x2aab('0x38')],'type':_0x6cd9aa[_0x2aab('0x39')][_0x2aab('0x3a')]};});_0x51ac76[_0x2aab('0x3b')]=_[_0x2aab('0x35')](_0x304b35,_0x2aab('0x31'));_0x51ac76[_0x2aab('0x3c')]=_[_0x2aab('0x3d')](_0x251677[_0x2aab('0x3c')]);_0x51ac76['filters']=_[_0x2aab('0x3e')](_0x51ac76[_0x2aab('0x3b')],_0x51ac76['query']);_0x36a047['attributes']=_[_0x2aab('0x3e')](_0x51ac76[_0x2aab('0x3b')],qs['fields'](_0x251677['query'][_0x2aab('0x3f')]));_0x36a047[_0x2aab('0x40')]=_0x36a047[_0x2aab('0x40')]['length']?_0x36a047[_0x2aab('0x40')]:_0x51ac76['model'];if(!_0x251677['query'][_0x2aab('0x41')](_0x2aab('0x42'))){_0x36a047[_0x2aab('0x26')]=qs[_0x2aab('0x26')](_0x251677[_0x2aab('0x3c')]['limit']);_0x36a047[_0x2aab('0x24')]=qs['offset'](_0x251677[_0x2aab('0x3c')][_0x2aab('0x24')]);}_0x36a047[_0x2aab('0x43')]=qs[_0x2aab('0x44')](_0x251677[_0x2aab('0x3c')][_0x2aab('0x44')]);_0x36a047[_0x2aab('0x45')]=qs[_0x2aab('0x46')](_['pick'](_0x251677[_0x2aab('0x3c')],_0x51ac76[_0x2aab('0x46')]),_0x304b35);if(_0x251677['query'][_0x2aab('0x47')]){_0x36a047[_0x2aab('0x45')]=_[_0x2aab('0x48')](_0x36a047[_0x2aab('0x45')],{'$or':_['map'](_0x304b35,function(_0x5869c7){if(_0x5869c7[_0x2aab('0x39')]!==_0x2aab('0x49')){var _0x398c72={};_0x398c72[_0x5869c7[_0x2aab('0x31')]]={'$like':'%'+_0x251677[_0x2aab('0x3c')][_0x2aab('0x47')]+'%'};return _0x398c72;}})});}_0x36a047=_[_0x2aab('0x48')]({},_0x36a047,_0x251677['options']);var _0x259c1a={'where':_0x36a047[_0x2aab('0x45')]};return db[_0x2aab('0x36')][_0x2aab('0x27')](_0x259c1a)[_0x2aab('0x30')](function(_0x929b29){_0x476aaf['count']=_0x929b29;if(_0x251677['query']['includeAll']){_0x36a047['include']=[{'all':!![]}];}return db['Plugin']['findAll'](_0x36a047);})['then'](function(_0x3160ed){_0x476aaf['rows']=_0x3160ed;return _0x476aaf;})[_0x2aab('0x30')](respondWithFilteredResult(_0x4ddb0c,_0x36a047))[_0x2aab('0x4a')](handleError(_0x4ddb0c,null));};exports[_0x2aab('0x4b')]=function(_0x5773dc,_0xe24cd8){var _0x5d992b={'raw':!![],'where':{'id':_0x5773dc[_0x2aab('0x4c')]['id']}},_0x215d9f={};_0x215d9f['model']=_['keys'](db[_0x2aab('0x36')][_0x2aab('0x37')]);_0x215d9f[_0x2aab('0x3c')]=_[_0x2aab('0x3d')](_0x5773dc[_0x2aab('0x3c')]);_0x215d9f[_0x2aab('0x46')]=_[_0x2aab('0x3e')](_0x215d9f[_0x2aab('0x3b')],_0x215d9f[_0x2aab('0x3c')]);_0x5d992b[_0x2aab('0x40')]=_[_0x2aab('0x3e')](_0x215d9f[_0x2aab('0x3b')],qs[_0x2aab('0x3f')](_0x5773dc[_0x2aab('0x3c')]['fields']));_0x5d992b[_0x2aab('0x40')]=_0x5d992b['attributes'][_0x2aab('0x4d')]?_0x5d992b[_0x2aab('0x40')]:_0x215d9f[_0x2aab('0x3b')];if(_0x5773dc[_0x2aab('0x3c')]['includeAll']){_0x5d992b[_0x2aab('0x4e')]=[{'all':!![]}];}_0x5d992b=_[_0x2aab('0x48')]({},_0x5d992b,_0x5773dc['options']);return db[_0x2aab('0x36')][_0x2aab('0x4f')](_0x5d992b)[_0x2aab('0x30')](handleEntityNotFound(_0xe24cd8,null))[_0x2aab('0x30')](respondWithResult(_0xe24cd8,null))[_0x2aab('0x4a')](handleError(_0xe24cd8,null));};exports[_0x2aab('0x50')]=function(_0x371e8e,_0x2ca813,_0x49ddb3){return db[_0x2aab('0x36')][_0x2aab('0x4f')]({'where':{'id':_0x371e8e[_0x2aab('0x4c')]['id']},'attributes':[_0x2aab('0x31'),_0x2aab('0x7')],'raw':!![]})[_0x2aab('0x30')](handleEntityNotFound(_0x2ca813,null))[_0x2aab('0x30')](function(_0x2fe3a6){if(_0x2fe3a6){var _0x5e4b0f=path[_0x2aab('0x51')](config[_0x2aab('0x52')],'server/files/plugins',util[_0x2aab('0x53')](_0x2aab('0x54'),path[_0x2aab('0x55')](_0x2fe3a6['path'])));var _0x90f6e7=fs[_0x2aab('0x56')](_0x5e4b0f);var _0x3ea146=archiver(_0x2aab('0x57'),{'zlib':{'level':0x9}});_0x3ea146['on']('warning',function(_0x12bb41){if(_0x12bb41[_0x2aab('0x58')]===_0x2aab('0x59')){logger[_0x2aab('0x5a')](_0x12bb41);}else{throw new db[(_0x2aab('0x5b'))][(_0x2aab('0x5c'))](_0x2aab('0x5d'));}});_0x3ea146['on']('error',function(_0x109570){throw new db[(_0x2aab('0x5b'))][(_0x2aab('0x5c'))](_0x2aab('0x5d'));});_0x3ea146[_0x2aab('0x5e')](_0x90f6e7);_0x3ea146['glob'](_0x2aab('0x5f'),{'cwd':path[_0x2aab('0x51')](config[_0x2aab('0x52')],_0x2aab('0x60'),path[_0x2aab('0x61')](_0x2fe3a6['path'])),'ignore':[path[_0x2aab('0x51')](path[_0x2aab('0x55')](_0x2fe3a6[_0x2aab('0x7')]),_0x2aab('0x62')),path[_0x2aab('0x51')](path[_0x2aab('0x55')](_0x2fe3a6[_0x2aab('0x7')]),_0x2aab('0x63'))],'nodir':!![]})[_0x2aab('0x64')]();_0x90f6e7['on'](_0x2aab('0x65'),function(){if(!fs[_0x2aab('0x66')](_0x5e4b0f)){throw new db[(_0x2aab('0x5b'))][(_0x2aab('0x5c'))](_0x2aab('0x67'));}return _0x2ca813[_0x2aab('0x50')](_0x5e4b0f,util[_0x2aab('0x53')]('%s.zip',path['basename'](_0x2fe3a6[_0x2aab('0x7')])),function(_0x2bec8b){if(_0x2bec8b){throw new db[(_0x2aab('0x5b'))][(_0x2aab('0x5c'))](_0x2aab('0x68'));}fs['unlinkSync'](_0x5e4b0f);logger[_0x2aab('0x69')](_0x2aab('0x6a'));logger[_0x2aab('0x69')](_0x2aab('0x6b'));});});}return null;})[_0x2aab('0x4a')](handleError(_0x2ca813,null));};exports[_0x2aab('0x6c')]=function(_0x486fff,_0x1897af,_0x551976){var _0x11c449=path['basename'](_0x486fff['file'][_0x2aab('0x6d')],path['extname'](_0x486fff['file'][_0x2aab('0x6d')]));var _0x29e9b2=path[_0x2aab('0x51')](config['root'],_0x2aab('0x60'),_0x486fff['file'][_0x2aab('0x6d')]);var _0x489c12=path[_0x2aab('0x51')](config[_0x2aab('0x52')],_0x2aab('0x60'),_0x11c449);logger[_0x2aab('0x69')]('Plugin\x20upload\x20filepath:\x20%s',_0x29e9b2);logger[_0x2aab('0x69')](_0x2aab('0x6e'),_0x489c12);try{fs[_0x2aab('0x6f')](_0x29e9b2,parseInt(_0x2aab('0x70'),0x8));extract(_0x29e9b2,{'dir':_0x489c12},function(_0x514c73){if(_0x514c73){logger[_0x2aab('0x5a')](_0x514c73);handleError(_0x514c73,!![]);};var _0x332f7d=fs[_0x2aab('0x71')](_0x489c12);if(_0x332f7d['length']>0x1){removeReferences(_0x29e9b2,_0x489c12);logger['error'](_0x2aab('0x72'));return _0x551976(new Error(_0x2aab('0x72')));}var _0x3c0dd4=fs[_0x2aab('0x73')](path['join'](_0x489c12,_0x332f7d[0x0]));if(_0x3c0dd4[_0x2aab('0x74')]()){removeReferences(_0x29e9b2,_0x489c12);logger[_0x2aab('0x5a')](_0x2aab('0x72'));return _0x551976(new Error(_0x2aab('0x72')));}if(_0x3c0dd4[_0x2aab('0x75')]()){var _0x7ac834=fs[_0x2aab('0x71')](path['join'](_0x489c12,_0x332f7d[0x0]));if(_0x7ac834['length']===0x0){removeReferences(_0x29e9b2,_0x489c12);logger[_0x2aab('0x5a')](_0x2aab('0x72'));return _0x551976(new Error(_0x2aab('0x72')));}var _0x5cc633=_0x7ac834[_0x2aab('0x76')](function(_0x3d8be9){return _0x3d8be9===_0x2aab('0x77');});if(!_0x5cc633){return _0x551976(new Error(_0x2aab('0x78')));}var _0x3c70c3=fs['readFileSync'](path[_0x2aab('0x51')](_0x489c12,_0x332f7d[0x0],'manifest.json'));var _0x5533e7=JSON[_0x2aab('0x79')](_0x3c70c3);if('undefined'==typeof _0x5533e7['name']){return _0x551976(new Error('Invalid\x20manifest:\x20name\x20missing'));}if(_0x2aab('0x25')==typeof _0x5533e7[_0x2aab('0x39')]){return _0x551976(new Error(_0x2aab('0x7a')));}if(_0x2aab('0x25')==typeof _0x5533e7['version']){return _0x551976(new Error(_0x2aab('0x7b')));}if('undefined'==typeof _0x5533e7[_0x2aab('0x7c')]){return _0x551976(new Error(_0x2aab('0x7d')));}if(_0x5533e7[_0x2aab('0x39')]===_0x2aab('0x7e')){if(_0x2aab('0x25')==typeof _0x5533e7[_0x2aab('0x7c')][_0x2aab('0x7f')]){return _0x551976(new Error(_0x2aab('0x80')));}if('undefined'==typeof _0x5533e7[_0x2aab('0x7c')]['views'][_0x2aab('0x81')]&&_0x2aab('0x25')==typeof _0x5533e7['parameters'][_0x2aab('0x7f')][_0x2aab('0x82')]){return _0x551976(new Error(_0x2aab('0x83')));}}else if(_0x5533e7[_0x2aab('0x39')]===_0x2aab('0x84')){if('undefined'==typeof _0x5533e7[_0x2aab('0x7c')][_0x2aab('0x85')]){return _0x551976(new Error(_0x2aab('0x86')));}if(_0x2aab('0x25')==typeof _0x5533e7[_0x2aab('0x7c')][_0x2aab('0x87')]){return _0x551976(new Error('Invalid\x20manifest:\x20script\x20path\x20missing'));}}else{return _0x551976(new Error(_0x2aab('0x88')));}var _0x59f292=_0x5533e7[_0x2aab('0x31')];var _0x5e5cb3=_0x5533e7[_0x2aab('0x89')];var _0x4a7f55=_0x5533e7[_0x2aab('0x39')];var _0x5c7c21=_0x5533e7[_0x2aab('0x8a')]?_0x5533e7[_0x2aab('0x8a')]:_0x2aab('0x8b');var _0x57ea94=_0x5533e7[_0x2aab('0x8c')]?_0x5533e7[_0x2aab('0x8c')]:_0x2aab('0x8d');var _0x4ac296='';var _0x6041b7='';var _0x1056ec='';var _0x256272='';var _0x17c411=_0x5533e7[_0x2aab('0x8e')];if(_0x4a7f55===_0x2aab('0x7e')){if(_0x2aab('0x25')!=typeof _0x5533e7[_0x2aab('0x7c')][_0x2aab('0x7f')][_0x2aab('0x81')]){var _0x394235=_0x5533e7[_0x2aab('0x7c')][_0x2aab('0x7f')][_0x2aab('0x81')];if(!/^(f|ht)tps?:\/\//i[_0x2aab('0x8f')](_0x394235)){_0x4ac296=path['join'](_0x2aab('0x90'),_0x11c449,_0x332f7d[0x0],_0x394235);}else{_0x4ac296=_0x394235;}}else{logger[_0x2aab('0x69')](_0x2aab('0x91'));}if(_0x2aab('0x25')!=typeof _0x5533e7['parameters'][_0x2aab('0x7f')][_0x2aab('0x82')]){var _0x5e587f=_0x5533e7[_0x2aab('0x7c')][_0x2aab('0x7f')][_0x2aab('0x82')];if(!/^(f|ht)tps?:\/\//i[_0x2aab('0x8f')](_0x5e587f)){_0x6041b7=path[_0x2aab('0x51')]('plugins',_0x11c449,_0x332f7d[0x0],_0x5e587f);}else{_0x6041b7=_0x5e587f;}}else{logger[_0x2aab('0x69')](_0x2aab('0x92'));}}else if(_0x4a7f55===_0x2aab('0x84')){_0x1056ec=_0x5533e7[_0x2aab('0x7c')][_0x2aab('0x85')];_0x256272=_0x5533e7[_0x2aab('0x7c')][_0x2aab('0x87')];if('undefined'!=typeof _0x5533e7[_0x2aab('0x7c')]['views']){if(_0x2aab('0x25')!=typeof _0x5533e7[_0x2aab('0x7c')]['views']['admin']){var _0x394235=_0x5533e7['parameters'][_0x2aab('0x7f')][_0x2aab('0x81')];if(!/^(f|ht)tps?:\/\//i[_0x2aab('0x8f')](_0x394235)){_0x4ac296=path[_0x2aab('0x51')](_0x2aab('0x90'),_0x11c449,_0x332f7d[0x0],_0x394235);}else{_0x4ac296=_0x394235;}}if(_0x2aab('0x25')!=typeof _0x5533e7[_0x2aab('0x7c')]['views'][_0x2aab('0x82')]){var _0x5e587f=_0x5533e7[_0x2aab('0x7c')][_0x2aab('0x7f')][_0x2aab('0x82')];if(!/^(f|ht)tps?:\/\//i[_0x2aab('0x8f')](_0x5e587f)){_0x6041b7=path[_0x2aab('0x51')](_0x2aab('0x90'),_0x11c449,_0x332f7d[0x0],_0x5e587f);}else{_0x6041b7=_0x5e587f;}}}}var _0x3e1d2e={'name':_0x59f292,'description':_0x5e5cb3,'path':path[_0x2aab('0x51')](_0x11c449,_0x332f7d[0x0]),'type':_0x4a7f55,'sidebar':_0x5c7c21,'icon':_0x57ea94,'adminUrl':_0x4ac296,'agentUrl':_0x6041b7,'scriptName':_0x1056ec,'scriptPath':_0x256272,'version':_0x17c411};removeReferences(_0x29e9b2,null);return db['Plugin'][_0x2aab('0x93')](_0x3e1d2e)[_0x2aab('0x30')](function(_0x4506b6){var _0x58836a={'role':_0x486fff[_0x2aab('0x94')][_0x2aab('0x95')],'userProfileId':_0x486fff[_0x2aab('0x94')][_0x2aab('0x96')]};if(!_0x58836a)throw new Error(_0x2aab('0x97'));if(_0x58836a[_0x2aab('0x95')]==='user'){var _0x5d33c2=_0x4506b6[_0x2aab('0x2d')]({'plain':!![]});return db['UserProfileSection'][_0x2aab('0x4f')]({'where':{'name':_0x2aab('0x2e'),'userProfileId':_0x58836a['userProfileId']},'raw':!![]})[_0x2aab('0x30')](function(_0x54e795){if(_0x54e795&&_0x54e795['autoAssociation']===0x0){return db[_0x2aab('0x2f')]['create']({'name':_0x5d33c2[_0x2aab('0x31')],'resourceId':_0x5d33c2['id'],'type':_0x54e795[_0x2aab('0x31')],'sectionId':_0x54e795['id']},{})[_0x2aab('0x30')](function(){return _0x4506b6;});}else{return _0x4506b6;}})['catch'](function(_0x232927){logger[_0x2aab('0x5a')](_0x2aab('0x98'),_0x232927);throw _0x232927;});}return _0x4506b6;})[_0x2aab('0x30')](respondWithResult(_0x1897af,null))[_0x2aab('0x4a')](handleError(_0x1897af,null));}});}catch(_0x384872){_0x1897af[_0x2aab('0x32')](0x1f4)[_0x2aab('0x33')](_0x384872);}};function removeReferences(_0x3a6200,_0x409f5c){try{if(_0x3a6200){fs[_0x2aab('0x99')](_0x3a6200);logger[_0x2aab('0x69')](_0x2aab('0x9a'));}if(_0x409f5c){rimraf(_0x409f5c,function(){});logger[_0x2aab('0x69')](_0x2aab('0x9b'));}}catch(_0x3e3f33){logger[_0x2aab('0x5a')](_0x3e3f33);}}exports[_0x2aab('0x2b')]=function(_0x37f5a7,_0x1840c6,_0x4f61de){return db[_0x2aab('0x36')][_0x2aab('0x4f')]({'where':{'id':_0x37f5a7[_0x2aab('0x4c')]['id']}})['then'](handleEntityNotFound(_0x1840c6,null))[_0x2aab('0x30')](saveUpdates(_0x37f5a7[_0x2aab('0x94')],null))[_0x2aab('0x30')](respondWithResult(_0x1840c6,null))[_0x2aab('0x4a')](handleError(_0x1840c6,null));};exports['delete']=function(_0x16123f,_0x2f9265,_0x35a51e){return db[_0x2aab('0x36')][_0x2aab('0x4f')]({'where':{'id':_0x16123f[_0x2aab('0x4c')]['id']}})[_0x2aab('0x30')](function(_0x4feb63){if(_0x4feb63){return _0x4feb63['destroy']();}})[_0x2aab('0x30')](function(_0x507380){rimraf(path[_0x2aab('0x51')](config[_0x2aab('0x52')],_0x2aab('0x60'),path[_0x2aab('0x61')](_0x507380['path'])),function(){});return _0x507380;})['then'](handleEntityNotFound(_0x2f9265,null))[_0x2aab('0x30')](respondWithStatusCode(_0x2f9265,null))[_0x2aab('0x4a')](handleError(_0x2f9265,null));};exports['webhookGet']=function(_0x285f10,_0x46af88,_0x49dbe6){return BPromise[_0x2aab('0x9c')]()[_0x2aab('0x30')](function(){if(!_0x285f10['query'][_0x2aab('0x7')]){throw new Error(_0x2aab('0x9d'));}if(!_0x285f10[_0x2aab('0x3c')][_0x2aab('0x9e')]){throw new Error(_0x2aab('0x9f'));}var _0x48c250=_0x285f10[_0x2aab('0x3c')][_0x2aab('0xa0')]?_0x285f10[_0x2aab('0x3c')][_0x2aab('0xa0')]+':'+_0x285f10[_0x2aab('0x3c')][_0x2aab('0x9e')]:_0x2aab('0xa1')+_0x285f10[_0x2aab('0x3c')][_0x2aab('0x9e')];var _0x109555=_0x285f10[_0x2aab('0x3c')][_0x2aab('0x23')]?_0x285f10[_0x2aab('0x3c')][_0x2aab('0x23')]:!![];var _0x66209b=_0x285f10[_0x2aab('0x3c')][_0x2aab('0xa2')]?_0x285f10[_0x2aab('0x3c')][_0x2aab('0xa2')]:null;var _0xdf2f56={'method':_0x285f10[_0x2aab('0xa3')],'uri':util[_0x2aab('0x53')](_0x2aab('0xa4'),_0x48c250,_0x285f10[_0x2aab('0x3c')][_0x2aab('0x7')]),'json':_0x109555,'resolveWithFullResponse':!![],'encoding':_0x66209b,'qs':_0x285f10[_0x2aab('0x3c')]};if(_0x285f10['headers']){_0xdf2f56['headers']=_0x285f10[_0x2aab('0xa5')];if(_0xdf2f56['headers'][_0x2aab('0xa6')]){delete _0xdf2f56[_0x2aab('0xa5')][_0x2aab('0xa6')];}}if(_0xdf2f56[_0x2aab('0xa5')][_0x2aab('0xa7')]){delete _0xdf2f56['headers'][_0x2aab('0xa7')];}return rp(_0xdf2f56);})[_0x2aab('0x30')](function(_0x2ce9a5){if(_0x2ce9a5){_0x46af88[_0x2aab('0xa8')](_0x2ce9a5[_0x2aab('0xa5')]);logger[_0x2aab('0x69')](_0x2ce9a5[_0x2aab('0x94')]);if(_[_0x2aab('0xa9')](_0x285f10['query'][_0x2aab('0x7')],_0x2aab('0x50'))&&_0x2ce9a5['statusCode']==0x1f4){return _0x46af88[_0x2aab('0x21')](_0x2ce9a5[_0x2aab('0xaa')]);}else{return _0x46af88[_0x2aab('0x32')](_0x2ce9a5[_0x2aab('0xaa')])[_0x2aab('0x33')](_0x2ce9a5[_0x2aab('0x94')]);}}else{return _0x46af88[_0x2aab('0x21')](0xc8);}})['catch'](handleError(_0x46af88,null));};exports[_0x2aab('0xab')]=function(_0x1a8621,_0x49acbe,_0x13885a){return BPromise[_0x2aab('0x9c')]()[_0x2aab('0x30')](function(){if(!_0x1a8621[_0x2aab('0x3c')]['path']){throw new Error(_0x2aab('0x9d'));}if(!_0x1a8621['query'][_0x2aab('0x9e')]){throw new Error(_0x2aab('0x9f'));}var _0x4afed7=_0x1a8621['query']['hostname']?_0x1a8621[_0x2aab('0x3c')][_0x2aab('0xa0')]+':'+_0x1a8621[_0x2aab('0x3c')][_0x2aab('0x9e')]:'http://localhost:'+_0x1a8621[_0x2aab('0x3c')][_0x2aab('0x9e')];var _0x46b1ad=_0x1a8621[_0x2aab('0x3c')][_0x2aab('0x23')]?_0x1a8621[_0x2aab('0x3c')]['json']:!![];var _0x134f07=_0x1a8621[_0x2aab('0x3c')][_0x2aab('0xa2')]?_0x1a8621[_0x2aab('0x3c')][_0x2aab('0xa2')]:null;var _0x3a63af={'method':_0x1a8621[_0x2aab('0xa3')],'uri':util[_0x2aab('0x53')](_0x2aab('0xa4'),_0x4afed7,_0x1a8621[_0x2aab('0x3c')][_0x2aab('0x7')]),'json':_0x46b1ad,'resolveWithFullResponse':!![],'encoding':_0x134f07,'body':_0x1a8621[_0x2aab('0x94')]};if(_0x1a8621[_0x2aab('0xa5')]){_0x3a63af['headers']=_0x1a8621[_0x2aab('0xa5')];if(_0x3a63af[_0x2aab('0xa5')]['content-length']){delete _0x3a63af[_0x2aab('0xa5')][_0x2aab('0xa6')];}}if(_0x3a63af[_0x2aab('0xa5')][_0x2aab('0xa7')]){delete _0x3a63af[_0x2aab('0xa5')][_0x2aab('0xa7')];}return rp(_0x3a63af);})[_0x2aab('0x30')](function(_0x2c9644){if(_0x2c9644){_0x49acbe['set'](_0x2c9644[_0x2aab('0xa5')]);logger['info'](_0x2c9644[_0x2aab('0x94')]);return _0x49acbe[_0x2aab('0x32')](_0x2c9644['statusCode'])[_0x2aab('0x33')](_0x2c9644['body']);}else{return _0x49acbe[_0x2aab('0x21')](0xc8);}})['catch'](handleError(_0x49acbe,null));};