59453d3614f830e343dffa024df820ccbf1dc9e9
[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 _0x5425=['squel','crypto','jsforce','desk.js','querystring','papaparse','extract-zip','archiver','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./plugin.socket','register','sendStatus','status','json','offset','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','get','Plugins','UserProfileResource','end','error','stack','name','send','index','map','Plugin','rawAttributes','fieldName','type','query','filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','show','params','keys','length','find','catch','download','join','root','server/files/plugins','format','%s.zip','createWriteStream','zip','warning','code','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','**/*','dirname','basename','node_modules/**/*','attachments/**/*','finalize','close','existsSync','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','upload','file','extname','filename','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','chmodSync','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','some','manifest.json','parse','undefined','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','views','Invalid\x20manifest:\x20views\x20missing','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','scriptName','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','script','scriptPath','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','create','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','http://localhost:','encoding','method','%s%s','headers','content-length','content-type','statusCode','webhookPost','hostname','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash'];(function(_0x3340c8,_0x3d67d7){var _0x30ca8a=function(_0x435fff){while(--_0x435fff){_0x3340c8['push'](_0x3340c8['shift']());}};_0x30ca8a(++_0x3d67d7);}(_0x5425,0xa3));var _0x5542=function(_0x36a1d6,_0x5b72a9){_0x36a1d6=_0x36a1d6-0x0;var _0x49734e=_0x5425[_0x36a1d6];return _0x49734e;};'use strict';var emlformat=require(_0x5542('0x0'));var rimraf=require(_0x5542('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x5542('0x2'));var moment=require(_0x5542('0x3'));var BPromise=require(_0x5542('0x4'));var Mustache=require(_0x5542('0x5'));var util=require(_0x5542('0x6'));var path=require(_0x5542('0x7'));var sox=require(_0x5542('0x8'));var csv=require(_0x5542('0x9'));var ejs=require(_0x5542('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5542('0xb'));var squel=require(_0x5542('0xc'));var crypto=require(_0x5542('0xd'));var jsforce=require(_0x5542('0xe'));var deskjs=require(_0x5542('0xf'));var toCsv=require(_0x5542('0x9'));var querystring=require(_0x5542('0x10'));var Papa=require(_0x5542('0x11'));var extract=require(_0x5542('0x12'));var rimraf=require(_0x5542('0x1'));var archiver=require(_0x5542('0x13'));var Redis=require('ioredis');var authService=require(_0x5542('0x14'));var qs=require(_0x5542('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5542('0x16'));var logger=require(_0x5542('0x17'))(_0x5542('0x18'));var utils=require('../../config/utils');var config=require(_0x5542('0x19'));var licenseUtil=require(_0x5542('0x1a'));var db=require(_0x5542('0x1b'))['db'];config[_0x5542('0x1c')]=_[_0x5542('0x1d')](config[_0x5542('0x1c')],{'host':_0x5542('0x1e'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x5542('0x1f'))[_0x5542('0x20')](socket);function respondWithStatusCode(_0x533e10,_0xf93cf1){_0xf93cf1=_0xf93cf1||0xcc;return function(_0x4bd826){if(_0x4bd826){return _0x533e10[_0x5542('0x21')](_0xf93cf1);}return _0x533e10['status'](_0xf93cf1)['end']();};}function respondWithResult(_0x15deec,_0x46fa0e){_0x46fa0e=_0x46fa0e||0xc8;return function(_0x5d1ad3){if(_0x5d1ad3){return _0x15deec[_0x5542('0x22')](_0x46fa0e)[_0x5542('0x23')](_0x5d1ad3);}};}function respondWithFilteredResult(_0x99ac42,_0xe48937){return function(_0x1a3889){if(_0x1a3889){var _0x177b16=typeof _0xe48937[_0x5542('0x24')]==='undefined'&&typeof _0xe48937[_0x5542('0x25')]==='undefined';var _0x984963=_0x1a3889[_0x5542('0x26')];var _0x23d9e6=_0x177b16?0x0:_0xe48937['offset'];var _0x22d7c0=_0x177b16?_0x1a3889[_0x5542('0x26')]:_0xe48937[_0x5542('0x24')]+_0xe48937[_0x5542('0x25')];var _0x206946;if(_0x22d7c0>=_0x984963){_0x22d7c0=_0x984963;_0x206946=0xc8;}else{_0x206946=0xce;}_0x99ac42[_0x5542('0x22')](_0x206946);return _0x99ac42[_0x5542('0x27')](_0x5542('0x28'),_0x23d9e6+'-'+_0x22d7c0+'/'+_0x984963)[_0x5542('0x23')](_0x1a3889);}return null;};}function patchUpdates(_0x24ed0c){return function(_0x429b80){try{jsonpatch[_0x5542('0x29')](_0x429b80,_0x24ed0c,!![]);}catch(_0x30b7a3){return BPromise[_0x5542('0x2a')](_0x30b7a3);}return _0x429b80[_0x5542('0x2b')]();};}function saveUpdates(_0x779284,_0x892edc){return function(_0x8f6a96){if(_0x8f6a96){return _0x8f6a96[_0x5542('0x2c')](_0x779284)['then'](function(_0x40431c){return _0x40431c;});}return null;};}function removeEntity(_0x36b513,_0x36c4da){return function(_0x5c6543){if(_0x5c6543){return _0x5c6543[_0x5542('0x2d')]()[_0x5542('0x2e')](function(){var _0x115be4=_0x5c6543[_0x5542('0x2f')]({'plain':!![]});var _0x17dd62=_0x5542('0x30');return db[_0x5542('0x31')]['destroy']({'where':{'type':_0x17dd62,'resourceId':_0x115be4['id']}})[_0x5542('0x2e')](function(){return _0x5c6543;});})['then'](function(){_0x36b513['status'](0xcc)[_0x5542('0x32')]();});}};}function handleEntityNotFound(_0xaeb789,_0x22c2f5){return function(_0x581a63){if(!_0x581a63){_0xaeb789[_0x5542('0x21')](0x194);}return _0x581a63;};}function handleError(_0x2f7e7a,_0x3aa8f9){_0x3aa8f9=_0x3aa8f9||0x1f4;return function(_0x178ed9){logger[_0x5542('0x33')](_0x178ed9[_0x5542('0x34')]);if(_0x178ed9[_0x5542('0x35')]){delete _0x178ed9['name'];}_0x2f7e7a['status'](_0x3aa8f9)[_0x5542('0x36')](_0x178ed9);};}exports[_0x5542('0x37')]=function(_0x1207d4,_0x1ab0fd){var _0x3aca48={},_0x319fa1={},_0x59cec4={'count':0x0,'rows':[]};var _0x2e9ed9=_[_0x5542('0x38')](db[_0x5542('0x39')][_0x5542('0x3a')],function(_0x1a3088){return{'name':_0x1a3088[_0x5542('0x3b')],'type':_0x1a3088[_0x5542('0x3c')]['key']};});_0x319fa1['model']=_[_0x5542('0x38')](_0x2e9ed9,_0x5542('0x35'));_0x319fa1[_0x5542('0x3d')]=_['keys'](_0x1207d4[_0x5542('0x3d')]);_0x319fa1[_0x5542('0x3e')]=_[_0x5542('0x3f')](_0x319fa1[_0x5542('0x40')],_0x319fa1[_0x5542('0x3d')]);_0x3aca48['attributes']=_['intersection'](_0x319fa1[_0x5542('0x40')],qs[_0x5542('0x41')](_0x1207d4[_0x5542('0x3d')]['fields']));_0x3aca48[_0x5542('0x42')]=_0x3aca48['attributes']['length']?_0x3aca48[_0x5542('0x42')]:_0x319fa1[_0x5542('0x40')];if(!_0x1207d4['query'][_0x5542('0x43')](_0x5542('0x44'))){_0x3aca48[_0x5542('0x25')]=qs[_0x5542('0x25')](_0x1207d4[_0x5542('0x3d')]['limit']);_0x3aca48[_0x5542('0x24')]=qs['offset'](_0x1207d4[_0x5542('0x3d')]['offset']);}_0x3aca48[_0x5542('0x45')]=qs[_0x5542('0x46')](_0x1207d4[_0x5542('0x3d')]['sort']);_0x3aca48[_0x5542('0x47')]=qs[_0x5542('0x3e')](_[_0x5542('0x48')](_0x1207d4[_0x5542('0x3d')],_0x319fa1[_0x5542('0x3e')]),_0x2e9ed9);if(_0x1207d4[_0x5542('0x3d')][_0x5542('0x49')]){_0x3aca48['where']=_[_0x5542('0x4a')](_0x3aca48['where'],{'$or':_[_0x5542('0x38')](_0x2e9ed9,function(_0x2790aa){if(_0x2790aa[_0x5542('0x3c')]!==_0x5542('0x4b')){var _0x128489={};_0x128489[_0x2790aa[_0x5542('0x35')]]={'$like':'%'+_0x1207d4[_0x5542('0x3d')][_0x5542('0x49')]+'%'};return _0x128489;}})});}_0x3aca48=_[_0x5542('0x4a')]({},_0x3aca48,_0x1207d4[_0x5542('0x4c')]);var _0x14b372={'where':_0x3aca48[_0x5542('0x47')]};return db[_0x5542('0x39')][_0x5542('0x26')](_0x14b372)[_0x5542('0x2e')](function(_0x58bd8d){_0x59cec4[_0x5542('0x26')]=_0x58bd8d;if(_0x1207d4[_0x5542('0x3d')][_0x5542('0x4d')]){_0x3aca48[_0x5542('0x4e')]=[{'all':!![]}];}return db[_0x5542('0x39')]['findAll'](_0x3aca48);})[_0x5542('0x2e')](function(_0x5f2f37){_0x59cec4[_0x5542('0x4f')]=_0x5f2f37;return _0x59cec4;})['then'](respondWithFilteredResult(_0x1ab0fd,_0x3aca48))['catch'](handleError(_0x1ab0fd,null));};exports[_0x5542('0x50')]=function(_0x2a224e,_0x4de8e6){var _0x5955e8={'raw':!![],'where':{'id':_0x2a224e[_0x5542('0x51')]['id']}},_0x362742={};_0x362742['model']=_[_0x5542('0x52')](db[_0x5542('0x39')]['rawAttributes']);_0x362742[_0x5542('0x3d')]=_[_0x5542('0x52')](_0x2a224e[_0x5542('0x3d')]);_0x362742[_0x5542('0x3e')]=_[_0x5542('0x3f')](_0x362742['model'],_0x362742[_0x5542('0x3d')]);_0x5955e8['attributes']=_['intersection'](_0x362742['model'],qs[_0x5542('0x41')](_0x2a224e[_0x5542('0x3d')][_0x5542('0x41')]));_0x5955e8[_0x5542('0x42')]=_0x5955e8[_0x5542('0x42')][_0x5542('0x53')]?_0x5955e8[_0x5542('0x42')]:_0x362742['model'];if(_0x2a224e[_0x5542('0x3d')]['includeAll']){_0x5955e8[_0x5542('0x4e')]=[{'all':!![]}];}_0x5955e8=_[_0x5542('0x4a')]({},_0x5955e8,_0x2a224e['options']);return db[_0x5542('0x39')][_0x5542('0x54')](_0x5955e8)['then'](handleEntityNotFound(_0x4de8e6,null))[_0x5542('0x2e')](respondWithResult(_0x4de8e6,null))[_0x5542('0x55')](handleError(_0x4de8e6,null));};exports[_0x5542('0x56')]=function(_0x54d6c1,_0x3c4d54,_0x25cf4a){return db[_0x5542('0x39')][_0x5542('0x54')]({'where':{'id':_0x54d6c1['params']['id']},'attributes':['name',_0x5542('0x7')],'raw':!![]})[_0x5542('0x2e')](handleEntityNotFound(_0x3c4d54,null))[_0x5542('0x2e')](function(_0x17d661){if(_0x17d661){var _0x384c39=path[_0x5542('0x57')](config[_0x5542('0x58')],_0x5542('0x59'),util[_0x5542('0x5a')](_0x5542('0x5b'),path['basename'](_0x17d661[_0x5542('0x7')])));var _0xfc802c=fs[_0x5542('0x5c')](_0x384c39);var _0x56ddeb=archiver(_0x5542('0x5d'),{'zlib':{'level':0x9}});_0x56ddeb['on'](_0x5542('0x5e'),function(_0x589987){if(_0x589987[_0x5542('0x5f')]===_0x5542('0x60')){logger[_0x5542('0x33')](_0x589987);}else{throw new db[(_0x5542('0x61'))][(_0x5542('0x62'))](_0x5542('0x63'));}});_0x56ddeb['on']('error',function(_0x50a72a){throw new db[(_0x5542('0x61'))][(_0x5542('0x62'))](_0x5542('0x63'));});_0x56ddeb['pipe'](_0xfc802c);_0x56ddeb['glob'](_0x5542('0x64'),{'cwd':path[_0x5542('0x57')](config['root'],_0x5542('0x59'),path[_0x5542('0x65')](_0x17d661['path'])),'ignore':[path[_0x5542('0x57')](path[_0x5542('0x66')](_0x17d661[_0x5542('0x7')]),_0x5542('0x67')),path[_0x5542('0x57')](path[_0x5542('0x66')](_0x17d661['path']),_0x5542('0x68'))],'nodir':!![]})[_0x5542('0x69')]();_0xfc802c['on'](_0x5542('0x6a'),function(){if(!fs[_0x5542('0x6b')](_0x384c39)){throw new db[(_0x5542('0x61'))][(_0x5542('0x62'))]('Plugin\x20not\x20found');}return _0x3c4d54[_0x5542('0x56')](_0x384c39,util[_0x5542('0x5a')](_0x5542('0x5b'),path[_0x5542('0x66')](_0x17d661[_0x5542('0x7')])),function(_0x19545d){if(_0x19545d){throw new db['Sequelize'][(_0x5542('0x62'))](_0x5542('0x6c'));}fs[_0x5542('0x6d')](_0x384c39);logger[_0x5542('0x6e')](_0x5542('0x6f'));logger['info']('Temporary\x20file\x20removed');});});}return null;})[_0x5542('0x55')](handleError(_0x3c4d54,null));};exports[_0x5542('0x70')]=function(_0x553e6b,_0x372e79,_0x4c0f93){var _0x567a08=path['basename'](_0x553e6b[_0x5542('0x71')]['filename'],path[_0x5542('0x72')](_0x553e6b[_0x5542('0x71')]['filename']));var _0x544dec=path['join'](config['root'],'server/files/plugins',_0x553e6b['file'][_0x5542('0x73')]);var _0x2fa2d2=path[_0x5542('0x57')](config[_0x5542('0x58')],'server/files/plugins',_0x567a08);logger[_0x5542('0x6e')](_0x5542('0x74'),_0x544dec);logger['info'](_0x5542('0x75'),_0x2fa2d2);try{fs[_0x5542('0x76')](_0x544dec,parseInt('0777',0x8));extract(_0x544dec,{'dir':_0x2fa2d2},function(_0x345be9){if(_0x345be9){logger[_0x5542('0x33')](_0x345be9);handleError(_0x345be9,!![]);};var _0x3bcb8f=fs['readdirSync'](_0x2fa2d2);if(_0x3bcb8f[_0x5542('0x53')]>0x1){removeReferences(_0x544dec,_0x2fa2d2);logger['error'](_0x5542('0x77'));return _0x4c0f93(new Error(_0x5542('0x77')));}var _0x244c21=fs[_0x5542('0x78')](path['join'](_0x2fa2d2,_0x3bcb8f[0x0]));if(_0x244c21[_0x5542('0x79')]()){removeReferences(_0x544dec,_0x2fa2d2);logger[_0x5542('0x33')](_0x5542('0x77'));return _0x4c0f93(new Error(_0x5542('0x77')));}if(_0x244c21[_0x5542('0x7a')]()){var _0x110889=fs['readdirSync'](path['join'](_0x2fa2d2,_0x3bcb8f[0x0]));if(_0x110889['length']===0x0){removeReferences(_0x544dec,_0x2fa2d2);logger[_0x5542('0x33')](_0x5542('0x77'));return _0x4c0f93(new Error(_0x5542('0x77')));}var _0x1f07fd=_0x110889[_0x5542('0x7b')](function(_0x5f4006){return _0x5f4006===_0x5542('0x7c');});if(!_0x1f07fd){return _0x4c0f93(new Error('Plugin\x20manifest\x20missing'));}var _0xdf679e=fs['readFileSync'](path['join'](_0x2fa2d2,_0x3bcb8f[0x0],_0x5542('0x7c')));var _0x379c5e=JSON[_0x5542('0x7d')](_0xdf679e);if(_0x5542('0x7e')==typeof _0x379c5e[_0x5542('0x35')]){return _0x4c0f93(new Error(_0x5542('0x7f')));}if('undefined'==typeof _0x379c5e[_0x5542('0x3c')]){return _0x4c0f93(new Error(_0x5542('0x80')));}if(_0x5542('0x7e')==typeof _0x379c5e[_0x5542('0x81')]){return _0x4c0f93(new Error(_0x5542('0x82')));}if(_0x5542('0x7e')==typeof _0x379c5e[_0x5542('0x83')]){return _0x4c0f93(new Error(_0x5542('0x84')));}if(_0x379c5e['type']===_0x5542('0x85')){if(_0x5542('0x7e')==typeof _0x379c5e[_0x5542('0x83')][_0x5542('0x86')]){return _0x4c0f93(new Error(_0x5542('0x87')));}if(_0x5542('0x7e')==typeof _0x379c5e[_0x5542('0x83')][_0x5542('0x86')][_0x5542('0x88')]&&_0x5542('0x7e')==typeof _0x379c5e[_0x5542('0x83')]['views'][_0x5542('0x89')]){return _0x4c0f93(new Error(_0x5542('0x8a')));}}else if(_0x379c5e['type']==='script'){if('undefined'==typeof _0x379c5e[_0x5542('0x83')][_0x5542('0x8b')]){return _0x4c0f93(new Error('Invalid\x20manifest:\x20script\x20name\x20missing'));}if(_0x5542('0x7e')==typeof _0x379c5e[_0x5542('0x83')]['scriptPath']){return _0x4c0f93(new Error(_0x5542('0x8c')));}}else{return _0x4c0f93(new Error(_0x5542('0x8d')));}var _0x44dc6d=_0x379c5e['name'];var _0x45df3f=_0x379c5e['description'];var _0x47af09=_0x379c5e['type'];var _0x42afec=_0x379c5e[_0x5542('0x8e')]?_0x379c5e[_0x5542('0x8e')]:_0x5542('0x8f');var _0x230f98=_0x379c5e['icon']?_0x379c5e[_0x5542('0x90')]:_0x5542('0x91');var _0x4c0fad='';var _0xbbb16f='';var _0x2281e8='';var _0x1407b5='';var _0x39dd13=_0x379c5e[_0x5542('0x81')];if(_0x47af09===_0x5542('0x85')){if('undefined'!=typeof _0x379c5e[_0x5542('0x83')][_0x5542('0x86')][_0x5542('0x88')]){var _0xe45f=_0x379c5e['parameters'][_0x5542('0x86')][_0x5542('0x88')];if(!/^(f|ht)tps?:\/\//i[_0x5542('0x92')](_0xe45f)){_0x4c0fad=path[_0x5542('0x57')]('plugins',_0x567a08,_0x3bcb8f[0x0],_0xe45f);}else{_0x4c0fad=_0xe45f;}}else{logger[_0x5542('0x6e')](_0x5542('0x93'));}if(_0x5542('0x7e')!=typeof _0x379c5e[_0x5542('0x83')][_0x5542('0x86')][_0x5542('0x89')]){var _0x1c56ae=_0x379c5e['parameters'][_0x5542('0x86')][_0x5542('0x89')];if(!/^(f|ht)tps?:\/\//i[_0x5542('0x92')](_0x1c56ae)){_0xbbb16f=path[_0x5542('0x57')](_0x5542('0x94'),_0x567a08,_0x3bcb8f[0x0],_0x1c56ae);}else{_0xbbb16f=_0x1c56ae;}}else{logger[_0x5542('0x6e')](_0x5542('0x95'));}}else if(_0x47af09===_0x5542('0x96')){_0x2281e8=_0x379c5e[_0x5542('0x83')]['scriptName'];_0x1407b5=_0x379c5e[_0x5542('0x83')][_0x5542('0x97')];if('undefined'!=typeof _0x379c5e[_0x5542('0x83')]['views']){if(_0x5542('0x7e')!=typeof _0x379c5e[_0x5542('0x83')][_0x5542('0x86')]['admin']){var _0xe45f=_0x379c5e[_0x5542('0x83')][_0x5542('0x86')][_0x5542('0x88')];if(!/^(f|ht)tps?:\/\//i[_0x5542('0x92')](_0xe45f)){_0x4c0fad=path[_0x5542('0x57')](_0x5542('0x94'),_0x567a08,_0x3bcb8f[0x0],_0xe45f);}else{_0x4c0fad=_0xe45f;}}if(_0x5542('0x7e')!=typeof _0x379c5e[_0x5542('0x83')][_0x5542('0x86')][_0x5542('0x89')]){var _0x1c56ae=_0x379c5e[_0x5542('0x83')][_0x5542('0x86')]['agent'];if(!/^(f|ht)tps?:\/\//i[_0x5542('0x92')](_0x1c56ae)){_0xbbb16f=path['join'](_0x5542('0x94'),_0x567a08,_0x3bcb8f[0x0],_0x1c56ae);}else{_0xbbb16f=_0x1c56ae;}}}}var _0x5a928d={'name':_0x44dc6d,'description':_0x45df3f,'path':path['join'](_0x567a08,_0x3bcb8f[0x0]),'type':_0x47af09,'sidebar':_0x42afec,'icon':_0x230f98,'adminUrl':_0x4c0fad,'agentUrl':_0xbbb16f,'scriptName':_0x2281e8,'scriptPath':_0x1407b5,'version':_0x39dd13};removeReferences(_0x544dec,null);return db['Plugin']['create'](_0x5a928d)[_0x5542('0x2e')](function(_0x5959fa){var _0xdd4169={'role':_0x553e6b[_0x5542('0x98')]['role'],'userProfileId':_0x553e6b[_0x5542('0x98')][_0x5542('0x99')]};if(!_0xdd4169)throw new Error(_0x5542('0x9a'));if(_0xdd4169[_0x5542('0x9b')]==='user'){var _0x4551cf=_0x5959fa[_0x5542('0x2f')]({'plain':!![]});return db['UserProfileSection'][_0x5542('0x54')]({'where':{'name':_0x5542('0x30'),'userProfileId':_0xdd4169[_0x5542('0x99')]},'raw':!![]})[_0x5542('0x2e')](function(_0x3fe2e3){if(_0x3fe2e3&&_0x3fe2e3['autoAssociation']===0x0){return db[_0x5542('0x31')][_0x5542('0x9c')]({'name':_0x4551cf[_0x5542('0x35')],'resourceId':_0x4551cf['id'],'type':_0x3fe2e3[_0x5542('0x35')],'sectionId':_0x3fe2e3['id']},{})['then'](function(){return _0x5959fa;});}else{return _0x5959fa;}})[_0x5542('0x55')](function(_0x34832f){logger[_0x5542('0x33')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x34832f);throw _0x34832f;});}return _0x5959fa;})[_0x5542('0x2e')](respondWithResult(_0x372e79,null))[_0x5542('0x55')](handleError(_0x372e79,null));}});}catch(_0x382280){_0x372e79[_0x5542('0x22')](0x1f4)[_0x5542('0x36')](_0x382280);}};function removeReferences(_0x4e799a,_0x4f4f2a){try{if(_0x4e799a){fs[_0x5542('0x6d')](_0x4e799a);logger[_0x5542('0x6e')](_0x5542('0x9d'));}if(_0x4f4f2a){rimraf(_0x4f4f2a,function(){});logger['info'](_0x5542('0x9e'));}}catch(_0x10865c){logger['error'](_0x10865c);}}exports[_0x5542('0x2c')]=function(_0x1754f5,_0x2f2602,_0x3df4ae){return db['Plugin'][_0x5542('0x54')]({'where':{'id':_0x1754f5[_0x5542('0x51')]['id']}})[_0x5542('0x2e')](handleEntityNotFound(_0x2f2602,null))[_0x5542('0x2e')](saveUpdates(_0x1754f5[_0x5542('0x98')],null))[_0x5542('0x2e')](respondWithResult(_0x2f2602,null))[_0x5542('0x55')](handleError(_0x2f2602,null));};exports[_0x5542('0x9f')]=function(_0x3e4eef,_0x5d2403,_0x518eb3){return db[_0x5542('0x39')]['find']({'where':{'id':_0x3e4eef[_0x5542('0x51')]['id']}})[_0x5542('0x2e')](function(_0x3f4be9){if(_0x3f4be9){return _0x3f4be9[_0x5542('0x2d')]();}})[_0x5542('0x2e')](function(_0x3e4b29){rimraf(path[_0x5542('0x57')](config['root'],_0x5542('0x59'),path['dirname'](_0x3e4b29['path'])),function(){});return _0x3e4b29;})[_0x5542('0x2e')](handleEntityNotFound(_0x5d2403,null))['then'](respondWithStatusCode(_0x5d2403,null))[_0x5542('0x55')](handleError(_0x5d2403,null));};exports[_0x5542('0xa0')]=function(_0x170240,_0x167b42,_0x2ea44b){return BPromise[_0x5542('0xa1')]()[_0x5542('0x2e')](function(){if(!_0x170240[_0x5542('0x3d')][_0x5542('0x7')]){throw new Error(_0x5542('0xa2'));}if(!_0x170240['query'][_0x5542('0xa3')]){throw new Error(_0x5542('0xa4'));}var _0x14feeb=_0x170240[_0x5542('0x3d')]['hostname']?_0x170240['query']['hostname']+':'+_0x170240[_0x5542('0x3d')]['port']:_0x5542('0xa5')+_0x170240['query']['port'];var _0x1c2b24=_0x170240[_0x5542('0x3d')][_0x5542('0x23')]?_0x170240[_0x5542('0x3d')]['json']:!![];var _0x52c22b=_0x170240['query'][_0x5542('0xa6')]?_0x170240[_0x5542('0x3d')][_0x5542('0xa6')]:null;var _0x564d78={'method':_0x170240[_0x5542('0xa7')],'uri':util[_0x5542('0x5a')](_0x5542('0xa8'),_0x14feeb,_0x170240['query'][_0x5542('0x7')]),'json':_0x1c2b24,'resolveWithFullResponse':!![],'encoding':_0x52c22b,'qs':_0x170240[_0x5542('0x3d')]};if(_0x170240['headers']){_0x564d78[_0x5542('0xa9')]=_0x170240[_0x5542('0xa9')];if(_0x564d78[_0x5542('0xa9')][_0x5542('0xaa')]){delete _0x564d78[_0x5542('0xa9')][_0x5542('0xaa')];}}if(_0x564d78[_0x5542('0xa9')]['content-type']){delete _0x564d78[_0x5542('0xa9')][_0x5542('0xab')];}return rp(_0x564d78);})[_0x5542('0x2e')](function(_0xab0c65){if(_0xab0c65){_0x167b42[_0x5542('0x27')](_0xab0c65[_0x5542('0xa9')]);logger['info'](_0xab0c65[_0x5542('0x98')]);if(_['endsWith'](_0x170240[_0x5542('0x3d')]['path'],_0x5542('0x56'))&&_0xab0c65[_0x5542('0xac')]==0x1f4){return _0x167b42[_0x5542('0x21')](_0xab0c65[_0x5542('0xac')]);}else{return _0x167b42[_0x5542('0x22')](_0xab0c65[_0x5542('0xac')])[_0x5542('0x36')](_0xab0c65[_0x5542('0x98')]);}}else{return _0x167b42['sendStatus'](0xc8);}})[_0x5542('0x55')](handleError(_0x167b42,null));};exports[_0x5542('0xad')]=function(_0x101de8,_0x231fde,_0x3e1269){return BPromise['resolve']()['then'](function(){if(!_0x101de8[_0x5542('0x3d')][_0x5542('0x7')]){throw new Error(_0x5542('0xa2'));}if(!_0x101de8[_0x5542('0x3d')][_0x5542('0xa3')]){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x371e29=_0x101de8['query'][_0x5542('0xae')]?_0x101de8[_0x5542('0x3d')]['hostname']+':'+_0x101de8['query'][_0x5542('0xa3')]:'http://localhost:'+_0x101de8[_0x5542('0x3d')][_0x5542('0xa3')];var _0x51a81d=_0x101de8[_0x5542('0x3d')][_0x5542('0x23')]?_0x101de8[_0x5542('0x3d')][_0x5542('0x23')]:!![];var _0x353986=_0x101de8[_0x5542('0x3d')][_0x5542('0xa6')]?_0x101de8[_0x5542('0x3d')]['encoding']:null;var _0x3ccf50={'method':_0x101de8[_0x5542('0xa7')],'uri':util['format']('%s%s',_0x371e29,_0x101de8[_0x5542('0x3d')][_0x5542('0x7')]),'json':_0x51a81d,'resolveWithFullResponse':!![],'encoding':_0x353986,'body':_0x101de8['body']};if(_0x101de8[_0x5542('0xa9')]){_0x3ccf50['headers']=_0x101de8[_0x5542('0xa9')];if(_0x3ccf50[_0x5542('0xa9')][_0x5542('0xaa')]){delete _0x3ccf50[_0x5542('0xa9')][_0x5542('0xaa')];}}if(_0x3ccf50[_0x5542('0xa9')][_0x5542('0xab')]){delete _0x3ccf50[_0x5542('0xa9')]['content-type'];}return rp(_0x3ccf50);})[_0x5542('0x2e')](function(_0x53858d){if(_0x53858d){_0x231fde[_0x5542('0x27')](_0x53858d[_0x5542('0xa9')]);logger[_0x5542('0x6e')](_0x53858d[_0x5542('0x98')]);return _0x231fde[_0x5542('0x22')](_0x53858d[_0x5542('0xac')])['send'](_0x53858d[_0x5542('0x98')]);}else{return _0x231fde[_0x5542('0x21')](0xc8);}})[_0x5542('0x55')](handleError(_0x231fde,null));};