f6a5fd293a8f429a2ab55e47d6051929f599db13
[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 _0x4ddf=['role','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','send','Extracted\x20folder\x20removed','delete','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','port','encoding','%s%s','headers','content-length','content-type','endsWith','statusCode','webhookPost','\x27PORT\x27\x20parameter\x20not\x20specified','method','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','extract-zip','archiver','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','./plugin.socket','register','sendStatus','status','end','json','offset','set','Content-Range','apply','reject','save','update','then','get','Plugins','UserProfileResource','destroy','error','stack','name','map','Plugin','rawAttributes','fieldName','type','key','query','keys','filters','model','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','merge','VIRTUAL','filter','count','includeAll','include','findAll','catch','show','params','intersection','options','find','download','join','root','server/files/plugins','format','%s.zip','basename','createWriteStream','zip','code','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','**/*','dirname','attachments/**/*','finalize','existsSync','Plugin\x20not\x20found','unlinkSync','info','Temporary\x20file\x20removed','file','filename','extname','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','0777','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','some','manifest.json','Plugin\x20manifest\x20missing','parse','undefined','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','views','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','sidebar','always','icon','icon-apps','test','Warning:\x20admin\x20view\x20not\x20specified','plugins','Warning:\x20agent\x20view\x20not\x20specified'];(function(_0x36aa4e,_0x566fad){var _0x2add24=function(_0xd65d55){while(--_0xd65d55){_0x36aa4e['push'](_0x36aa4e['shift']());}};_0x2add24(++_0x566fad);}(_0x4ddf,0x180));var _0xf4dd=function(_0x6f5255,_0x31c405){_0x6f5255=_0x6f5255-0x0;var _0x3e852b=_0x4ddf[_0x6f5255];return _0x3e852b;};'use strict';var pdf=require(_0xf4dd('0x0'));var emlformat=require(_0xf4dd('0x1'));var rimraf=require(_0xf4dd('0x2'));var zipdir=require(_0xf4dd('0x3'));var jsonpatch=require(_0xf4dd('0x4'));var rp=require('request-promise');var moment=require(_0xf4dd('0x5'));var BPromise=require(_0xf4dd('0x6'));var Mustache=require(_0xf4dd('0x7'));var util=require('util');var path=require(_0xf4dd('0x8'));var sox=require(_0xf4dd('0x9'));var csv=require(_0xf4dd('0xa'));var ejs=require(_0xf4dd('0xb'));var fs=require('fs');var _=require(_0xf4dd('0xc'));var squel=require(_0xf4dd('0xd'));var crypto=require(_0xf4dd('0xe'));var jsforce=require(_0xf4dd('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xf4dd('0xa'));var querystring=require(_0xf4dd('0x10'));var Papa=require('papaparse');var extract=require(_0xf4dd('0x11'));var rimraf=require(_0xf4dd('0x2'));var archiver=require(_0xf4dd('0x12'));var Redis=require(_0xf4dd('0x13'));var authService=require(_0xf4dd('0x14'));var qs=require(_0xf4dd('0x15'));var as=require(_0xf4dd('0x16'));var hardwareService=require(_0xf4dd('0x17'));var logger=require(_0xf4dd('0x18'))(_0xf4dd('0x19'));var utils=require(_0xf4dd('0x1a'));var config=require(_0xf4dd('0x1b'));var db=require(_0xf4dd('0x1c'))['db'];config[_0xf4dd('0x1d')]=_[_0xf4dd('0x1e')](config[_0xf4dd('0x1d')],{'host':_0xf4dd('0x1f'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xf4dd('0x20'))[_0xf4dd('0x21')](socket);function respondWithStatusCode(_0x51e12e,_0x4c1cb2){_0x4c1cb2=_0x4c1cb2||0xcc;return function(_0x1f9ed){if(_0x1f9ed){return _0x51e12e[_0xf4dd('0x22')](_0x4c1cb2);}return _0x51e12e[_0xf4dd('0x23')](_0x4c1cb2)[_0xf4dd('0x24')]();};}function respondWithResult(_0x45f0b6,_0x14e6bd){_0x14e6bd=_0x14e6bd||0xc8;return function(_0x3b1123){if(_0x3b1123){return _0x45f0b6[_0xf4dd('0x23')](_0x14e6bd)[_0xf4dd('0x25')](_0x3b1123);}};}function respondWithFilteredResult(_0x5f40d5,_0x1afc4e){return function(_0x4bdeb6){if(_0x4bdeb6){var _0x2bbb18=_0x4bdeb6['count'],_0x4ce096=_0x1afc4e['offset'],_0x4c40de=_0x1afc4e[_0xf4dd('0x26')]+_0x1afc4e['limit'],_0xf2862;if(_0x4c40de>=_0x2bbb18){_0x4c40de=_0x2bbb18;_0xf2862=0xc8;}else{_0xf2862=0xce;}_0x5f40d5[_0xf4dd('0x23')](_0xf2862);return _0x5f40d5[_0xf4dd('0x27')](_0xf4dd('0x28'),_0x4ce096+'-'+_0x4c40de+'/'+_0x2bbb18)[_0xf4dd('0x25')](_0x4bdeb6);}return null;};}function patchUpdates(_0x5a1cba){return function(_0x1ac26a){try{jsonpatch[_0xf4dd('0x29')](_0x1ac26a,_0x5a1cba,!![]);}catch(_0x325696){return BPromise[_0xf4dd('0x2a')](_0x325696);}return _0x1ac26a[_0xf4dd('0x2b')]();};}function saveUpdates(_0x227527,_0xa505a2){return function(_0x4f8fc7){if(_0x4f8fc7){return _0x4f8fc7[_0xf4dd('0x2c')](_0x227527)[_0xf4dd('0x2d')](function(_0x40775d){return _0x40775d;});}return null;};}function removeEntity(_0x310174,_0x1c8c1c){return function(_0x434242){if(_0x434242){return _0x434242['destroy']()[_0xf4dd('0x2d')](function(){var _0xd133ba=_0x434242[_0xf4dd('0x2e')]({'plain':!![]});var _0x3e5641=_0xf4dd('0x2f');return db[_0xf4dd('0x30')][_0xf4dd('0x31')]({'where':{'type':_0x3e5641,'resourceId':_0xd133ba['id']}})[_0xf4dd('0x2d')](function(){return _0x434242;});})['then'](function(){_0x310174[_0xf4dd('0x23')](0xcc)[_0xf4dd('0x24')]();});}};}function handleEntityNotFound(_0x409803,_0xa8afc5){return function(_0x13409d){if(!_0x13409d){_0x409803[_0xf4dd('0x22')](0x194);}return _0x13409d;};}function handleError(_0x295690,_0x52a231){_0x52a231=_0x52a231||0x1f4;return function(_0x79bff4){logger[_0xf4dd('0x32')](_0x79bff4[_0xf4dd('0x33')]);if(_0x79bff4[_0xf4dd('0x34')]){delete _0x79bff4[_0xf4dd('0x34')];}_0x295690[_0xf4dd('0x23')](_0x52a231)['send'](_0x79bff4);};}exports['index']=function(_0x299449,_0x27a759){var _0x49f3a8={},_0x3d777b={},_0x1871db={'count':0x0,'rows':[]};var _0x49ecd6=_[_0xf4dd('0x35')](db[_0xf4dd('0x36')][_0xf4dd('0x37')],function(_0xbd7abb){return{'name':_0xbd7abb[_0xf4dd('0x38')],'type':_0xbd7abb[_0xf4dd('0x39')][_0xf4dd('0x3a')]};});_0x3d777b['model']=_[_0xf4dd('0x35')](_0x49ecd6,_0xf4dd('0x34'));_0x3d777b[_0xf4dd('0x3b')]=_[_0xf4dd('0x3c')](_0x299449[_0xf4dd('0x3b')]);_0x3d777b[_0xf4dd('0x3d')]=_['intersection'](_0x3d777b[_0xf4dd('0x3e')],_0x3d777b[_0xf4dd('0x3b')]);_0x49f3a8['attributes']=_['intersection'](_0x3d777b[_0xf4dd('0x3e')],qs[_0xf4dd('0x3f')](_0x299449[_0xf4dd('0x3b')][_0xf4dd('0x3f')]));_0x49f3a8[_0xf4dd('0x40')]=_0x49f3a8[_0xf4dd('0x40')][_0xf4dd('0x41')]?_0x49f3a8['attributes']:_0x3d777b[_0xf4dd('0x3e')];if(!_0x299449[_0xf4dd('0x3b')][_0xf4dd('0x42')](_0xf4dd('0x43'))){_0x49f3a8[_0xf4dd('0x44')]=qs[_0xf4dd('0x44')](_0x299449['query'][_0xf4dd('0x44')]);_0x49f3a8[_0xf4dd('0x26')]=qs[_0xf4dd('0x26')](_0x299449['query'][_0xf4dd('0x26')]);}_0x49f3a8[_0xf4dd('0x45')]=qs[_0xf4dd('0x46')](_0x299449[_0xf4dd('0x3b')][_0xf4dd('0x46')]);_0x49f3a8[_0xf4dd('0x47')]=qs[_0xf4dd('0x3d')](_[_0xf4dd('0x48')](_0x299449[_0xf4dd('0x3b')],_0x3d777b[_0xf4dd('0x3d')]));if(_0x299449['query']['filter']){_0x49f3a8[_0xf4dd('0x47')]=_[_0xf4dd('0x49')](_0x49f3a8[_0xf4dd('0x47')],{'$or':_[_0xf4dd('0x35')](_0x49ecd6,function(_0x40959c){if(_0x40959c['type']!==_0xf4dd('0x4a')){var _0x2b0265={};_0x2b0265[_0x40959c['name']]={'$like':'%'+_0x299449[_0xf4dd('0x3b')][_0xf4dd('0x4b')]+'%'};return _0x2b0265;}})});}_0x49f3a8=_[_0xf4dd('0x49')]({},_0x49f3a8,_0x299449['options']);var _0x5cd45b={'where':_0x49f3a8[_0xf4dd('0x47')]};return db[_0xf4dd('0x36')][_0xf4dd('0x4c')](_0x5cd45b)[_0xf4dd('0x2d')](function(_0x4ffd42){_0x1871db[_0xf4dd('0x4c')]=_0x4ffd42;if(_0x299449[_0xf4dd('0x3b')][_0xf4dd('0x4d')]){_0x49f3a8[_0xf4dd('0x4e')]=[{'all':!![]}];}return db['Plugin'][_0xf4dd('0x4f')](_0x49f3a8);})[_0xf4dd('0x2d')](function(_0xb6285c){_0x1871db['rows']=_0xb6285c;return _0x1871db;})[_0xf4dd('0x2d')](respondWithFilteredResult(_0x27a759,_0x49f3a8))[_0xf4dd('0x50')](handleError(_0x27a759,null));};exports[_0xf4dd('0x51')]=function(_0x52dad1,_0x272b6f){var _0x259038={'raw':!![],'where':{'id':_0x52dad1[_0xf4dd('0x52')]['id']}},_0x302eb9={};_0x302eb9['model']=_[_0xf4dd('0x3c')](db['Plugin']['rawAttributes']);_0x302eb9['query']=_[_0xf4dd('0x3c')](_0x52dad1[_0xf4dd('0x3b')]);_0x302eb9[_0xf4dd('0x3d')]=_[_0xf4dd('0x53')](_0x302eb9[_0xf4dd('0x3e')],_0x302eb9[_0xf4dd('0x3b')]);_0x259038[_0xf4dd('0x40')]=_['intersection'](_0x302eb9[_0xf4dd('0x3e')],qs['fields'](_0x52dad1['query']['fields']));_0x259038[_0xf4dd('0x40')]=_0x259038[_0xf4dd('0x40')][_0xf4dd('0x41')]?_0x259038[_0xf4dd('0x40')]:_0x302eb9[_0xf4dd('0x3e')];if(_0x52dad1[_0xf4dd('0x3b')][_0xf4dd('0x4d')]){_0x259038[_0xf4dd('0x4e')]=[{'all':!![]}];}_0x259038=_[_0xf4dd('0x49')]({},_0x259038,_0x52dad1[_0xf4dd('0x54')]);return db['Plugin'][_0xf4dd('0x55')](_0x259038)[_0xf4dd('0x2d')](handleEntityNotFound(_0x272b6f,null))[_0xf4dd('0x2d')](respondWithResult(_0x272b6f,null))[_0xf4dd('0x50')](handleError(_0x272b6f,null));};exports[_0xf4dd('0x56')]=function(_0x57f5ad,_0x1a0909,_0x1b4472){return db[_0xf4dd('0x36')][_0xf4dd('0x55')]({'where':{'id':_0x57f5ad[_0xf4dd('0x52')]['id']},'attributes':[_0xf4dd('0x34'),_0xf4dd('0x8')],'raw':!![]})[_0xf4dd('0x2d')](handleEntityNotFound(_0x1a0909,null))['then'](function(_0x31ce76){if(_0x31ce76){var _0x24a82d=path[_0xf4dd('0x57')](config[_0xf4dd('0x58')],_0xf4dd('0x59'),util[_0xf4dd('0x5a')](_0xf4dd('0x5b'),path[_0xf4dd('0x5c')](_0x31ce76[_0xf4dd('0x8')])));var _0x732a7a=fs[_0xf4dd('0x5d')](_0x24a82d);var _0x2e0b22=archiver(_0xf4dd('0x5e'),{'zlib':{'level':0x9}});_0x2e0b22['on']('warning',function(_0x5aa6f4){if(_0x5aa6f4[_0xf4dd('0x5f')]==='ENOENT'){logger[_0xf4dd('0x32')](_0x5aa6f4);}else{throw new db[(_0xf4dd('0x60'))][(_0xf4dd('0x61'))](_0xf4dd('0x62'));}});_0x2e0b22['on'](_0xf4dd('0x32'),function(_0xf50ff8){throw new db[(_0xf4dd('0x60'))][(_0xf4dd('0x61'))]('Error\x20while\x20generating\x20the\x20zip\x20archive');});_0x2e0b22[_0xf4dd('0x63')](_0x732a7a);_0x2e0b22[_0xf4dd('0x64')](_0xf4dd('0x65'),{'cwd':path[_0xf4dd('0x57')](config[_0xf4dd('0x58')],_0xf4dd('0x59'),path[_0xf4dd('0x66')](_0x31ce76[_0xf4dd('0x8')])),'ignore':[path[_0xf4dd('0x57')](path[_0xf4dd('0x5c')](_0x31ce76[_0xf4dd('0x8')]),'node_modules/**/*'),path['join'](path[_0xf4dd('0x5c')](_0x31ce76[_0xf4dd('0x8')]),_0xf4dd('0x67'))],'nodir':!![]})[_0xf4dd('0x68')]();_0x732a7a['on']('close',function(){if(!fs[_0xf4dd('0x69')](_0x24a82d)){throw new db[(_0xf4dd('0x60'))][(_0xf4dd('0x61'))](_0xf4dd('0x6a'));}return _0x1a0909[_0xf4dd('0x56')](_0x24a82d,util['format'](_0xf4dd('0x5b'),path[_0xf4dd('0x5c')](_0x31ce76[_0xf4dd('0x8')])),function(_0x30ab09){if(_0x30ab09){throw new db[(_0xf4dd('0x60'))][(_0xf4dd('0x61'))]('Error\x20while\x20downloading\x20the\x20plugin');}fs[_0xf4dd('0x6b')](_0x24a82d);logger['info']('Download\x20completed');logger[_0xf4dd('0x6c')](_0xf4dd('0x6d'));});});}return null;})[_0xf4dd('0x50')](handleError(_0x1a0909,null));};exports['upload']=function(_0x3de51d,_0x487d14,_0x44fb1d){var _0x402a16=path[_0xf4dd('0x5c')](_0x3de51d[_0xf4dd('0x6e')][_0xf4dd('0x6f')],path[_0xf4dd('0x70')](_0x3de51d[_0xf4dd('0x6e')][_0xf4dd('0x6f')]));var _0x5bb5e5=path[_0xf4dd('0x57')](config[_0xf4dd('0x58')],_0xf4dd('0x59'),_0x3de51d[_0xf4dd('0x6e')][_0xf4dd('0x6f')]);var _0x13fbb9=path[_0xf4dd('0x57')](config[_0xf4dd('0x58')],_0xf4dd('0x59'),_0x402a16);logger[_0xf4dd('0x6c')](_0xf4dd('0x71'),_0x5bb5e5);logger[_0xf4dd('0x6c')](_0xf4dd('0x72'),_0x13fbb9);try{fs['chmodSync'](_0x5bb5e5,parseInt(_0xf4dd('0x73'),0x8));extract(_0x5bb5e5,{'dir':_0x13fbb9},function(_0x15b105){if(_0x15b105){logger[_0xf4dd('0x32')](_0x15b105);handleError(_0x15b105,!![]);};var _0x5baf27=fs[_0xf4dd('0x74')](_0x13fbb9);if(_0x5baf27[_0xf4dd('0x41')]>0x1){removeReferences(_0x5bb5e5,_0x13fbb9);logger['error'](_0xf4dd('0x75'));return _0x44fb1d(new Error(_0xf4dd('0x75')));}var _0x17ff26=fs[_0xf4dd('0x76')](path[_0xf4dd('0x57')](_0x13fbb9,_0x5baf27[0x0]));if(_0x17ff26[_0xf4dd('0x77')]()){removeReferences(_0x5bb5e5,_0x13fbb9);logger[_0xf4dd('0x32')](_0xf4dd('0x75'));return _0x44fb1d(new Error(_0xf4dd('0x75')));}if(_0x17ff26[_0xf4dd('0x78')]()){var _0x2e9101=fs[_0xf4dd('0x74')](path[_0xf4dd('0x57')](_0x13fbb9,_0x5baf27[0x0]));if(_0x2e9101[_0xf4dd('0x41')]===0x0){removeReferences(_0x5bb5e5,_0x13fbb9);logger['error'](_0xf4dd('0x75'));return _0x44fb1d(new Error(_0xf4dd('0x75')));}var _0x244a39=_0x2e9101[_0xf4dd('0x79')](function(_0x13420c){return _0x13420c===_0xf4dd('0x7a');});if(!_0x244a39){return _0x44fb1d(new Error(_0xf4dd('0x7b')));}var _0x1ffea7=fs['readFileSync'](path[_0xf4dd('0x57')](_0x13fbb9,_0x5baf27[0x0],_0xf4dd('0x7a')));var _0x26856d=JSON[_0xf4dd('0x7c')](_0x1ffea7);if(_0xf4dd('0x7d')==typeof _0x26856d[_0xf4dd('0x34')]){return _0x44fb1d(new Error(_0xf4dd('0x7e')));}if(_0xf4dd('0x7d')==typeof _0x26856d[_0xf4dd('0x39')]){return _0x44fb1d(new Error(_0xf4dd('0x7f')));}if(_0xf4dd('0x7d')==typeof _0x26856d[_0xf4dd('0x80')]){return _0x44fb1d(new Error(_0xf4dd('0x81')));}if('undefined'==typeof _0x26856d[_0xf4dd('0x82')]){return _0x44fb1d(new Error(_0xf4dd('0x83')));}if(_0x26856d[_0xf4dd('0x39')]===_0xf4dd('0x84')){if(_0xf4dd('0x7d')==typeof _0x26856d['parameters'][_0xf4dd('0x85')]){return _0x44fb1d(new Error('Invalid\x20manifest:\x20views\x20missing'));}if(_0xf4dd('0x7d')==typeof _0x26856d[_0xf4dd('0x82')][_0xf4dd('0x85')][_0xf4dd('0x86')]&&_0xf4dd('0x7d')==typeof _0x26856d[_0xf4dd('0x82')][_0xf4dd('0x85')][_0xf4dd('0x87')]){return _0x44fb1d(new Error(_0xf4dd('0x88')));}}else if(_0x26856d['type']==='script'){if(_0xf4dd('0x7d')==typeof _0x26856d[_0xf4dd('0x82')][_0xf4dd('0x89')]){return _0x44fb1d(new Error(_0xf4dd('0x8a')));}if(_0xf4dd('0x7d')==typeof _0x26856d[_0xf4dd('0x82')][_0xf4dd('0x8b')]){return _0x44fb1d(new Error(_0xf4dd('0x8c')));}}else{return _0x44fb1d(new Error(_0xf4dd('0x8d')));}var _0x951b16=_0x26856d[_0xf4dd('0x34')];var _0x46dd21=_0x26856d['description'];var _0x2fd1ae=_0x26856d[_0xf4dd('0x39')];var _0x2278c9=_0x26856d[_0xf4dd('0x8e')]?_0x26856d[_0xf4dd('0x8e')]:_0xf4dd('0x8f');var _0x5c08f0=_0x26856d[_0xf4dd('0x90')]?_0x26856d[_0xf4dd('0x90')]:_0xf4dd('0x91');var _0x444c4b='';var _0x5f00db='';var _0x130a75='';var _0x241fa8='';var _0x315424=_0x26856d[_0xf4dd('0x80')];if(_0x2fd1ae===_0xf4dd('0x84')){if(_0xf4dd('0x7d')!=typeof _0x26856d[_0xf4dd('0x82')][_0xf4dd('0x85')][_0xf4dd('0x86')]){var _0x307bc7=_0x26856d[_0xf4dd('0x82')][_0xf4dd('0x85')][_0xf4dd('0x86')];if(!/^(f|ht)tps?:\/\//i[_0xf4dd('0x92')](_0x307bc7)){_0x444c4b=path[_0xf4dd('0x57')]('plugins',_0x402a16,_0x5baf27[0x0],_0x307bc7);}else{_0x444c4b=_0x307bc7;}}else{logger[_0xf4dd('0x6c')](_0xf4dd('0x93'));}if(_0xf4dd('0x7d')!=typeof _0x26856d[_0xf4dd('0x82')][_0xf4dd('0x85')]['agent']){var _0x17265a=_0x26856d[_0xf4dd('0x82')]['views'][_0xf4dd('0x87')];if(!/^(f|ht)tps?:\/\//i[_0xf4dd('0x92')](_0x17265a)){_0x5f00db=path[_0xf4dd('0x57')](_0xf4dd('0x94'),_0x402a16,_0x5baf27[0x0],_0x17265a);}else{_0x5f00db=_0x17265a;}}else{logger['info'](_0xf4dd('0x95'));}}else if(_0x2fd1ae==='script'){_0x130a75=_0x26856d[_0xf4dd('0x82')][_0xf4dd('0x89')];_0x241fa8=_0x26856d[_0xf4dd('0x82')]['scriptPath'];if(_0xf4dd('0x7d')!=typeof _0x26856d['parameters'][_0xf4dd('0x85')]){if(_0xf4dd('0x7d')!=typeof _0x26856d[_0xf4dd('0x82')][_0xf4dd('0x85')]['admin']){var _0x307bc7=_0x26856d['parameters']['views'][_0xf4dd('0x86')];if(!/^(f|ht)tps?:\/\//i[_0xf4dd('0x92')](_0x307bc7)){_0x444c4b=path[_0xf4dd('0x57')]('plugins',_0x402a16,_0x5baf27[0x0],_0x307bc7);}else{_0x444c4b=_0x307bc7;}}if(_0xf4dd('0x7d')!=typeof _0x26856d[_0xf4dd('0x82')][_0xf4dd('0x85')][_0xf4dd('0x87')]){var _0x17265a=_0x26856d[_0xf4dd('0x82')][_0xf4dd('0x85')][_0xf4dd('0x87')];if(!/^(f|ht)tps?:\/\//i[_0xf4dd('0x92')](_0x17265a)){_0x5f00db=path['join'](_0xf4dd('0x94'),_0x402a16,_0x5baf27[0x0],_0x17265a);}else{_0x5f00db=_0x17265a;}}}}var _0x5c552e={'name':_0x951b16,'description':_0x46dd21,'path':path[_0xf4dd('0x57')](_0x402a16,_0x5baf27[0x0]),'type':_0x2fd1ae,'sidebar':_0x2278c9,'icon':_0x5c08f0,'adminUrl':_0x444c4b,'agentUrl':_0x5f00db,'scriptName':_0x130a75,'scriptPath':_0x241fa8,'version':_0x315424};removeReferences(_0x5bb5e5,null);return db[_0xf4dd('0x36')]['create'](_0x5c552e)[_0xf4dd('0x2d')](function(_0x1ef9b9){var _0x59c173={'role':_0x3de51d['body'][_0xf4dd('0x96')],'userProfileId':_0x3de51d[_0xf4dd('0x97')][_0xf4dd('0x98')]};if(!_0x59c173)throw new Error(_0xf4dd('0x99'));if(_0x59c173[_0xf4dd('0x96')]===_0xf4dd('0x9a')){var _0x4a5b7a=_0x1ef9b9[_0xf4dd('0x2e')]({'plain':!![]});return db[_0xf4dd('0x9b')]['find']({'where':{'name':_0xf4dd('0x2f'),'userProfileId':_0x59c173[_0xf4dd('0x98')]},'raw':!![]})[_0xf4dd('0x2d')](function(_0xc9ec3e){if(_0xc9ec3e&&_0xc9ec3e[_0xf4dd('0x9c')]===0x0){return db[_0xf4dd('0x30')][_0xf4dd('0x9d')]({'name':_0x4a5b7a['name'],'resourceId':_0x4a5b7a['id'],'type':_0xc9ec3e[_0xf4dd('0x34')],'sectionId':_0xc9ec3e['id']},{})['then'](function(){return _0x1ef9b9;});}else{return _0x1ef9b9;}})[_0xf4dd('0x50')](function(_0x174d5f){logger[_0xf4dd('0x32')](_0xf4dd('0x9e'),_0x174d5f);throw _0x174d5f;});}return _0x1ef9b9;})['then'](respondWithResult(_0x487d14,null))[_0xf4dd('0x50')](handleError(_0x487d14,null));}});}catch(_0x3e0867){_0x487d14[_0xf4dd('0x23')](0x1f4)[_0xf4dd('0x9f')](_0x3e0867);}};function removeReferences(_0x132d0a,_0x544ec1){try{if(_0x132d0a){fs[_0xf4dd('0x6b')](_0x132d0a);logger['info']('Zip\x20archive\x20removed');}if(_0x544ec1){rimraf(_0x544ec1,function(){});logger[_0xf4dd('0x6c')](_0xf4dd('0xa0'));}}catch(_0x7254c1){logger[_0xf4dd('0x32')](_0x7254c1);}}exports[_0xf4dd('0x2c')]=function(_0x20ab59,_0x4167cf,_0x7c0d6c){return db[_0xf4dd('0x36')][_0xf4dd('0x55')]({'where':{'id':_0x20ab59[_0xf4dd('0x52')]['id']}})[_0xf4dd('0x2d')](handleEntityNotFound(_0x4167cf,null))[_0xf4dd('0x2d')](saveUpdates(_0x20ab59['body'],null))[_0xf4dd('0x2d')](respondWithResult(_0x4167cf,null))['catch'](handleError(_0x4167cf,null));};exports[_0xf4dd('0xa1')]=function(_0x4dc157,_0x3d5e65,_0x32a051){return db[_0xf4dd('0x36')][_0xf4dd('0x55')]({'where':{'id':_0x4dc157[_0xf4dd('0x52')]['id']}})[_0xf4dd('0x2d')](function(_0x5e2136){if(_0x5e2136){return _0x5e2136[_0xf4dd('0x31')]();}})[_0xf4dd('0x2d')](function(_0x62c267){rimraf(path[_0xf4dd('0x57')](config['root'],_0xf4dd('0x59'),path[_0xf4dd('0x66')](_0x62c267[_0xf4dd('0x8')])),function(){});return _0x62c267;})[_0xf4dd('0x2d')](handleEntityNotFound(_0x3d5e65,null))['then'](respondWithStatusCode(_0x3d5e65,null))['catch'](handleError(_0x3d5e65,null));};exports[_0xf4dd('0xa2')]=function(_0x38e7f2,_0x25443f,_0x2e23dd){return BPromise[_0xf4dd('0xa3')]()[_0xf4dd('0x2d')](function(){if(!_0x38e7f2[_0xf4dd('0x3b')]['path']){throw new Error(_0xf4dd('0xa4'));}if(!_0x38e7f2[_0xf4dd('0x3b')]['port']){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x3fa18e=_0x38e7f2[_0xf4dd('0x3b')][_0xf4dd('0xa5')]?_0x38e7f2[_0xf4dd('0x3b')]['hostname']+':'+_0x38e7f2['query']['port']:_0xf4dd('0xa6')+_0x38e7f2['query'][_0xf4dd('0xa7')];var _0x1fa458=_0x38e7f2[_0xf4dd('0x3b')][_0xf4dd('0x25')]?_0x38e7f2['query']['json']:!![];var _0x3f8c28=_0x38e7f2[_0xf4dd('0x3b')][_0xf4dd('0xa8')]?_0x38e7f2[_0xf4dd('0x3b')]['encoding']:null;var _0x5ea874={'method':_0x38e7f2['method'],'uri':util[_0xf4dd('0x5a')](_0xf4dd('0xa9'),_0x3fa18e,_0x38e7f2[_0xf4dd('0x3b')][_0xf4dd('0x8')]),'json':_0x1fa458,'resolveWithFullResponse':!![],'encoding':_0x3f8c28,'qs':_0x38e7f2[_0xf4dd('0x3b')]};if(_0x38e7f2[_0xf4dd('0xaa')]){_0x5ea874[_0xf4dd('0xaa')]=_0x38e7f2['headers'];if(_0x5ea874[_0xf4dd('0xaa')][_0xf4dd('0xab')]){delete _0x5ea874[_0xf4dd('0xaa')][_0xf4dd('0xab')];}}if(_0x5ea874[_0xf4dd('0xaa')]['content-type']){delete _0x5ea874['headers'][_0xf4dd('0xac')];}return rp(_0x5ea874);})['then'](function(_0x5dbf87){if(_0x5dbf87){_0x25443f[_0xf4dd('0x27')](_0x5dbf87['headers']);logger['info'](_0x5dbf87[_0xf4dd('0x97')]);if(_[_0xf4dd('0xad')](_0x38e7f2[_0xf4dd('0x3b')]['path'],_0xf4dd('0x56'))&&_0x5dbf87['statusCode']==0x1f4){return _0x25443f[_0xf4dd('0x22')](_0x5dbf87[_0xf4dd('0xae')]);}else{return _0x25443f[_0xf4dd('0x23')](_0x5dbf87[_0xf4dd('0xae')])[_0xf4dd('0x9f')](_0x5dbf87[_0xf4dd('0x97')]);}}else{return _0x25443f[_0xf4dd('0x22')](0xc8);}})[_0xf4dd('0x50')](handleError(_0x25443f,null));};exports[_0xf4dd('0xaf')]=function(_0x22ef63,_0x3da948,_0x423741){return BPromise[_0xf4dd('0xa3')]()[_0xf4dd('0x2d')](function(){if(!_0x22ef63[_0xf4dd('0x3b')][_0xf4dd('0x8')]){throw new Error(_0xf4dd('0xa4'));}if(!_0x22ef63[_0xf4dd('0x3b')][_0xf4dd('0xa7')]){throw new Error(_0xf4dd('0xb0'));}var _0x17faf6=_0x22ef63[_0xf4dd('0x3b')][_0xf4dd('0xa5')]?_0x22ef63[_0xf4dd('0x3b')][_0xf4dd('0xa5')]+':'+_0x22ef63[_0xf4dd('0x3b')][_0xf4dd('0xa7')]:_0xf4dd('0xa6')+_0x22ef63[_0xf4dd('0x3b')][_0xf4dd('0xa7')];var _0x24c0d1=_0x22ef63[_0xf4dd('0x3b')][_0xf4dd('0x25')]?_0x22ef63[_0xf4dd('0x3b')]['json']:!![];var _0x15851a=_0x22ef63[_0xf4dd('0x3b')][_0xf4dd('0xa8')]?_0x22ef63[_0xf4dd('0x3b')]['encoding']:null;var _0x27d2c2={'method':_0x22ef63[_0xf4dd('0xb1')],'uri':util['format'](_0xf4dd('0xa9'),_0x17faf6,_0x22ef63[_0xf4dd('0x3b')][_0xf4dd('0x8')]),'json':_0x24c0d1,'resolveWithFullResponse':!![],'encoding':_0x15851a,'body':_0x22ef63[_0xf4dd('0x97')]};if(_0x22ef63[_0xf4dd('0xaa')]){_0x27d2c2[_0xf4dd('0xaa')]=_0x22ef63['headers'];if(_0x27d2c2[_0xf4dd('0xaa')]['content-length']){delete _0x27d2c2['headers'][_0xf4dd('0xab')];}}if(_0x27d2c2[_0xf4dd('0xaa')]['content-type']){delete _0x27d2c2['headers']['content-type'];}return rp(_0x27d2c2);})[_0xf4dd('0x2d')](function(_0x23dd7e){if(_0x23dd7e){_0x3da948['set'](_0x23dd7e['headers']);logger[_0xf4dd('0x6c')](_0x23dd7e[_0xf4dd('0x97')]);return _0x3da948[_0xf4dd('0x23')](_0x23dd7e[_0xf4dd('0xae')])[_0xf4dd('0x9f')](_0x23dd7e[_0xf4dd('0x97')]);}else{return _0x3da948[_0xf4dd('0x22')](0xc8);}})[_0xf4dd('0x50')](handleError(_0x3da948,null));};