Built motion from commit (unavailable).|2.5.9
[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 _0x3e7b=['end','count','set','Content-Range','json','apply','reject','save','update','then','destroy','get','Plugins','UserProfileResource','sendStatus','error','stack','name','send','index','Plugin','rawAttributes','type','map','query','keys','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','offset','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','includeAll','include','rows','catch','show','download','params','join','root','server/files/plugins','createWriteStream','zip','warning','ENOENT','Sequelize','Error\x20while\x20generating\x20the\x20zip\x20archive','Error','pipe','glob','**/*','dirname','basename','node_modules/**/*','attachments/**/*','finalize','close','existsSync','Plugin\x20not\x20found','format','%s.zip','unlinkSync','info','filename','extname','file','Plugin\x20upload\x20filepath:\x20%s','chmodSync','0777','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','some','Plugin\x20manifest\x20missing','readFileSync','manifest.json','parse','undefined','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','views','Invalid\x20manifest:\x20views\x20missing','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','sidebar','always','icon-apps','html','plugins','Warning:\x20agent\x20view\x20not\x20specified','test','create','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','find','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','method','headers','content-length','content-type','endsWith','statusCode','webhookPost','%s%s','html-pdf','eml-format','fast-json-patch','moment','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','extract-zip','rimraf','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','register','status'];(function(_0x46698a,_0x8de1e4){var _0x356db0=function(_0x19e83c){while(--_0x19e83c){_0x46698a['push'](_0x46698a['shift']());}};_0x356db0(++_0x8de1e4);}(_0x3e7b,0x140));var _0xb3e7=function(_0x163eb3,_0x1ea5c7){_0x163eb3=_0x163eb3-0x0;var _0xd2a1e4=_0x3e7b[_0x163eb3];return _0xd2a1e4;};'use strict';var pdf=require(_0xb3e7('0x0'));var emlformat=require(_0xb3e7('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xb3e7('0x2'));var rp=require('request-promise');var moment=require(_0xb3e7('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xb3e7('0x4'));var util=require(_0xb3e7('0x5'));var path=require(_0xb3e7('0x6'));var sox=require(_0xb3e7('0x7'));var csv=require('to-csv');var ejs=require(_0xb3e7('0x8'));var fs=require('fs');var _=require(_0xb3e7('0x9'));var squel=require(_0xb3e7('0xa'));var crypto=require(_0xb3e7('0xb'));var jsforce=require(_0xb3e7('0xc'));var deskjs=require(_0xb3e7('0xd'));var toCsv=require('to-csv');var querystring=require(_0xb3e7('0xe'));var Papa=require(_0xb3e7('0xf'));var extract=require(_0xb3e7('0x10'));var rimraf=require(_0xb3e7('0x11'));var archiver=require('archiver');var Redis=require(_0xb3e7('0x12'));var authService=require(_0xb3e7('0x13'));var qs=require(_0xb3e7('0x14'));var as=require(_0xb3e7('0x15'));var hardwareService=require(_0xb3e7('0x16'));var logger=require(_0xb3e7('0x17'))(_0xb3e7('0x18'));var utils=require(_0xb3e7('0x19'));var config=require(_0xb3e7('0x1a'));var licenseUtil=require(_0xb3e7('0x1b'));var db=require(_0xb3e7('0x1c'))['db'];config[_0xb3e7('0x1d')]=_[_0xb3e7('0x1e')](config[_0xb3e7('0x1d')],{'host':'localhost','port':0x18eb});var socket=require(_0xb3e7('0x1f'))(new Redis(config[_0xb3e7('0x1d')]));require('./plugin.socket')[_0xb3e7('0x20')](socket);function respondWithStatusCode(_0x177943,_0x29c428){_0x29c428=_0x29c428||0xcc;return function(_0x39b37d){if(_0x39b37d){return _0x177943['sendStatus'](_0x29c428);}return _0x177943[_0xb3e7('0x21')](_0x29c428)[_0xb3e7('0x22')]();};}function respondWithResult(_0x1e0c76,_0x201e19){_0x201e19=_0x201e19||0xc8;return function(_0x30e1e1){if(_0x30e1e1){return _0x1e0c76[_0xb3e7('0x21')](_0x201e19)['json'](_0x30e1e1);}};}function respondWithFilteredResult(_0xe6af72,_0x5e3064){return function(_0x27c1fe){if(_0x27c1fe){var _0xec2fea=_0x27c1fe[_0xb3e7('0x23')],_0x570fd8=_0x5e3064['offset'],_0x1b0952=_0x5e3064['offset']+_0x5e3064['limit'],_0xad5c4d;if(_0x1b0952>=_0xec2fea){_0x1b0952=_0xec2fea;_0xad5c4d=0xc8;}else{_0xad5c4d=0xce;}_0xe6af72[_0xb3e7('0x21')](_0xad5c4d);return _0xe6af72[_0xb3e7('0x24')](_0xb3e7('0x25'),_0x570fd8+'-'+_0x1b0952+'/'+_0xec2fea)[_0xb3e7('0x26')](_0x27c1fe);}return null;};}function patchUpdates(_0x5b783c){return function(_0x4edb37){try{jsonpatch[_0xb3e7('0x27')](_0x4edb37,_0x5b783c,!![]);}catch(_0x4917c5){return BPromise[_0xb3e7('0x28')](_0x4917c5);}return _0x4edb37[_0xb3e7('0x29')]();};}function saveUpdates(_0x5df35a,_0x5664d4){return function(_0x5bc654){if(_0x5bc654){return _0x5bc654[_0xb3e7('0x2a')](_0x5df35a)[_0xb3e7('0x2b')](function(_0xfe8633){return _0xfe8633;});}return null;};}function removeEntity(_0x441bb4,_0x296eb5){return function(_0x3d4ae4){if(_0x3d4ae4){return _0x3d4ae4[_0xb3e7('0x2c')]()[_0xb3e7('0x2b')](function(){var _0x336e02=_0x3d4ae4[_0xb3e7('0x2d')]({'plain':!![]});var _0x516380=_0xb3e7('0x2e');return db[_0xb3e7('0x2f')][_0xb3e7('0x2c')]({'where':{'type':_0x516380,'resourceId':_0x336e02['id']}})[_0xb3e7('0x2b')](function(){return _0x3d4ae4;});})[_0xb3e7('0x2b')](function(){_0x441bb4[_0xb3e7('0x21')](0xcc)[_0xb3e7('0x22')]();});}};}function handleEntityNotFound(_0x15913d,_0x179f1d){return function(_0x200244){if(!_0x200244){_0x15913d[_0xb3e7('0x30')](0x194);}return _0x200244;};}function handleError(_0x2b99a8,_0x86e0dc){_0x86e0dc=_0x86e0dc||0x1f4;return function(_0x4bf6a0){logger[_0xb3e7('0x31')](_0x4bf6a0[_0xb3e7('0x32')]);if(_0x4bf6a0['name']){delete _0x4bf6a0[_0xb3e7('0x33')];}_0x2b99a8[_0xb3e7('0x21')](_0x86e0dc)[_0xb3e7('0x34')](_0x4bf6a0);};}exports[_0xb3e7('0x35')]=function(_0x1bf421,_0x4c9d47){var _0x2344ab={},_0x171abd={},_0x42cb3a={'count':0x0,'rows':[]};var _0x300cc1=_['map'](db[_0xb3e7('0x36')][_0xb3e7('0x37')],function(_0x281b9b){return{'name':_0x281b9b['fieldName'],'type':_0x281b9b[_0xb3e7('0x38')]['key']};});_0x171abd['model']=_[_0xb3e7('0x39')](_0x300cc1,_0xb3e7('0x33'));_0x171abd[_0xb3e7('0x3a')]=_[_0xb3e7('0x3b')](_0x1bf421[_0xb3e7('0x3a')]);_0x171abd['filters']=_['intersection'](_0x171abd[_0xb3e7('0x3c')],_0x171abd[_0xb3e7('0x3a')]);_0x2344ab['attributes']=_[_0xb3e7('0x3d')](_0x171abd[_0xb3e7('0x3c')],qs['fields'](_0x1bf421[_0xb3e7('0x3a')][_0xb3e7('0x3e')]));_0x2344ab[_0xb3e7('0x3f')]=_0x2344ab[_0xb3e7('0x3f')][_0xb3e7('0x40')]?_0x2344ab[_0xb3e7('0x3f')]:_0x171abd['model'];if(!_0x1bf421['query'][_0xb3e7('0x41')](_0xb3e7('0x42'))){_0x2344ab[_0xb3e7('0x43')]=qs[_0xb3e7('0x43')](_0x1bf421[_0xb3e7('0x3a')][_0xb3e7('0x43')]);_0x2344ab['offset']=qs[_0xb3e7('0x44')](_0x1bf421['query'][_0xb3e7('0x44')]);}_0x2344ab[_0xb3e7('0x45')]=qs['sort'](_0x1bf421[_0xb3e7('0x3a')][_0xb3e7('0x46')]);_0x2344ab[_0xb3e7('0x47')]=qs[_0xb3e7('0x48')](_[_0xb3e7('0x49')](_0x1bf421['query'],_0x171abd[_0xb3e7('0x48')]),_0x300cc1);if(_0x1bf421['query']['filter']){_0x2344ab[_0xb3e7('0x47')]=_[_0xb3e7('0x4a')](_0x2344ab[_0xb3e7('0x47')],{'$or':_[_0xb3e7('0x39')](_0x300cc1,function(_0x986210){if(_0x986210[_0xb3e7('0x38')]!==_0xb3e7('0x4b')){var _0x26fe32={};_0x26fe32[_0x986210[_0xb3e7('0x33')]]={'$like':'%'+_0x1bf421[_0xb3e7('0x3a')][_0xb3e7('0x4c')]+'%'};return _0x26fe32;}})});}_0x2344ab=_[_0xb3e7('0x4a')]({},_0x2344ab,_0x1bf421[_0xb3e7('0x4d')]);var _0x990199={'where':_0x2344ab['where']};return db['Plugin'][_0xb3e7('0x23')](_0x990199)[_0xb3e7('0x2b')](function(_0x3858e9){_0x42cb3a['count']=_0x3858e9;if(_0x1bf421[_0xb3e7('0x3a')][_0xb3e7('0x4e')]){_0x2344ab[_0xb3e7('0x4f')]=[{'all':!![]}];}return db[_0xb3e7('0x36')]['findAll'](_0x2344ab);})[_0xb3e7('0x2b')](function(_0x280d47){_0x42cb3a[_0xb3e7('0x50')]=_0x280d47;return _0x42cb3a;})['then'](respondWithFilteredResult(_0x4c9d47,_0x2344ab))[_0xb3e7('0x51')](handleError(_0x4c9d47,null));};exports[_0xb3e7('0x52')]=function(_0x22d206,_0x1843d3){var _0x1afef5={'raw':!![],'where':{'id':_0x22d206['params']['id']}},_0x86aa14={};_0x86aa14[_0xb3e7('0x3c')]=_[_0xb3e7('0x3b')](db['Plugin'][_0xb3e7('0x37')]);_0x86aa14[_0xb3e7('0x3a')]=_[_0xb3e7('0x3b')](_0x22d206[_0xb3e7('0x3a')]);_0x86aa14[_0xb3e7('0x48')]=_[_0xb3e7('0x3d')](_0x86aa14[_0xb3e7('0x3c')],_0x86aa14[_0xb3e7('0x3a')]);_0x1afef5[_0xb3e7('0x3f')]=_['intersection'](_0x86aa14['model'],qs[_0xb3e7('0x3e')](_0x22d206[_0xb3e7('0x3a')]['fields']));_0x1afef5[_0xb3e7('0x3f')]=_0x1afef5[_0xb3e7('0x3f')][_0xb3e7('0x40')]?_0x1afef5[_0xb3e7('0x3f')]:_0x86aa14[_0xb3e7('0x3c')];if(_0x22d206[_0xb3e7('0x3a')][_0xb3e7('0x4e')]){_0x1afef5['include']=[{'all':!![]}];}_0x1afef5=_[_0xb3e7('0x4a')]({},_0x1afef5,_0x22d206[_0xb3e7('0x4d')]);return db[_0xb3e7('0x36')]['find'](_0x1afef5)[_0xb3e7('0x2b')](handleEntityNotFound(_0x1843d3,null))['then'](respondWithResult(_0x1843d3,null))['catch'](handleError(_0x1843d3,null));};exports[_0xb3e7('0x53')]=function(_0x28e41e,_0x344584,_0x68a5e7){return db[_0xb3e7('0x36')]['find']({'where':{'id':_0x28e41e[_0xb3e7('0x54')]['id']},'attributes':[_0xb3e7('0x33'),_0xb3e7('0x6')],'raw':!![]})['then'](handleEntityNotFound(_0x344584,null))[_0xb3e7('0x2b')](function(_0x4a8e7b){if(_0x4a8e7b){var _0x5de2d5=path[_0xb3e7('0x55')](config[_0xb3e7('0x56')],_0xb3e7('0x57'),util['format']('%s.zip',path['basename'](_0x4a8e7b['path'])));var _0x29f6b1=fs[_0xb3e7('0x58')](_0x5de2d5);var _0x5a1552=archiver(_0xb3e7('0x59'),{'zlib':{'level':0x9}});_0x5a1552['on'](_0xb3e7('0x5a'),function(_0x39b914){if(_0x39b914['code']===_0xb3e7('0x5b')){logger[_0xb3e7('0x31')](_0x39b914);}else{throw new db[(_0xb3e7('0x5c'))]['Error'](_0xb3e7('0x5d'));}});_0x5a1552['on'](_0xb3e7('0x31'),function(_0x1a128f){throw new db[(_0xb3e7('0x5c'))][(_0xb3e7('0x5e'))](_0xb3e7('0x5d'));});_0x5a1552[_0xb3e7('0x5f')](_0x29f6b1);_0x5a1552[_0xb3e7('0x60')](_0xb3e7('0x61'),{'cwd':path[_0xb3e7('0x55')](config['root'],'server/files/plugins',path[_0xb3e7('0x62')](_0x4a8e7b[_0xb3e7('0x6')])),'ignore':[path['join'](path[_0xb3e7('0x63')](_0x4a8e7b['path']),_0xb3e7('0x64')),path[_0xb3e7('0x55')](path[_0xb3e7('0x63')](_0x4a8e7b[_0xb3e7('0x6')]),_0xb3e7('0x65'))],'nodir':!![]})[_0xb3e7('0x66')]();_0x29f6b1['on'](_0xb3e7('0x67'),function(){if(!fs[_0xb3e7('0x68')](_0x5de2d5)){throw new db[(_0xb3e7('0x5c'))][(_0xb3e7('0x5e'))](_0xb3e7('0x69'));}return _0x344584['download'](_0x5de2d5,util[_0xb3e7('0x6a')](_0xb3e7('0x6b'),path['basename'](_0x4a8e7b[_0xb3e7('0x6')])),function(_0x41a416){if(_0x41a416){throw new db[(_0xb3e7('0x5c'))][(_0xb3e7('0x5e'))]('Error\x20while\x20downloading\x20the\x20plugin');}fs[_0xb3e7('0x6c')](_0x5de2d5);logger[_0xb3e7('0x6d')]('Download\x20completed');logger[_0xb3e7('0x6d')]('Temporary\x20file\x20removed');});});}return null;})[_0xb3e7('0x51')](handleError(_0x344584,null));};exports['upload']=function(_0x228552,_0x10d60c,_0x35d17f){var _0x376a00=path['basename'](_0x228552['file'][_0xb3e7('0x6e')],path[_0xb3e7('0x6f')](_0x228552[_0xb3e7('0x70')]['filename']));var _0x184ef4=path['join'](config[_0xb3e7('0x56')],_0xb3e7('0x57'),_0x228552[_0xb3e7('0x70')][_0xb3e7('0x6e')]);var _0x2af4b5=path[_0xb3e7('0x55')](config[_0xb3e7('0x56')],'server/files/plugins',_0x376a00);logger[_0xb3e7('0x6d')](_0xb3e7('0x71'),_0x184ef4);logger[_0xb3e7('0x6d')]('Plugin\x20upload\x20destination:\x20%s',_0x2af4b5);try{fs[_0xb3e7('0x72')](_0x184ef4,parseInt(_0xb3e7('0x73'),0x8));extract(_0x184ef4,{'dir':_0x2af4b5},function(_0x2d2da3){if(_0x2d2da3){logger[_0xb3e7('0x31')](_0x2d2da3);handleError(_0x2d2da3,!![]);};var _0x1c9566=fs[_0xb3e7('0x74')](_0x2af4b5);if(_0x1c9566[_0xb3e7('0x40')]>0x1){removeReferences(_0x184ef4,_0x2af4b5);logger['error'](_0xb3e7('0x75'));return _0x35d17f(new Error(_0xb3e7('0x75')));}var _0x2b75a4=fs[_0xb3e7('0x76')](path[_0xb3e7('0x55')](_0x2af4b5,_0x1c9566[0x0]));if(_0x2b75a4[_0xb3e7('0x77')]()){removeReferences(_0x184ef4,_0x2af4b5);logger[_0xb3e7('0x31')]('Invalid\x20plugin\x20structure');return _0x35d17f(new Error(_0xb3e7('0x75')));}if(_0x2b75a4['isDirectory']()){var _0x2bd4e0=fs[_0xb3e7('0x74')](path[_0xb3e7('0x55')](_0x2af4b5,_0x1c9566[0x0]));if(_0x2bd4e0[_0xb3e7('0x40')]===0x0){removeReferences(_0x184ef4,_0x2af4b5);logger[_0xb3e7('0x31')](_0xb3e7('0x75'));return _0x35d17f(new Error(_0xb3e7('0x75')));}var _0x5a9ac1=_0x2bd4e0[_0xb3e7('0x78')](function(_0xa7522b){return _0xa7522b==='manifest.json';});if(!_0x5a9ac1){return _0x35d17f(new Error(_0xb3e7('0x79')));}var _0x1a80c1=fs[_0xb3e7('0x7a')](path['join'](_0x2af4b5,_0x1c9566[0x0],_0xb3e7('0x7b')));var _0x4fd80b=JSON[_0xb3e7('0x7c')](_0x1a80c1);if(_0xb3e7('0x7d')==typeof _0x4fd80b[_0xb3e7('0x33')]){return _0x35d17f(new Error('Invalid\x20manifest:\x20name\x20missing'));}if(_0xb3e7('0x7d')==typeof _0x4fd80b[_0xb3e7('0x38')]){return _0x35d17f(new Error(_0xb3e7('0x7e')));}if(_0xb3e7('0x7d')==typeof _0x4fd80b[_0xb3e7('0x7f')]){return _0x35d17f(new Error(_0xb3e7('0x80')));}if(_0xb3e7('0x7d')==typeof _0x4fd80b[_0xb3e7('0x81')]){return _0x35d17f(new Error(_0xb3e7('0x82')));}if(_0x4fd80b['type']==='html'){if(_0xb3e7('0x7d')==typeof _0x4fd80b[_0xb3e7('0x81')][_0xb3e7('0x83')]){return _0x35d17f(new Error(_0xb3e7('0x84')));}if(_0xb3e7('0x7d')==typeof _0x4fd80b[_0xb3e7('0x81')]['views'][_0xb3e7('0x85')]&&_0xb3e7('0x7d')==typeof _0x4fd80b[_0xb3e7('0x81')][_0xb3e7('0x83')][_0xb3e7('0x86')]){return _0x35d17f(new Error(_0xb3e7('0x87')));}}else if(_0x4fd80b[_0xb3e7('0x38')]===_0xb3e7('0x88')){if(_0xb3e7('0x7d')==typeof _0x4fd80b[_0xb3e7('0x81')][_0xb3e7('0x89')]){return _0x35d17f(new Error(_0xb3e7('0x8a')));}if(_0xb3e7('0x7d')==typeof _0x4fd80b[_0xb3e7('0x81')][_0xb3e7('0x8b')]){return _0x35d17f(new Error(_0xb3e7('0x8c')));}}else{return _0x35d17f(new Error(_0xb3e7('0x8d')));}var _0x285246=_0x4fd80b['name'];var _0x43b427=_0x4fd80b['description'];var _0x50b79b=_0x4fd80b['type'];var _0x7c0507=_0x4fd80b[_0xb3e7('0x8e')]?_0x4fd80b['sidebar']:_0xb3e7('0x8f');var _0x4a15a9=_0x4fd80b['icon']?_0x4fd80b['icon']:_0xb3e7('0x90');var _0x24a629='';var _0x256ee6='';var _0x3a70dd='';var _0x21478e='';var _0x404c0b=_0x4fd80b[_0xb3e7('0x7f')];if(_0x50b79b===_0xb3e7('0x91')){if('undefined'!=typeof _0x4fd80b[_0xb3e7('0x81')]['views'][_0xb3e7('0x85')]){var _0x3b9c95=_0x4fd80b[_0xb3e7('0x81')][_0xb3e7('0x83')][_0xb3e7('0x85')];if(!/^(f|ht)tps?:\/\//i['test'](_0x3b9c95)){_0x24a629=path[_0xb3e7('0x55')](_0xb3e7('0x92'),_0x376a00,_0x1c9566[0x0],_0x3b9c95);}else{_0x24a629=_0x3b9c95;}}else{logger[_0xb3e7('0x6d')]('Warning:\x20admin\x20view\x20not\x20specified');}if(_0xb3e7('0x7d')!=typeof _0x4fd80b[_0xb3e7('0x81')]['views'][_0xb3e7('0x86')]){var _0x1bca09=_0x4fd80b[_0xb3e7('0x81')][_0xb3e7('0x83')][_0xb3e7('0x86')];if(!/^(f|ht)tps?:\/\//i['test'](_0x1bca09)){_0x256ee6=path['join'](_0xb3e7('0x92'),_0x376a00,_0x1c9566[0x0],_0x1bca09);}else{_0x256ee6=_0x1bca09;}}else{logger[_0xb3e7('0x6d')](_0xb3e7('0x93'));}}else if(_0x50b79b==='script'){_0x3a70dd=_0x4fd80b[_0xb3e7('0x81')]['scriptName'];_0x21478e=_0x4fd80b[_0xb3e7('0x81')][_0xb3e7('0x8b')];if(_0xb3e7('0x7d')!=typeof _0x4fd80b['parameters']['views']){if(_0xb3e7('0x7d')!=typeof _0x4fd80b[_0xb3e7('0x81')][_0xb3e7('0x83')][_0xb3e7('0x85')]){var _0x3b9c95=_0x4fd80b[_0xb3e7('0x81')][_0xb3e7('0x83')]['admin'];if(!/^(f|ht)tps?:\/\//i[_0xb3e7('0x94')](_0x3b9c95)){_0x24a629=path[_0xb3e7('0x55')](_0xb3e7('0x92'),_0x376a00,_0x1c9566[0x0],_0x3b9c95);}else{_0x24a629=_0x3b9c95;}}if(_0xb3e7('0x7d')!=typeof _0x4fd80b['parameters']['views'][_0xb3e7('0x86')]){var _0x1bca09=_0x4fd80b['parameters'][_0xb3e7('0x83')][_0xb3e7('0x86')];if(!/^(f|ht)tps?:\/\//i['test'](_0x1bca09)){_0x256ee6=path[_0xb3e7('0x55')](_0xb3e7('0x92'),_0x376a00,_0x1c9566[0x0],_0x1bca09);}else{_0x256ee6=_0x1bca09;}}}}var _0x38b211={'name':_0x285246,'description':_0x43b427,'path':path[_0xb3e7('0x55')](_0x376a00,_0x1c9566[0x0]),'type':_0x50b79b,'sidebar':_0x7c0507,'icon':_0x4a15a9,'adminUrl':_0x24a629,'agentUrl':_0x256ee6,'scriptName':_0x3a70dd,'scriptPath':_0x21478e,'version':_0x404c0b};removeReferences(_0x184ef4,null);return db['Plugin'][_0xb3e7('0x95')](_0x38b211)[_0xb3e7('0x2b')](function(_0x424b4c){var _0x3e0c22={'role':_0x228552[_0xb3e7('0x96')][_0xb3e7('0x97')],'userProfileId':_0x228552[_0xb3e7('0x96')][_0xb3e7('0x98')]};if(!_0x3e0c22)throw new Error(_0xb3e7('0x99'));if(_0x3e0c22[_0xb3e7('0x97')]===_0xb3e7('0x9a')){var _0xff39fb=_0x424b4c[_0xb3e7('0x2d')]({'plain':!![]});return db[_0xb3e7('0x9b')][_0xb3e7('0x9c')]({'where':{'name':'Plugins','userProfileId':_0x3e0c22[_0xb3e7('0x98')]},'raw':!![]})['then'](function(_0x274c6c){if(_0x274c6c&&_0x274c6c['autoAssociation']===0x0){return db[_0xb3e7('0x2f')][_0xb3e7('0x95')]({'name':_0xff39fb[_0xb3e7('0x33')],'resourceId':_0xff39fb['id'],'type':_0x274c6c[_0xb3e7('0x33')],'sectionId':_0x274c6c['id']},{})[_0xb3e7('0x2b')](function(){return _0x424b4c;});}else{return _0x424b4c;}})['catch'](function(_0x523162){logger['error'](_0xb3e7('0x9d'),_0x523162);throw _0x523162;});}return _0x424b4c;})[_0xb3e7('0x2b')](respondWithResult(_0x10d60c,null))[_0xb3e7('0x51')](handleError(_0x10d60c,null));}});}catch(_0x304f37){_0x10d60c[_0xb3e7('0x21')](0x1f4)['send'](_0x304f37);}};function removeReferences(_0x2dcedc,_0x1b66f9){try{if(_0x2dcedc){fs['unlinkSync'](_0x2dcedc);logger[_0xb3e7('0x6d')](_0xb3e7('0x9e'));}if(_0x1b66f9){rimraf(_0x1b66f9,function(){});logger[_0xb3e7('0x6d')](_0xb3e7('0x9f'));}}catch(_0x32bb2b){logger[_0xb3e7('0x31')](_0x32bb2b);}}exports['update']=function(_0x9fb205,_0x288144,_0x7c8f0c){return db[_0xb3e7('0x36')][_0xb3e7('0x9c')]({'where':{'id':_0x9fb205[_0xb3e7('0x54')]['id']}})[_0xb3e7('0x2b')](handleEntityNotFound(_0x288144,null))[_0xb3e7('0x2b')](saveUpdates(_0x9fb205[_0xb3e7('0x96')],null))[_0xb3e7('0x2b')](respondWithResult(_0x288144,null))[_0xb3e7('0x51')](handleError(_0x288144,null));};exports[_0xb3e7('0xa0')]=function(_0x3cd676,_0x7490f5,_0x5985f2){return db[_0xb3e7('0x36')][_0xb3e7('0x9c')]({'where':{'id':_0x3cd676[_0xb3e7('0x54')]['id']}})[_0xb3e7('0x2b')](function(_0x47ec34){if(_0x47ec34){return _0x47ec34[_0xb3e7('0x2c')]();}})['then'](function(_0x31a1ec){rimraf(path[_0xb3e7('0x55')](config[_0xb3e7('0x56')],_0xb3e7('0x57'),path['dirname'](_0x31a1ec[_0xb3e7('0x6')])),function(){});return _0x31a1ec;})[_0xb3e7('0x2b')](handleEntityNotFound(_0x7490f5,null))[_0xb3e7('0x2b')](respondWithStatusCode(_0x7490f5,null))[_0xb3e7('0x51')](handleError(_0x7490f5,null));};exports[_0xb3e7('0xa1')]=function(_0x54f85a,_0x59ebf2,_0x3fa96e){return BPromise[_0xb3e7('0xa2')]()[_0xb3e7('0x2b')](function(){if(!_0x54f85a[_0xb3e7('0x3a')]['path']){throw new Error(_0xb3e7('0xa3'));}if(!_0x54f85a['query'][_0xb3e7('0xa4')]){throw new Error(_0xb3e7('0xa5'));}var _0x253c1d=_0x54f85a[_0xb3e7('0x3a')][_0xb3e7('0xa6')]?_0x54f85a[_0xb3e7('0x3a')]['hostname']+':'+_0x54f85a[_0xb3e7('0x3a')]['port']:_0xb3e7('0xa7')+_0x54f85a['query'][_0xb3e7('0xa4')];var _0x543f9f=_0x54f85a[_0xb3e7('0x3a')][_0xb3e7('0x26')]?_0x54f85a['query'][_0xb3e7('0x26')]:!![];var _0x3567b4=_0x54f85a[_0xb3e7('0x3a')][_0xb3e7('0xa8')]?_0x54f85a[_0xb3e7('0x3a')]['encoding']:null;var _0x40b5bb={'method':_0x54f85a[_0xb3e7('0xa9')],'uri':util[_0xb3e7('0x6a')]('%s%s',_0x253c1d,_0x54f85a[_0xb3e7('0x3a')][_0xb3e7('0x6')]),'json':_0x543f9f,'resolveWithFullResponse':!![],'encoding':_0x3567b4,'qs':_0x54f85a[_0xb3e7('0x3a')]};if(_0x54f85a['headers']){_0x40b5bb[_0xb3e7('0xaa')]=_0x54f85a[_0xb3e7('0xaa')];if(_0x40b5bb[_0xb3e7('0xaa')][_0xb3e7('0xab')]){delete _0x40b5bb['headers'][_0xb3e7('0xab')];}}if(_0x40b5bb[_0xb3e7('0xaa')]['content-type']){delete _0x40b5bb['headers'][_0xb3e7('0xac')];}return rp(_0x40b5bb);})[_0xb3e7('0x2b')](function(_0x290ec5){if(_0x290ec5){_0x59ebf2[_0xb3e7('0x24')](_0x290ec5[_0xb3e7('0xaa')]);logger[_0xb3e7('0x6d')](_0x290ec5[_0xb3e7('0x96')]);if(_[_0xb3e7('0xad')](_0x54f85a['query'][_0xb3e7('0x6')],_0xb3e7('0x53'))&&_0x290ec5[_0xb3e7('0xae')]==0x1f4){return _0x59ebf2[_0xb3e7('0x30')](_0x290ec5['statusCode']);}else{return _0x59ebf2['status'](_0x290ec5[_0xb3e7('0xae')])[_0xb3e7('0x34')](_0x290ec5[_0xb3e7('0x96')]);}}else{return _0x59ebf2['sendStatus'](0xc8);}})[_0xb3e7('0x51')](handleError(_0x59ebf2,null));};exports[_0xb3e7('0xaf')]=function(_0x2a80a0,_0x28e6c3,_0x5b87f0){return BPromise[_0xb3e7('0xa2')]()['then'](function(){if(!_0x2a80a0[_0xb3e7('0x3a')][_0xb3e7('0x6')]){throw new Error(_0xb3e7('0xa3'));}if(!_0x2a80a0[_0xb3e7('0x3a')]['port']){throw new Error(_0xb3e7('0xa5'));}var _0x5326c2=_0x2a80a0['query'][_0xb3e7('0xa6')]?_0x2a80a0['query'][_0xb3e7('0xa6')]+':'+_0x2a80a0['query'][_0xb3e7('0xa4')]:'http://localhost:'+_0x2a80a0[_0xb3e7('0x3a')]['port'];var _0x6a7ad2=_0x2a80a0[_0xb3e7('0x3a')][_0xb3e7('0x26')]?_0x2a80a0['query'][_0xb3e7('0x26')]:!![];var _0x17324f=_0x2a80a0[_0xb3e7('0x3a')]['encoding']?_0x2a80a0[_0xb3e7('0x3a')][_0xb3e7('0xa8')]:null;var _0x1fda60={'method':_0x2a80a0[_0xb3e7('0xa9')],'uri':util[_0xb3e7('0x6a')](_0xb3e7('0xb0'),_0x5326c2,_0x2a80a0['query'][_0xb3e7('0x6')]),'json':_0x6a7ad2,'resolveWithFullResponse':!![],'encoding':_0x17324f,'body':_0x2a80a0['body']};if(_0x2a80a0['headers']){_0x1fda60[_0xb3e7('0xaa')]=_0x2a80a0[_0xb3e7('0xaa')];if(_0x1fda60[_0xb3e7('0xaa')]['content-length']){delete _0x1fda60[_0xb3e7('0xaa')][_0xb3e7('0xab')];}}if(_0x1fda60['headers'][_0xb3e7('0xac')]){delete _0x1fda60['headers']['content-type'];}return rp(_0x1fda60);})[_0xb3e7('0x2b')](function(_0x365c66){if(_0x365c66){_0x28e6c3['set'](_0x365c66[_0xb3e7('0xaa')]);logger[_0xb3e7('0x6d')](_0x365c66['body']);return _0x28e6c3[_0xb3e7('0x21')](_0x365c66[_0xb3e7('0xae')])[_0xb3e7('0x34')](_0x365c66[_0xb3e7('0x96')]);}else{return _0x28e6c3[_0xb3e7('0x30')](0xc8);}})[_0xb3e7('0x51')](handleError(_0x28e6c3,null));};