615117a9eca3be0b4f05aab1645f48fb70823c8c
[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 _0xb518=['format','basename','createWriteStream','zip','warning','code','ENOENT','error','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','Sequelize','pipe','glob','**/*','dirname','attachments/**/*','finalize','close','Plugin\x20not\x20found','%s.zip','info','Download\x20completed','Temporary\x20file\x20removed','file','filename','extname','server/files/plugins','Plugin\x20upload\x20destination:\x20%s','0777','lstatSync','isFile','Invalid\x20plugin\x20structure','isDirectory','some','manifest.json','Plugin\x20manifest\x20missing','readFileSync','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','views','admin','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','version','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','agent','Warning:\x20agent\x20view\x20not\x20specified','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','unlinkSync','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','webhookGet','\x27PATH\x27\x20parameter\x20not\x20specified','port','hostname','http://localhost:','encoding','method','%s%s','headers','content-length','content-type','endsWith','statusCode','webhookPost','resolve','\x27PORT\x27\x20parameter\x20not\x20specified','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','extract-zip','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./plugin.socket','sendStatus','status','end','json','offset','undefined','count','limit','set','reject','save','update','destroy','then','get','Plugins','UserProfileResource','stack','name','send','index','map','Plugin','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','nolimit','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','catch','show','keys','rawAttributes','include','find','download','params','join','root'];(function(_0x4f8250,_0x2519f3){var _0x4b2e3e=function(_0x18d297){while(--_0x18d297){_0x4f8250['push'](_0x4f8250['shift']());}};_0x4b2e3e(++_0x2519f3);}(_0xb518,0x1b4));var _0x8b51=function(_0x46fe02,_0x5f0e57){_0x46fe02=_0x46fe02-0x0;var _0x312a81=_0xb518[_0x46fe02];return _0x312a81;};'use strict';var emlformat=require(_0x8b51('0x0'));var rimraf=require(_0x8b51('0x1'));var zipdir=require(_0x8b51('0x2'));var jsonpatch=require(_0x8b51('0x3'));var rp=require(_0x8b51('0x4'));var moment=require(_0x8b51('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x8b51('0x6'));var util=require('util');var path=require(_0x8b51('0x7'));var sox=require(_0x8b51('0x8'));var csv=require(_0x8b51('0x9'));var ejs=require(_0x8b51('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8b51('0xb'));var squel=require(_0x8b51('0xc'));var crypto=require(_0x8b51('0xd'));var jsforce=require(_0x8b51('0xe'));var deskjs=require(_0x8b51('0xf'));var toCsv=require(_0x8b51('0x9'));var querystring=require(_0x8b51('0x10'));var Papa=require('papaparse');var extract=require(_0x8b51('0x11'));var rimraf=require('rimraf');var archiver=require('archiver');var Redis=require(_0x8b51('0x12'));var authService=require(_0x8b51('0x13'));var qs=require(_0x8b51('0x14'));var as=require(_0x8b51('0x15'));var hardwareService=require(_0x8b51('0x16'));var logger=require('../../config/logger')('api');var utils=require(_0x8b51('0x17'));var config=require(_0x8b51('0x18'));var licenseUtil=require(_0x8b51('0x19'));var db=require(_0x8b51('0x1a'))['db'];config[_0x8b51('0x1b')]=_['defaults'](config[_0x8b51('0x1b')],{'host':_0x8b51('0x1c'),'port':0x18eb});var socket=require(_0x8b51('0x1d'))(new Redis(config[_0x8b51('0x1b')]));require(_0x8b51('0x1e'))['register'](socket);function respondWithStatusCode(_0x4f83c4,_0x4388d6){_0x4388d6=_0x4388d6||0xcc;return function(_0x5c3c17){if(_0x5c3c17){return _0x4f83c4[_0x8b51('0x1f')](_0x4388d6);}return _0x4f83c4[_0x8b51('0x20')](_0x4388d6)[_0x8b51('0x21')]();};}function respondWithResult(_0x40bee8,_0x486b71){_0x486b71=_0x486b71||0xc8;return function(_0x1ddb16){if(_0x1ddb16){return _0x40bee8['status'](_0x486b71)[_0x8b51('0x22')](_0x1ddb16);}};}function respondWithFilteredResult(_0x4d231e,_0xa593ad){return function(_0x138cbc){if(_0x138cbc){var _0x51efe6=typeof _0xa593ad[_0x8b51('0x23')]===_0x8b51('0x24')&&typeof _0xa593ad['limit']==='undefined';var _0x5f3b51=_0x138cbc[_0x8b51('0x25')];var _0x4c81cb=_0x51efe6?0x0:_0xa593ad[_0x8b51('0x23')];var _0x2b5aed=_0x51efe6?_0x138cbc[_0x8b51('0x25')]:_0xa593ad['offset']+_0xa593ad[_0x8b51('0x26')];var _0x417dd8;if(_0x2b5aed>=_0x5f3b51){_0x2b5aed=_0x5f3b51;_0x417dd8=0xc8;}else{_0x417dd8=0xce;}_0x4d231e[_0x8b51('0x20')](_0x417dd8);return _0x4d231e[_0x8b51('0x27')]('Content-Range',_0x4c81cb+'-'+_0x2b5aed+'/'+_0x5f3b51)[_0x8b51('0x22')](_0x138cbc);}return null;};}function patchUpdates(_0x316019){return function(_0x55b891){try{jsonpatch['apply'](_0x55b891,_0x316019,!![]);}catch(_0x572819){return BPromise[_0x8b51('0x28')](_0x572819);}return _0x55b891[_0x8b51('0x29')]();};}function saveUpdates(_0x4c0f6f,_0x2003ff){return function(_0x15c270){if(_0x15c270){return _0x15c270[_0x8b51('0x2a')](_0x4c0f6f)['then'](function(_0x4e6a70){return _0x4e6a70;});}return null;};}function removeEntity(_0xfbf009,_0x1fea0a){return function(_0x3d79d7){if(_0x3d79d7){return _0x3d79d7[_0x8b51('0x2b')]()[_0x8b51('0x2c')](function(){var _0x445e64=_0x3d79d7[_0x8b51('0x2d')]({'plain':!![]});var _0x27fba1=_0x8b51('0x2e');return db[_0x8b51('0x2f')]['destroy']({'where':{'type':_0x27fba1,'resourceId':_0x445e64['id']}})[_0x8b51('0x2c')](function(){return _0x3d79d7;});})[_0x8b51('0x2c')](function(){_0xfbf009['status'](0xcc)[_0x8b51('0x21')]();});}};}function handleEntityNotFound(_0x2ae4fe,_0x3905c2){return function(_0x5ede53){if(!_0x5ede53){_0x2ae4fe[_0x8b51('0x1f')](0x194);}return _0x5ede53;};}function handleError(_0xb7ffdf,_0xc7318){_0xc7318=_0xc7318||0x1f4;return function(_0x254e69){logger['error'](_0x254e69[_0x8b51('0x30')]);if(_0x254e69[_0x8b51('0x31')]){delete _0x254e69[_0x8b51('0x31')];}_0xb7ffdf[_0x8b51('0x20')](_0xc7318)[_0x8b51('0x32')](_0x254e69);};}exports[_0x8b51('0x33')]=function(_0x412a51,_0x481971){var _0xfcf85d={},_0x4392ec={},_0x1e6c8d={'count':0x0,'rows':[]};var _0x3a4bd3=_[_0x8b51('0x34')](db[_0x8b51('0x35')]['rawAttributes'],function(_0x479ef2){return{'name':_0x479ef2[_0x8b51('0x36')],'type':_0x479ef2[_0x8b51('0x37')][_0x8b51('0x38')]};});_0x4392ec[_0x8b51('0x39')]=_['map'](_0x3a4bd3,_0x8b51('0x31'));_0x4392ec[_0x8b51('0x3a')]=_['keys'](_0x412a51['query']);_0x4392ec[_0x8b51('0x3b')]=_[_0x8b51('0x3c')](_0x4392ec[_0x8b51('0x39')],_0x4392ec[_0x8b51('0x3a')]);_0xfcf85d[_0x8b51('0x3d')]=_[_0x8b51('0x3c')](_0x4392ec[_0x8b51('0x39')],qs[_0x8b51('0x3e')](_0x412a51[_0x8b51('0x3a')][_0x8b51('0x3e')]));_0xfcf85d[_0x8b51('0x3d')]=_0xfcf85d[_0x8b51('0x3d')][_0x8b51('0x3f')]?_0xfcf85d['attributes']:_0x4392ec[_0x8b51('0x39')];if(!_0x412a51[_0x8b51('0x3a')]['hasOwnProperty'](_0x8b51('0x40'))){_0xfcf85d['limit']=qs[_0x8b51('0x26')](_0x412a51[_0x8b51('0x3a')]['limit']);_0xfcf85d['offset']=qs[_0x8b51('0x23')](_0x412a51['query'][_0x8b51('0x23')]);}_0xfcf85d['order']=qs['sort'](_0x412a51[_0x8b51('0x3a')]['sort']);_0xfcf85d[_0x8b51('0x41')]=qs[_0x8b51('0x3b')](_[_0x8b51('0x42')](_0x412a51['query'],_0x4392ec[_0x8b51('0x3b')]),_0x3a4bd3);if(_0x412a51['query'][_0x8b51('0x43')]){_0xfcf85d[_0x8b51('0x41')]=_[_0x8b51('0x44')](_0xfcf85d['where'],{'$or':_[_0x8b51('0x34')](_0x3a4bd3,function(_0x569a7b){if(_0x569a7b[_0x8b51('0x37')]!==_0x8b51('0x45')){var _0x372d6c={};_0x372d6c[_0x569a7b[_0x8b51('0x31')]]={'$like':'%'+_0x412a51[_0x8b51('0x3a')][_0x8b51('0x43')]+'%'};return _0x372d6c;}})});}_0xfcf85d=_[_0x8b51('0x44')]({},_0xfcf85d,_0x412a51[_0x8b51('0x46')]);var _0x5ed790={'where':_0xfcf85d[_0x8b51('0x41')]};return db['Plugin'][_0x8b51('0x25')](_0x5ed790)['then'](function(_0x1e3a68){_0x1e6c8d[_0x8b51('0x25')]=_0x1e3a68;if(_0x412a51['query'][_0x8b51('0x47')]){_0xfcf85d['include']=[{'all':!![]}];}return db[_0x8b51('0x35')][_0x8b51('0x48')](_0xfcf85d);})[_0x8b51('0x2c')](function(_0x10f936){_0x1e6c8d['rows']=_0x10f936;return _0x1e6c8d;})[_0x8b51('0x2c')](respondWithFilteredResult(_0x481971,_0xfcf85d))[_0x8b51('0x49')](handleError(_0x481971,null));};exports[_0x8b51('0x4a')]=function(_0x1aafb6,_0x1b1299){var _0x9831ca={'raw':!![],'where':{'id':_0x1aafb6['params']['id']}},_0x6d6a1e={};_0x6d6a1e[_0x8b51('0x39')]=_[_0x8b51('0x4b')](db[_0x8b51('0x35')][_0x8b51('0x4c')]);_0x6d6a1e['query']=_[_0x8b51('0x4b')](_0x1aafb6['query']);_0x6d6a1e[_0x8b51('0x3b')]=_[_0x8b51('0x3c')](_0x6d6a1e[_0x8b51('0x39')],_0x6d6a1e[_0x8b51('0x3a')]);_0x9831ca['attributes']=_['intersection'](_0x6d6a1e[_0x8b51('0x39')],qs[_0x8b51('0x3e')](_0x1aafb6[_0x8b51('0x3a')]['fields']));_0x9831ca[_0x8b51('0x3d')]=_0x9831ca['attributes'][_0x8b51('0x3f')]?_0x9831ca[_0x8b51('0x3d')]:_0x6d6a1e[_0x8b51('0x39')];if(_0x1aafb6['query']['includeAll']){_0x9831ca[_0x8b51('0x4d')]=[{'all':!![]}];}_0x9831ca=_[_0x8b51('0x44')]({},_0x9831ca,_0x1aafb6[_0x8b51('0x46')]);return db[_0x8b51('0x35')][_0x8b51('0x4e')](_0x9831ca)[_0x8b51('0x2c')](handleEntityNotFound(_0x1b1299,null))[_0x8b51('0x2c')](respondWithResult(_0x1b1299,null))[_0x8b51('0x49')](handleError(_0x1b1299,null));};exports[_0x8b51('0x4f')]=function(_0x2d8016,_0x2d4569,_0x23b0b4){return db[_0x8b51('0x35')][_0x8b51('0x4e')]({'where':{'id':_0x2d8016[_0x8b51('0x50')]['id']},'attributes':[_0x8b51('0x31'),_0x8b51('0x7')],'raw':!![]})[_0x8b51('0x2c')](handleEntityNotFound(_0x2d4569,null))[_0x8b51('0x2c')](function(_0x8b5809){if(_0x8b5809){var _0x2fb55e=path[_0x8b51('0x51')](config[_0x8b51('0x52')],'server/files/plugins',util[_0x8b51('0x53')]('%s.zip',path[_0x8b51('0x54')](_0x8b5809[_0x8b51('0x7')])));var _0x5aaad3=fs[_0x8b51('0x55')](_0x2fb55e);var _0x2f1c6c=archiver(_0x8b51('0x56'),{'zlib':{'level':0x9}});_0x2f1c6c['on'](_0x8b51('0x57'),function(_0x1e250d){if(_0x1e250d[_0x8b51('0x58')]===_0x8b51('0x59')){logger[_0x8b51('0x5a')](_0x1e250d);}else{throw new db['Sequelize'][(_0x8b51('0x5b'))](_0x8b51('0x5c'));}});_0x2f1c6c['on'](_0x8b51('0x5a'),function(_0x4ecca3){throw new db[(_0x8b51('0x5d'))][(_0x8b51('0x5b'))](_0x8b51('0x5c'));});_0x2f1c6c[_0x8b51('0x5e')](_0x5aaad3);_0x2f1c6c[_0x8b51('0x5f')](_0x8b51('0x60'),{'cwd':path[_0x8b51('0x51')](config[_0x8b51('0x52')],'server/files/plugins',path[_0x8b51('0x61')](_0x8b5809[_0x8b51('0x7')])),'ignore':[path['join'](path[_0x8b51('0x54')](_0x8b5809['path']),'node_modules/**/*'),path[_0x8b51('0x51')](path['basename'](_0x8b5809['path']),_0x8b51('0x62'))],'nodir':!![]})[_0x8b51('0x63')]();_0x5aaad3['on'](_0x8b51('0x64'),function(){if(!fs['existsSync'](_0x2fb55e)){throw new db['Sequelize'][(_0x8b51('0x5b'))](_0x8b51('0x65'));}return _0x2d4569['download'](_0x2fb55e,util[_0x8b51('0x53')](_0x8b51('0x66'),path[_0x8b51('0x54')](_0x8b5809['path'])),function(_0x1419d4){if(_0x1419d4){throw new db[(_0x8b51('0x5d'))][(_0x8b51('0x5b'))]('Error\x20while\x20downloading\x20the\x20plugin');}fs['unlinkSync'](_0x2fb55e);logger[_0x8b51('0x67')](_0x8b51('0x68'));logger['info'](_0x8b51('0x69'));});});}return null;})[_0x8b51('0x49')](handleError(_0x2d4569,null));};exports['upload']=function(_0x4aeaaa,_0x12a488,_0x203df3){var _0x57b299=path['basename'](_0x4aeaaa[_0x8b51('0x6a')][_0x8b51('0x6b')],path[_0x8b51('0x6c')](_0x4aeaaa[_0x8b51('0x6a')]['filename']));var _0x5e117b=path[_0x8b51('0x51')](config[_0x8b51('0x52')],_0x8b51('0x6d'),_0x4aeaaa['file'][_0x8b51('0x6b')]);var _0x3f75e0=path[_0x8b51('0x51')](config[_0x8b51('0x52')],_0x8b51('0x6d'),_0x57b299);logger[_0x8b51('0x67')]('Plugin\x20upload\x20filepath:\x20%s',_0x5e117b);logger[_0x8b51('0x67')](_0x8b51('0x6e'),_0x3f75e0);try{fs['chmodSync'](_0x5e117b,parseInt(_0x8b51('0x6f'),0x8));extract(_0x5e117b,{'dir':_0x3f75e0},function(_0x2e3ed9){if(_0x2e3ed9){logger[_0x8b51('0x5a')](_0x2e3ed9);handleError(_0x2e3ed9,!![]);};var _0x217a36=fs['readdirSync'](_0x3f75e0);if(_0x217a36[_0x8b51('0x3f')]>0x1){removeReferences(_0x5e117b,_0x3f75e0);logger[_0x8b51('0x5a')]('Invalid\x20plugin\x20structure');return _0x203df3(new Error('Invalid\x20plugin\x20structure'));}var _0x23d57a=fs[_0x8b51('0x70')](path[_0x8b51('0x51')](_0x3f75e0,_0x217a36[0x0]));if(_0x23d57a[_0x8b51('0x71')]()){removeReferences(_0x5e117b,_0x3f75e0);logger[_0x8b51('0x5a')](_0x8b51('0x72'));return _0x203df3(new Error(_0x8b51('0x72')));}if(_0x23d57a[_0x8b51('0x73')]()){var _0x2d2591=fs['readdirSync'](path['join'](_0x3f75e0,_0x217a36[0x0]));if(_0x2d2591[_0x8b51('0x3f')]===0x0){removeReferences(_0x5e117b,_0x3f75e0);logger[_0x8b51('0x5a')](_0x8b51('0x72'));return _0x203df3(new Error('Invalid\x20plugin\x20structure'));}var _0x4dd710=_0x2d2591[_0x8b51('0x74')](function(_0x5cee8e){return _0x5cee8e===_0x8b51('0x75');});if(!_0x4dd710){return _0x203df3(new Error(_0x8b51('0x76')));}var _0x343fb5=fs[_0x8b51('0x77')](path[_0x8b51('0x51')](_0x3f75e0,_0x217a36[0x0],_0x8b51('0x75')));var _0x122ff7=JSON['parse'](_0x343fb5);if(_0x8b51('0x24')==typeof _0x122ff7['name']){return _0x203df3(new Error(_0x8b51('0x78')));}if(_0x8b51('0x24')==typeof _0x122ff7[_0x8b51('0x37')]){return _0x203df3(new Error('Invalid\x20manifest:\x20type\x20missing'));}if(_0x8b51('0x24')==typeof _0x122ff7['version']){return _0x203df3(new Error(_0x8b51('0x79')));}if(_0x8b51('0x24')==typeof _0x122ff7[_0x8b51('0x7a')]){return _0x203df3(new Error(_0x8b51('0x7b')));}if(_0x122ff7['type']===_0x8b51('0x7c')){if('undefined'==typeof _0x122ff7['parameters'][_0x8b51('0x7d')]){return _0x203df3(new Error('Invalid\x20manifest:\x20views\x20missing'));}if(_0x8b51('0x24')==typeof _0x122ff7['parameters'][_0x8b51('0x7d')][_0x8b51('0x7e')]&&_0x8b51('0x24')==typeof _0x122ff7[_0x8b51('0x7a')][_0x8b51('0x7d')]['agent']){return _0x203df3(new Error(_0x8b51('0x7f')));}}else if(_0x122ff7[_0x8b51('0x37')]===_0x8b51('0x80')){if(_0x8b51('0x24')==typeof _0x122ff7[_0x8b51('0x7a')][_0x8b51('0x81')]){return _0x203df3(new Error(_0x8b51('0x82')));}if(_0x8b51('0x24')==typeof _0x122ff7[_0x8b51('0x7a')][_0x8b51('0x83')]){return _0x203df3(new Error(_0x8b51('0x84')));}}else{return _0x203df3(new Error(_0x8b51('0x85')));}var _0xae9d9c=_0x122ff7[_0x8b51('0x31')];var _0x233330=_0x122ff7[_0x8b51('0x86')];var _0x1942bf=_0x122ff7[_0x8b51('0x37')];var _0x495c7f=_0x122ff7[_0x8b51('0x87')]?_0x122ff7[_0x8b51('0x87')]:_0x8b51('0x88');var _0x146098=_0x122ff7[_0x8b51('0x89')]?_0x122ff7[_0x8b51('0x89')]:_0x8b51('0x8a');var _0x410abe='';var _0x1c87a8='';var _0x492ff7='';var _0x44bea1='';var _0x2a4210=_0x122ff7[_0x8b51('0x8b')];if(_0x1942bf===_0x8b51('0x7c')){if('undefined'!=typeof _0x122ff7[_0x8b51('0x7a')][_0x8b51('0x7d')][_0x8b51('0x7e')]){var _0x3aab6a=_0x122ff7[_0x8b51('0x7a')]['views'][_0x8b51('0x7e')];if(!/^(f|ht)tps?:\/\//i[_0x8b51('0x8c')](_0x3aab6a)){_0x410abe=path[_0x8b51('0x51')](_0x8b51('0x8d'),_0x57b299,_0x217a36[0x0],_0x3aab6a);}else{_0x410abe=_0x3aab6a;}}else{logger[_0x8b51('0x67')](_0x8b51('0x8e'));}if(_0x8b51('0x24')!=typeof _0x122ff7[_0x8b51('0x7a')]['views'][_0x8b51('0x8f')]){var _0x4764ea=_0x122ff7['parameters']['views'][_0x8b51('0x8f')];if(!/^(f|ht)tps?:\/\//i[_0x8b51('0x8c')](_0x4764ea)){_0x1c87a8=path[_0x8b51('0x51')]('plugins',_0x57b299,_0x217a36[0x0],_0x4764ea);}else{_0x1c87a8=_0x4764ea;}}else{logger[_0x8b51('0x67')](_0x8b51('0x90'));}}else if(_0x1942bf===_0x8b51('0x80')){_0x492ff7=_0x122ff7['parameters'][_0x8b51('0x81')];_0x44bea1=_0x122ff7['parameters'][_0x8b51('0x83')];if(_0x8b51('0x24')!=typeof _0x122ff7['parameters'][_0x8b51('0x7d')]){if(_0x8b51('0x24')!=typeof _0x122ff7[_0x8b51('0x7a')][_0x8b51('0x7d')][_0x8b51('0x7e')]){var _0x3aab6a=_0x122ff7['parameters'][_0x8b51('0x7d')][_0x8b51('0x7e')];if(!/^(f|ht)tps?:\/\//i[_0x8b51('0x8c')](_0x3aab6a)){_0x410abe=path[_0x8b51('0x51')](_0x8b51('0x8d'),_0x57b299,_0x217a36[0x0],_0x3aab6a);}else{_0x410abe=_0x3aab6a;}}if(_0x8b51('0x24')!=typeof _0x122ff7[_0x8b51('0x7a')][_0x8b51('0x7d')][_0x8b51('0x8f')]){var _0x4764ea=_0x122ff7[_0x8b51('0x7a')][_0x8b51('0x7d')][_0x8b51('0x8f')];if(!/^(f|ht)tps?:\/\//i[_0x8b51('0x8c')](_0x4764ea)){_0x1c87a8=path[_0x8b51('0x51')](_0x8b51('0x8d'),_0x57b299,_0x217a36[0x0],_0x4764ea);}else{_0x1c87a8=_0x4764ea;}}}}var _0x4ffbd={'name':_0xae9d9c,'description':_0x233330,'path':path['join'](_0x57b299,_0x217a36[0x0]),'type':_0x1942bf,'sidebar':_0x495c7f,'icon':_0x146098,'adminUrl':_0x410abe,'agentUrl':_0x1c87a8,'scriptName':_0x492ff7,'scriptPath':_0x44bea1,'version':_0x2a4210};removeReferences(_0x5e117b,null);return db[_0x8b51('0x35')][_0x8b51('0x91')](_0x4ffbd)[_0x8b51('0x2c')](function(_0x51d312){var _0x1ea233={'role':_0x4aeaaa[_0x8b51('0x92')]['role'],'userProfileId':_0x4aeaaa[_0x8b51('0x92')]['userProfileId']};if(!_0x1ea233)throw new Error(_0x8b51('0x93'));if(_0x1ea233[_0x8b51('0x94')]==='user'){var _0x2bb5de=_0x51d312[_0x8b51('0x2d')]({'plain':!![]});return db[_0x8b51('0x95')][_0x8b51('0x4e')]({'where':{'name':_0x8b51('0x2e'),'userProfileId':_0x1ea233[_0x8b51('0x96')]},'raw':!![]})[_0x8b51('0x2c')](function(_0x5ed905){if(_0x5ed905&&_0x5ed905[_0x8b51('0x97')]===0x0){return db[_0x8b51('0x2f')][_0x8b51('0x91')]({'name':_0x2bb5de[_0x8b51('0x31')],'resourceId':_0x2bb5de['id'],'type':_0x5ed905[_0x8b51('0x31')],'sectionId':_0x5ed905['id']},{})[_0x8b51('0x2c')](function(){return _0x51d312;});}else{return _0x51d312;}})[_0x8b51('0x49')](function(_0x462ca1){logger[_0x8b51('0x5a')](_0x8b51('0x98'),_0x462ca1);throw _0x462ca1;});}return _0x51d312;})[_0x8b51('0x2c')](respondWithResult(_0x12a488,null))[_0x8b51('0x49')](handleError(_0x12a488,null));}});}catch(_0x47610b){_0x12a488['status'](0x1f4)[_0x8b51('0x32')](_0x47610b);}};function removeReferences(_0x5bf3e2,_0x3d106e){try{if(_0x5bf3e2){fs[_0x8b51('0x99')](_0x5bf3e2);logger['info'](_0x8b51('0x9a'));}if(_0x3d106e){rimraf(_0x3d106e,function(){});logger[_0x8b51('0x67')](_0x8b51('0x9b'));}}catch(_0x4c19ae){logger[_0x8b51('0x5a')](_0x4c19ae);}}exports[_0x8b51('0x2a')]=function(_0x1bee70,_0x555872,_0x433c03){return db[_0x8b51('0x35')][_0x8b51('0x4e')]({'where':{'id':_0x1bee70[_0x8b51('0x50')]['id']}})[_0x8b51('0x2c')](handleEntityNotFound(_0x555872,null))[_0x8b51('0x2c')](saveUpdates(_0x1bee70[_0x8b51('0x92')],null))[_0x8b51('0x2c')](respondWithResult(_0x555872,null))['catch'](handleError(_0x555872,null));};exports[_0x8b51('0x9c')]=function(_0x25abcb,_0x2f377e,_0x4e3a14){return db[_0x8b51('0x35')][_0x8b51('0x4e')]({'where':{'id':_0x25abcb[_0x8b51('0x50')]['id']}})[_0x8b51('0x2c')](function(_0x3ffebf){if(_0x3ffebf){return _0x3ffebf[_0x8b51('0x2b')]();}})[_0x8b51('0x2c')](function(_0x55c2e3){rimraf(path[_0x8b51('0x51')](config['root'],_0x8b51('0x6d'),path[_0x8b51('0x61')](_0x55c2e3[_0x8b51('0x7')])),function(){});return _0x55c2e3;})[_0x8b51('0x2c')](handleEntityNotFound(_0x2f377e,null))[_0x8b51('0x2c')](respondWithStatusCode(_0x2f377e,null))[_0x8b51('0x49')](handleError(_0x2f377e,null));};exports[_0x8b51('0x9d')]=function(_0x1072c6,_0x206ca1,_0x2f8a3d){return BPromise['resolve']()[_0x8b51('0x2c')](function(){if(!_0x1072c6[_0x8b51('0x3a')][_0x8b51('0x7')]){throw new Error(_0x8b51('0x9e'));}if(!_0x1072c6[_0x8b51('0x3a')][_0x8b51('0x9f')]){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x496103=_0x1072c6[_0x8b51('0x3a')][_0x8b51('0xa0')]?_0x1072c6[_0x8b51('0x3a')][_0x8b51('0xa0')]+':'+_0x1072c6[_0x8b51('0x3a')][_0x8b51('0x9f')]:_0x8b51('0xa1')+_0x1072c6[_0x8b51('0x3a')][_0x8b51('0x9f')];var _0x460402=_0x1072c6[_0x8b51('0x3a')][_0x8b51('0x22')]?_0x1072c6['query'][_0x8b51('0x22')]:!![];var _0x26560b=_0x1072c6[_0x8b51('0x3a')][_0x8b51('0xa2')]?_0x1072c6[_0x8b51('0x3a')][_0x8b51('0xa2')]:null;var _0x513a0d={'method':_0x1072c6[_0x8b51('0xa3')],'uri':util['format'](_0x8b51('0xa4'),_0x496103,_0x1072c6[_0x8b51('0x3a')][_0x8b51('0x7')]),'json':_0x460402,'resolveWithFullResponse':!![],'encoding':_0x26560b,'qs':_0x1072c6[_0x8b51('0x3a')]};if(_0x1072c6[_0x8b51('0xa5')]){_0x513a0d[_0x8b51('0xa5')]=_0x1072c6[_0x8b51('0xa5')];if(_0x513a0d[_0x8b51('0xa5')]['content-length']){delete _0x513a0d[_0x8b51('0xa5')][_0x8b51('0xa6')];}}if(_0x513a0d[_0x8b51('0xa5')][_0x8b51('0xa7')]){delete _0x513a0d[_0x8b51('0xa5')][_0x8b51('0xa7')];}return rp(_0x513a0d);})[_0x8b51('0x2c')](function(_0x271d85){if(_0x271d85){_0x206ca1[_0x8b51('0x27')](_0x271d85[_0x8b51('0xa5')]);logger[_0x8b51('0x67')](_0x271d85['body']);if(_[_0x8b51('0xa8')](_0x1072c6['query'][_0x8b51('0x7')],'download')&&_0x271d85['statusCode']==0x1f4){return _0x206ca1[_0x8b51('0x1f')](_0x271d85[_0x8b51('0xa9')]);}else{return _0x206ca1[_0x8b51('0x20')](_0x271d85[_0x8b51('0xa9')])[_0x8b51('0x32')](_0x271d85['body']);}}else{return _0x206ca1[_0x8b51('0x1f')](0xc8);}})[_0x8b51('0x49')](handleError(_0x206ca1,null));};exports[_0x8b51('0xaa')]=function(_0x115346,_0x3ad3e5,_0x1e703a){return BPromise[_0x8b51('0xab')]()[_0x8b51('0x2c')](function(){if(!_0x115346[_0x8b51('0x3a')]['path']){throw new Error(_0x8b51('0x9e'));}if(!_0x115346[_0x8b51('0x3a')][_0x8b51('0x9f')]){throw new Error(_0x8b51('0xac'));}var _0x726cff=_0x115346[_0x8b51('0x3a')][_0x8b51('0xa0')]?_0x115346[_0x8b51('0x3a')][_0x8b51('0xa0')]+':'+_0x115346[_0x8b51('0x3a')][_0x8b51('0x9f')]:_0x8b51('0xa1')+_0x115346['query'][_0x8b51('0x9f')];var _0x2a51a9=_0x115346[_0x8b51('0x3a')]['json']?_0x115346[_0x8b51('0x3a')][_0x8b51('0x22')]:!![];var _0x263955=_0x115346[_0x8b51('0x3a')]['encoding']?_0x115346[_0x8b51('0x3a')][_0x8b51('0xa2')]:null;var _0x5a0dd4={'method':_0x115346['method'],'uri':util[_0x8b51('0x53')](_0x8b51('0xa4'),_0x726cff,_0x115346[_0x8b51('0x3a')][_0x8b51('0x7')]),'json':_0x2a51a9,'resolveWithFullResponse':!![],'encoding':_0x263955,'body':_0x115346[_0x8b51('0x92')]};if(_0x115346[_0x8b51('0xa5')]){_0x5a0dd4[_0x8b51('0xa5')]=_0x115346[_0x8b51('0xa5')];if(_0x5a0dd4[_0x8b51('0xa5')][_0x8b51('0xa6')]){delete _0x5a0dd4['headers'][_0x8b51('0xa6')];}}if(_0x5a0dd4['headers'][_0x8b51('0xa7')]){delete _0x5a0dd4[_0x8b51('0xa5')][_0x8b51('0xa7')];}return rp(_0x5a0dd4);})[_0x8b51('0x2c')](function(_0x5c4171){if(_0x5c4171){_0x3ad3e5[_0x8b51('0x27')](_0x5c4171[_0x8b51('0xa5')]);logger['info'](_0x5c4171[_0x8b51('0x92')]);return _0x3ad3e5[_0x8b51('0x20')](_0x5c4171[_0x8b51('0xa9')])['send'](_0x5c4171[_0x8b51('0x92')]);}else{return _0x3ad3e5['sendStatus'](0xc8);}})[_0x8b51('0x49')](handleError(_0x3ad3e5,null));};