aa9cec33cf1037f2074c7153871ccd9b79feb888
[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 _0x634a=['extract-zip','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','defaults','redis','socket.io-emitter','register','sendStatus','status','end','json','offset','set','apply','reject','save','update','destroy','get','Plugins','UserProfileResource','then','error','name','index','map','Plugin','rawAttributes','fieldName','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','filter','where','merge','type','VIRTUAL','options','count','findAll','rows','catch','show','params','keys','includeAll','find','download','join','root','server/files/plugins','format','%s.zip','basename','zip','warning','code','ENOENT','Error\x20while\x20generating\x20the\x20zip\x20archive','Error','pipe','glob','**/*','node_modules/**/*','attachments/**/*','existsSync','Sequelize','Plugin\x20not\x20found','unlinkSync','info','Download\x20completed','upload','file','filename','extname','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','some','manifest.json','Plugin\x20manifest\x20missing','readFileSync','undefined','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','Invalid\x20manifest:\x20views\x20missing','views','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','version','admin','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','Warning:\x20agent\x20view\x20not\x20specified','create','body','role','userProfileId','user','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','send','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','dirname','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','method','%s%s','headers','content-length','content-type','endsWith','statusCode','webhookPost','rimraf','zip-dir','request-promise','mustache','util','path','to-csv','ejs','lodash','desk.js'];(function(_0x31e29a,_0x349c9b){var _0x32d892=function(_0x41cc86){while(--_0x41cc86){_0x31e29a['push'](_0x31e29a['shift']());}};_0x32d892(++_0x349c9b);}(_0x634a,0x1e2));var _0xa634=function(_0x42dcbf,_0x5c7d17){_0x42dcbf=_0x42dcbf-0x0;var _0x35e1d7=_0x634a[_0x42dcbf];return _0x35e1d7;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xa634('0x0'));var zipdir=require(_0xa634('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa634('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xa634('0x3'));var util=require(_0xa634('0x4'));var path=require(_0xa634('0x5'));var sox=require('sox');var csv=require(_0xa634('0x6'));var ejs=require(_0xa634('0x7'));var fs=require('fs');var _=require(_0xa634('0x8'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xa634('0x9'));var toCsv=require(_0xa634('0x6'));var querystring=require('querystring');var Papa=require('papaparse');var extract=require(_0xa634('0xa'));var rimraf=require('rimraf');var archiver=require('archiver');var Redis=require('ioredis');var authService=require(_0xa634('0xb'));var qs=require(_0xa634('0xc'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa634('0xd'));var logger=require('../../config/logger')(_0xa634('0xe'));var utils=require(_0xa634('0xf'));var config=require(_0xa634('0x10'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xa634('0x11')](config[_0xa634('0x12')],{'host':'localhost','port':0x18eb});var socket=require(_0xa634('0x13'))(new Redis(config[_0xa634('0x12')]));require('./plugin.socket')[_0xa634('0x14')](socket);function respondWithStatusCode(_0x4dc9d7,_0x3e020){_0x3e020=_0x3e020||0xcc;return function(_0x42fcdb){if(_0x42fcdb){return _0x4dc9d7[_0xa634('0x15')](_0x3e020);}return _0x4dc9d7[_0xa634('0x16')](_0x3e020)[_0xa634('0x17')]();};}function respondWithResult(_0x4d8886,_0x4ac8f3){_0x4ac8f3=_0x4ac8f3||0xc8;return function(_0x2c0ab0){if(_0x2c0ab0){return _0x4d8886[_0xa634('0x16')](_0x4ac8f3)[_0xa634('0x18')](_0x2c0ab0);}};}function respondWithFilteredResult(_0x2dce9e,_0x1b02f6){return function(_0x2b158e){if(_0x2b158e){var _0x1985c9=_0x2b158e['count'],_0x289b78=_0x1b02f6[_0xa634('0x19')],_0x575caf=_0x1b02f6['offset']+_0x1b02f6['limit'],_0x27ebbf;if(_0x575caf>=_0x1985c9){_0x575caf=_0x1985c9;_0x27ebbf=0xc8;}else{_0x27ebbf=0xce;}_0x2dce9e[_0xa634('0x16')](_0x27ebbf);return _0x2dce9e[_0xa634('0x1a')]('Content-Range',_0x289b78+'-'+_0x575caf+'/'+_0x1985c9)[_0xa634('0x18')](_0x2b158e);}return null;};}function patchUpdates(_0x1035b5){return function(_0x36df3f){try{jsonpatch[_0xa634('0x1b')](_0x36df3f,_0x1035b5,!![]);}catch(_0x1e786f){return BPromise[_0xa634('0x1c')](_0x1e786f);}return _0x36df3f[_0xa634('0x1d')]();};}function saveUpdates(_0xa9f67d,_0x261c3c){return function(_0x98c0d6){if(_0x98c0d6){return _0x98c0d6[_0xa634('0x1e')](_0xa9f67d)['then'](function(_0x2c3209){return _0x2c3209;});}return null;};}function removeEntity(_0x3b76bb,_0x416688){return function(_0x51a52a){if(_0x51a52a){return _0x51a52a[_0xa634('0x1f')]()['then'](function(){var _0x5a66bf=_0x51a52a[_0xa634('0x20')]({'plain':!![]});var _0x497f1d=_0xa634('0x21');return db[_0xa634('0x22')][_0xa634('0x1f')]({'where':{'type':_0x497f1d,'resourceId':_0x5a66bf['id']}})[_0xa634('0x23')](function(){return _0x51a52a;});})[_0xa634('0x23')](function(){_0x3b76bb[_0xa634('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x46a822,_0x5ac7de){return function(_0x4d39ba){if(!_0x4d39ba){_0x46a822[_0xa634('0x15')](0x194);}return _0x4d39ba;};}function handleError(_0xa27c10,_0x25a8a9){_0x25a8a9=_0x25a8a9||0x1f4;return function(_0x229017){logger[_0xa634('0x24')](_0x229017['stack']);if(_0x229017[_0xa634('0x25')]){delete _0x229017['name'];}_0xa27c10[_0xa634('0x16')](_0x25a8a9)['send'](_0x229017);};}exports[_0xa634('0x26')]=function(_0x11233e,_0x184800){var _0x4fd04b={},_0x592fd7={},_0x45196b={'count':0x0,'rows':[]};var _0xf844db=_[_0xa634('0x27')](db[_0xa634('0x28')][_0xa634('0x29')],function(_0x42256b){return{'name':_0x42256b[_0xa634('0x2a')],'type':_0x42256b['type']['key']};});_0x592fd7[_0xa634('0x2b')]=_[_0xa634('0x27')](_0xf844db,'name');_0x592fd7[_0xa634('0x2c')]=_['keys'](_0x11233e['query']);_0x592fd7[_0xa634('0x2d')]=_[_0xa634('0x2e')](_0x592fd7[_0xa634('0x2b')],_0x592fd7['query']);_0x4fd04b[_0xa634('0x2f')]=_[_0xa634('0x2e')](_0x592fd7[_0xa634('0x2b')],qs[_0xa634('0x30')](_0x11233e[_0xa634('0x2c')][_0xa634('0x30')]));_0x4fd04b['attributes']=_0x4fd04b[_0xa634('0x2f')][_0xa634('0x31')]?_0x4fd04b[_0xa634('0x2f')]:_0x592fd7['model'];if(!_0x11233e[_0xa634('0x2c')][_0xa634('0x32')](_0xa634('0x33'))){_0x4fd04b[_0xa634('0x34')]=qs[_0xa634('0x34')](_0x11233e['query'][_0xa634('0x34')]);_0x4fd04b['offset']=qs['offset'](_0x11233e[_0xa634('0x2c')][_0xa634('0x19')]);}_0x4fd04b[_0xa634('0x35')]=qs[_0xa634('0x36')](_0x11233e[_0xa634('0x2c')]['sort']);_0x4fd04b['where']=qs[_0xa634('0x2d')](_['pick'](_0x11233e['query'],_0x592fd7['filters']),_0xf844db);if(_0x11233e[_0xa634('0x2c')][_0xa634('0x37')]){_0x4fd04b[_0xa634('0x38')]=_[_0xa634('0x39')](_0x4fd04b[_0xa634('0x38')],{'$or':_[_0xa634('0x27')](_0xf844db,function(_0x24c3dd){if(_0x24c3dd[_0xa634('0x3a')]!==_0xa634('0x3b')){var _0x3e9e4f={};_0x3e9e4f[_0x24c3dd[_0xa634('0x25')]]={'$like':'%'+_0x11233e[_0xa634('0x2c')][_0xa634('0x37')]+'%'};return _0x3e9e4f;}})});}_0x4fd04b=_[_0xa634('0x39')]({},_0x4fd04b,_0x11233e[_0xa634('0x3c')]);var _0x85e177={'where':_0x4fd04b[_0xa634('0x38')]};return db[_0xa634('0x28')]['count'](_0x85e177)[_0xa634('0x23')](function(_0x1f559d){_0x45196b[_0xa634('0x3d')]=_0x1f559d;if(_0x11233e[_0xa634('0x2c')]['includeAll']){_0x4fd04b['include']=[{'all':!![]}];}return db[_0xa634('0x28')][_0xa634('0x3e')](_0x4fd04b);})[_0xa634('0x23')](function(_0x78ae){_0x45196b[_0xa634('0x3f')]=_0x78ae;return _0x45196b;})[_0xa634('0x23')](respondWithFilteredResult(_0x184800,_0x4fd04b))[_0xa634('0x40')](handleError(_0x184800,null));};exports[_0xa634('0x41')]=function(_0x50e012,_0x3533e0){var _0x4bcfba={'raw':!![],'where':{'id':_0x50e012[_0xa634('0x42')]['id']}},_0x538b48={};_0x538b48[_0xa634('0x2b')]=_[_0xa634('0x43')](db[_0xa634('0x28')]['rawAttributes']);_0x538b48[_0xa634('0x2c')]=_['keys'](_0x50e012[_0xa634('0x2c')]);_0x538b48[_0xa634('0x2d')]=_[_0xa634('0x2e')](_0x538b48[_0xa634('0x2b')],_0x538b48[_0xa634('0x2c')]);_0x4bcfba[_0xa634('0x2f')]=_[_0xa634('0x2e')](_0x538b48[_0xa634('0x2b')],qs[_0xa634('0x30')](_0x50e012[_0xa634('0x2c')][_0xa634('0x30')]));_0x4bcfba[_0xa634('0x2f')]=_0x4bcfba[_0xa634('0x2f')][_0xa634('0x31')]?_0x4bcfba[_0xa634('0x2f')]:_0x538b48[_0xa634('0x2b')];if(_0x50e012['query'][_0xa634('0x44')]){_0x4bcfba['include']=[{'all':!![]}];}_0x4bcfba=_[_0xa634('0x39')]({},_0x4bcfba,_0x50e012[_0xa634('0x3c')]);return db[_0xa634('0x28')][_0xa634('0x45')](_0x4bcfba)[_0xa634('0x23')](handleEntityNotFound(_0x3533e0,null))[_0xa634('0x23')](respondWithResult(_0x3533e0,null))[_0xa634('0x40')](handleError(_0x3533e0,null));};exports[_0xa634('0x46')]=function(_0x478307,_0x33a8c0,_0xf297fd){return db['Plugin'][_0xa634('0x45')]({'where':{'id':_0x478307[_0xa634('0x42')]['id']},'attributes':[_0xa634('0x25'),_0xa634('0x5')],'raw':!![]})[_0xa634('0x23')](handleEntityNotFound(_0x33a8c0,null))[_0xa634('0x23')](function(_0x9dd9e1){if(_0x9dd9e1){var _0x18ef10=path[_0xa634('0x47')](config[_0xa634('0x48')],_0xa634('0x49'),util[_0xa634('0x4a')](_0xa634('0x4b'),path[_0xa634('0x4c')](_0x9dd9e1[_0xa634('0x5')])));var _0x2e7612=fs['createWriteStream'](_0x18ef10);var _0x3be715=archiver(_0xa634('0x4d'),{'zlib':{'level':0x9}});_0x3be715['on'](_0xa634('0x4e'),function(_0x423b0e){if(_0x423b0e[_0xa634('0x4f')]===_0xa634('0x50')){logger[_0xa634('0x24')](_0x423b0e);}else{throw new db['Sequelize']['Error'](_0xa634('0x51'));}});_0x3be715['on'](_0xa634('0x24'),function(_0x24f776){throw new db['Sequelize'][(_0xa634('0x52'))](_0xa634('0x51'));});_0x3be715[_0xa634('0x53')](_0x2e7612);_0x3be715[_0xa634('0x54')](_0xa634('0x55'),{'cwd':path[_0xa634('0x47')](config[_0xa634('0x48')],_0xa634('0x49'),path['dirname'](_0x9dd9e1['path'])),'ignore':[path['join'](path[_0xa634('0x4c')](_0x9dd9e1[_0xa634('0x5')]),_0xa634('0x56')),path[_0xa634('0x47')](path[_0xa634('0x4c')](_0x9dd9e1[_0xa634('0x5')]),_0xa634('0x57'))],'nodir':!![]})['finalize']();_0x2e7612['on']('close',function(){if(!fs[_0xa634('0x58')](_0x18ef10)){throw new db[(_0xa634('0x59'))][(_0xa634('0x52'))](_0xa634('0x5a'));}return _0x33a8c0[_0xa634('0x46')](_0x18ef10,util[_0xa634('0x4a')](_0xa634('0x4b'),path[_0xa634('0x4c')](_0x9dd9e1[_0xa634('0x5')])),function(_0x1e23b8){if(_0x1e23b8){throw new db[(_0xa634('0x59'))][(_0xa634('0x52'))]('Error\x20while\x20downloading\x20the\x20plugin');}fs[_0xa634('0x5b')](_0x18ef10);logger[_0xa634('0x5c')](_0xa634('0x5d'));logger[_0xa634('0x5c')]('Temporary\x20file\x20removed');});});}return null;})[_0xa634('0x40')](handleError(_0x33a8c0,null));};exports[_0xa634('0x5e')]=function(_0x3c9498,_0x1871c8,_0x47358f){var _0x4e127f=path[_0xa634('0x4c')](_0x3c9498[_0xa634('0x5f')][_0xa634('0x60')],path[_0xa634('0x61')](_0x3c9498[_0xa634('0x5f')][_0xa634('0x60')]));var _0x1d8d32=path[_0xa634('0x47')](config['root'],_0xa634('0x49'),_0x3c9498['file'][_0xa634('0x60')]);var _0x85058=path[_0xa634('0x47')](config['root'],_0xa634('0x49'),_0x4e127f);logger[_0xa634('0x5c')](_0xa634('0x62'),_0x1d8d32);logger[_0xa634('0x5c')](_0xa634('0x63'),_0x85058);try{fs[_0xa634('0x64')](_0x1d8d32,parseInt('0777',0x8));extract(_0x1d8d32,{'dir':_0x85058},function(_0xeaeb2e){if(_0xeaeb2e){logger['error'](_0xeaeb2e);handleError(_0xeaeb2e,!![]);};var _0x19ac1e=fs[_0xa634('0x65')](_0x85058);if(_0x19ac1e[_0xa634('0x31')]>0x1){removeReferences(_0x1d8d32,_0x85058);logger[_0xa634('0x24')](_0xa634('0x66'));return _0x47358f(new Error(_0xa634('0x66')));}var _0x40c17b=fs[_0xa634('0x67')](path[_0xa634('0x47')](_0x85058,_0x19ac1e[0x0]));if(_0x40c17b[_0xa634('0x68')]()){removeReferences(_0x1d8d32,_0x85058);logger[_0xa634('0x24')](_0xa634('0x66'));return _0x47358f(new Error('Invalid\x20plugin\x20structure'));}if(_0x40c17b[_0xa634('0x69')]()){var _0x3ca902=fs['readdirSync'](path[_0xa634('0x47')](_0x85058,_0x19ac1e[0x0]));if(_0x3ca902[_0xa634('0x31')]===0x0){removeReferences(_0x1d8d32,_0x85058);logger[_0xa634('0x24')](_0xa634('0x66'));return _0x47358f(new Error(_0xa634('0x66')));}var _0x1746d7=_0x3ca902[_0xa634('0x6a')](function(_0xa01211){return _0xa01211===_0xa634('0x6b');});if(!_0x1746d7){return _0x47358f(new Error(_0xa634('0x6c')));}var _0x74e7cd=fs[_0xa634('0x6d')](path[_0xa634('0x47')](_0x85058,_0x19ac1e[0x0],'manifest.json'));var _0x507795=JSON['parse'](_0x74e7cd);if(_0xa634('0x6e')==typeof _0x507795[_0xa634('0x25')]){return _0x47358f(new Error(_0xa634('0x6f')));}if(_0xa634('0x6e')==typeof _0x507795[_0xa634('0x3a')]){return _0x47358f(new Error(_0xa634('0x70')));}if('undefined'==typeof _0x507795['version']){return _0x47358f(new Error(_0xa634('0x71')));}if(_0xa634('0x6e')==typeof _0x507795[_0xa634('0x72')]){return _0x47358f(new Error(_0xa634('0x73')));}if(_0x507795[_0xa634('0x3a')]===_0xa634('0x74')){if(_0xa634('0x6e')==typeof _0x507795[_0xa634('0x72')]['views']){return _0x47358f(new Error(_0xa634('0x75')));}if('undefined'==typeof _0x507795[_0xa634('0x72')][_0xa634('0x76')]['admin']&&_0xa634('0x6e')==typeof _0x507795[_0xa634('0x72')][_0xa634('0x76')][_0xa634('0x77')]){return _0x47358f(new Error(_0xa634('0x78')));}}else if(_0x507795[_0xa634('0x3a')]===_0xa634('0x79')){if('undefined'==typeof _0x507795[_0xa634('0x72')][_0xa634('0x7a')]){return _0x47358f(new Error(_0xa634('0x7b')));}if(_0xa634('0x6e')==typeof _0x507795[_0xa634('0x72')][_0xa634('0x7c')]){return _0x47358f(new Error(_0xa634('0x7d')));}}else{return _0x47358f(new Error(_0xa634('0x7e')));}var _0x7f0896=_0x507795[_0xa634('0x25')];var _0x3fee8b=_0x507795['description'];var _0x69a6e9=_0x507795[_0xa634('0x3a')];var _0x1f9365=_0x507795[_0xa634('0x7f')]?_0x507795[_0xa634('0x7f')]:_0xa634('0x80');var _0x217d96=_0x507795['icon']?_0x507795[_0xa634('0x81')]:'icon-apps';var _0x38bef5='';var _0x5c6364='';var _0x3f27bd='';var _0x1608ed='';var _0x418323=_0x507795[_0xa634('0x82')];if(_0x69a6e9===_0xa634('0x74')){if(_0xa634('0x6e')!=typeof _0x507795['parameters'][_0xa634('0x76')]['admin']){var _0x110276=_0x507795['parameters'][_0xa634('0x76')][_0xa634('0x83')];if(!/^(f|ht)tps?:\/\//i[_0xa634('0x84')](_0x110276)){_0x38bef5=path[_0xa634('0x47')](_0xa634('0x85'),_0x4e127f,_0x19ac1e[0x0],_0x110276);}else{_0x38bef5=_0x110276;}}else{logger['info'](_0xa634('0x86'));}if(_0xa634('0x6e')!=typeof _0x507795['parameters'][_0xa634('0x76')][_0xa634('0x77')]){var _0x412f42=_0x507795['parameters'][_0xa634('0x76')]['agent'];if(!/^(f|ht)tps?:\/\//i[_0xa634('0x84')](_0x412f42)){_0x5c6364=path[_0xa634('0x47')](_0xa634('0x85'),_0x4e127f,_0x19ac1e[0x0],_0x412f42);}else{_0x5c6364=_0x412f42;}}else{logger['info'](_0xa634('0x87'));}}else if(_0x69a6e9===_0xa634('0x79')){_0x3f27bd=_0x507795[_0xa634('0x72')]['scriptName'];_0x1608ed=_0x507795[_0xa634('0x72')][_0xa634('0x7c')];if(_0xa634('0x6e')!=typeof _0x507795[_0xa634('0x72')][_0xa634('0x76')]){if('undefined'!=typeof _0x507795[_0xa634('0x72')][_0xa634('0x76')][_0xa634('0x83')]){var _0x110276=_0x507795[_0xa634('0x72')][_0xa634('0x76')][_0xa634('0x83')];if(!/^(f|ht)tps?:\/\//i[_0xa634('0x84')](_0x110276)){_0x38bef5=path[_0xa634('0x47')]('plugins',_0x4e127f,_0x19ac1e[0x0],_0x110276);}else{_0x38bef5=_0x110276;}}if('undefined'!=typeof _0x507795[_0xa634('0x72')][_0xa634('0x76')][_0xa634('0x77')]){var _0x412f42=_0x507795[_0xa634('0x72')][_0xa634('0x76')][_0xa634('0x77')];if(!/^(f|ht)tps?:\/\//i[_0xa634('0x84')](_0x412f42)){_0x5c6364=path['join'](_0xa634('0x85'),_0x4e127f,_0x19ac1e[0x0],_0x412f42);}else{_0x5c6364=_0x412f42;}}}}var _0xc172de={'name':_0x7f0896,'description':_0x3fee8b,'path':path[_0xa634('0x47')](_0x4e127f,_0x19ac1e[0x0]),'type':_0x69a6e9,'sidebar':_0x1f9365,'icon':_0x217d96,'adminUrl':_0x38bef5,'agentUrl':_0x5c6364,'scriptName':_0x3f27bd,'scriptPath':_0x1608ed,'version':_0x418323};removeReferences(_0x1d8d32,null);return db['Plugin'][_0xa634('0x88')](_0xc172de)[_0xa634('0x23')](function(_0x5867f0){var _0x327767={'role':_0x3c9498[_0xa634('0x89')][_0xa634('0x8a')],'userProfileId':_0x3c9498['body'][_0xa634('0x8b')]};if(!_0x327767)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x327767['role']===_0xa634('0x8c')){var _0xd390d1=_0x5867f0[_0xa634('0x20')]({'plain':!![]});return db[_0xa634('0x8d')]['find']({'where':{'name':_0xa634('0x21'),'userProfileId':_0x327767[_0xa634('0x8b')]},'raw':!![]})['then'](function(_0x1ede85){if(_0x1ede85&&_0x1ede85['autoAssociation']===0x0){return db[_0xa634('0x22')][_0xa634('0x88')]({'name':_0xd390d1[_0xa634('0x25')],'resourceId':_0xd390d1['id'],'type':_0x1ede85[_0xa634('0x25')],'sectionId':_0x1ede85['id']},{})[_0xa634('0x23')](function(){return _0x5867f0;});}else{return _0x5867f0;}})['catch'](function(_0x54e3d6){logger[_0xa634('0x24')](_0xa634('0x8e'),_0x54e3d6);throw _0x54e3d6;});}return _0x5867f0;})['then'](respondWithResult(_0x1871c8,null))[_0xa634('0x40')](handleError(_0x1871c8,null));}});}catch(_0x103ab3){_0x1871c8[_0xa634('0x16')](0x1f4)[_0xa634('0x8f')](_0x103ab3);}};function removeReferences(_0x1b6908,_0x345f72){try{if(_0x1b6908){fs[_0xa634('0x5b')](_0x1b6908);logger['info'](_0xa634('0x90'));}if(_0x345f72){rimraf(_0x345f72,function(){});logger[_0xa634('0x5c')](_0xa634('0x91'));}}catch(_0x2d1c13){logger['error'](_0x2d1c13);}}exports['update']=function(_0x3efcbb,_0x44f3de,_0x18efa7){return db['Plugin'][_0xa634('0x45')]({'where':{'id':_0x3efcbb[_0xa634('0x42')]['id']}})['then'](handleEntityNotFound(_0x44f3de,null))[_0xa634('0x23')](saveUpdates(_0x3efcbb[_0xa634('0x89')],null))['then'](respondWithResult(_0x44f3de,null))['catch'](handleError(_0x44f3de,null));};exports[_0xa634('0x92')]=function(_0x99d104,_0x579e5a,_0x34eb18){return db[_0xa634('0x28')][_0xa634('0x45')]({'where':{'id':_0x99d104['params']['id']}})[_0xa634('0x23')](function(_0x5c2a28){if(_0x5c2a28){return _0x5c2a28[_0xa634('0x1f')]();}})['then'](function(_0xd4b827){rimraf(path[_0xa634('0x47')](config[_0xa634('0x48')],_0xa634('0x49'),path[_0xa634('0x93')](_0xd4b827['path'])),function(){});return _0xd4b827;})['then'](handleEntityNotFound(_0x579e5a,null))['then'](respondWithStatusCode(_0x579e5a,null))['catch'](handleError(_0x579e5a,null));};exports[_0xa634('0x94')]=function(_0x198699,_0x37c59e,_0x2ff522){return BPromise[_0xa634('0x95')]()[_0xa634('0x23')](function(){if(!_0x198699[_0xa634('0x2c')][_0xa634('0x5')]){throw new Error(_0xa634('0x96'));}if(!_0x198699['query'][_0xa634('0x97')]){throw new Error(_0xa634('0x98'));}var _0x3a4232=_0x198699[_0xa634('0x2c')][_0xa634('0x99')]?_0x198699[_0xa634('0x2c')]['hostname']+':'+_0x198699[_0xa634('0x2c')]['port']:_0xa634('0x9a')+_0x198699[_0xa634('0x2c')]['port'];var _0x4aaea6=_0x198699['query'][_0xa634('0x18')]?_0x198699['query'][_0xa634('0x18')]:!![];var _0x26c179=_0x198699[_0xa634('0x2c')][_0xa634('0x9b')]?_0x198699['query']['encoding']:null;var _0x14c067={'method':_0x198699[_0xa634('0x9c')],'uri':util['format'](_0xa634('0x9d'),_0x3a4232,_0x198699[_0xa634('0x2c')][_0xa634('0x5')]),'json':_0x4aaea6,'resolveWithFullResponse':!![],'encoding':_0x26c179,'qs':_0x198699['query']};if(_0x198699['headers']){_0x14c067['headers']=_0x198699[_0xa634('0x9e')];if(_0x14c067['headers'][_0xa634('0x9f')]){delete _0x14c067['headers'][_0xa634('0x9f')];}}if(_0x14c067[_0xa634('0x9e')][_0xa634('0xa0')]){delete _0x14c067['headers'][_0xa634('0xa0')];}return rp(_0x14c067);})[_0xa634('0x23')](function(_0x2bd103){if(_0x2bd103){_0x37c59e[_0xa634('0x1a')](_0x2bd103[_0xa634('0x9e')]);logger[_0xa634('0x5c')](_0x2bd103['body']);if(_[_0xa634('0xa1')](_0x198699['query'][_0xa634('0x5')],_0xa634('0x46'))&&_0x2bd103[_0xa634('0xa2')]==0x1f4){return _0x37c59e[_0xa634('0x15')](_0x2bd103['statusCode']);}else{return _0x37c59e[_0xa634('0x16')](_0x2bd103[_0xa634('0xa2')])[_0xa634('0x8f')](_0x2bd103[_0xa634('0x89')]);}}else{return _0x37c59e[_0xa634('0x15')](0xc8);}})[_0xa634('0x40')](handleError(_0x37c59e,null));};exports[_0xa634('0xa3')]=function(_0x11dea1,_0x4d7cad,_0x34ade4){return BPromise[_0xa634('0x95')]()['then'](function(){if(!_0x11dea1[_0xa634('0x2c')][_0xa634('0x5')]){throw new Error('\x27PATH\x27\x20parameter\x20not\x20specified');}if(!_0x11dea1[_0xa634('0x2c')][_0xa634('0x97')]){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x41a606=_0x11dea1[_0xa634('0x2c')][_0xa634('0x99')]?_0x11dea1[_0xa634('0x2c')]['hostname']+':'+_0x11dea1[_0xa634('0x2c')][_0xa634('0x97')]:_0xa634('0x9a')+_0x11dea1[_0xa634('0x2c')][_0xa634('0x97')];var _0x4e5d3f=_0x11dea1['query']['json']?_0x11dea1[_0xa634('0x2c')][_0xa634('0x18')]:!![];var _0x1e16e0=_0x11dea1[_0xa634('0x2c')]['encoding']?_0x11dea1[_0xa634('0x2c')]['encoding']:null;var _0x27ee21={'method':_0x11dea1[_0xa634('0x9c')],'uri':util[_0xa634('0x4a')](_0xa634('0x9d'),_0x41a606,_0x11dea1[_0xa634('0x2c')]['path']),'json':_0x4e5d3f,'resolveWithFullResponse':!![],'encoding':_0x1e16e0,'body':_0x11dea1['body']};if(_0x11dea1[_0xa634('0x9e')]){_0x27ee21[_0xa634('0x9e')]=_0x11dea1['headers'];if(_0x27ee21[_0xa634('0x9e')]['content-length']){delete _0x27ee21['headers'][_0xa634('0x9f')];}}if(_0x27ee21['headers'][_0xa634('0xa0')]){delete _0x27ee21[_0xa634('0x9e')][_0xa634('0xa0')];}return rp(_0x27ee21);})[_0xa634('0x23')](function(_0x262d8b){if(_0x262d8b){_0x4d7cad[_0xa634('0x1a')](_0x262d8b[_0xa634('0x9e')]);logger[_0xa634('0x5c')](_0x262d8b[_0xa634('0x89')]);return _0x4d7cad[_0xa634('0x16')](_0x262d8b['statusCode'])[_0xa634('0x8f')](_0x262d8b[_0xa634('0x89')]);}else{return _0x4d7cad['sendStatus'](0xc8);}})[_0xa634('0x40')](handleError(_0x4d7cad,null));};