950c3c4a4331dd3f35f6598634f00158c39a99c0
[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 _0x8a14=['includeAll','include','findAll','rows','catch','show','params','length','find','root','server/files/plugins','format','%s.zip','basename','createWriteStream','zip','warning','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','dirname','node_modules/**/*','join','close','existsSync','Plugin\x20not\x20found','download','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','upload','extname','file','filename','Plugin\x20upload\x20filepath:\x20%s','chmodSync','0777','error','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','isDirectory','some','manifest.json','Plugin\x20manifest\x20missing','readFileSync','parse','Invalid\x20manifest:\x20name\x20missing','type','Invalid\x20manifest:\x20type\x20missing','Invalid\x20manifest:\x20parameters\x20missing','html','parameters','views','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','icon-apps','version','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','Warning:\x20agent\x20view\x20not\x20specified','body','role','userProfileId','UserProfileSection','autoAssociation','create','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','port','http://localhost:','encoding','method','%s%s','headers','content-length','content-type','endsWith','statusCode','sendStatus','webhookPost','eml-format','zip-dir','request-promise','bluebird','util','path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','extract-zip','rimraf','archiver','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','socket.io-emitter','./plugin.socket','end','json','offset','limit','undefined','count','status','set','Content-Range','apply','reject','save','then','destroy','Plugins','UserProfileResource','stack','name','send','map','rawAttributes','fieldName','key','keys','query','filters','intersection','model','attributes','fields','hasOwnProperty','sort','pick','filter','merge','options','Plugin'];(function(_0x186fc0,_0x568027){var _0x2c0b9b=function(_0x4fb379){while(--_0x4fb379){_0x186fc0['push'](_0x186fc0['shift']());}};_0x2c0b9b(++_0x568027);}(_0x8a14,0x111));var _0x48a1=function(_0x4b4c9b,_0x4b0ddc){_0x4b4c9b=_0x4b4c9b-0x0;var _0x37f53b=_0x8a14[_0x4b4c9b];return _0x37f53b;};'use strict';var emlformat=require(_0x48a1('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x48a1('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x48a1('0x2'));var moment=require('moment');var BPromise=require(_0x48a1('0x3'));var Mustache=require('mustache');var util=require(_0x48a1('0x4'));var path=require(_0x48a1('0x5'));var sox=require(_0x48a1('0x6'));var csv=require(_0x48a1('0x7'));var ejs=require(_0x48a1('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x48a1('0x9'));var crypto=require(_0x48a1('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x48a1('0xb'));var toCsv=require('to-csv');var querystring=require(_0x48a1('0xc'));var Papa=require(_0x48a1('0xd'));var extract=require(_0x48a1('0xe'));var rimraf=require(_0x48a1('0xf'));var archiver=require(_0x48a1('0x10'));var Redis=require('ioredis');var authService=require(_0x48a1('0x11'));var qs=require(_0x48a1('0x12'));var as=require(_0x48a1('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x48a1('0x14'));var config=require(_0x48a1('0x15'));var licenseUtil=require(_0x48a1('0x16'));var db=require(_0x48a1('0x17'))['db'];config['redis']=_[_0x48a1('0x18')](config[_0x48a1('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0x48a1('0x1a'))(new Redis(config[_0x48a1('0x19')]));require(_0x48a1('0x1b'))['register'](socket);function respondWithStatusCode(_0x41553a,_0x17d0d8){_0x17d0d8=_0x17d0d8||0xcc;return function(_0x38f3b2){if(_0x38f3b2){return _0x41553a['sendStatus'](_0x17d0d8);}return _0x41553a['status'](_0x17d0d8)[_0x48a1('0x1c')]();};}function respondWithResult(_0x4d8952,_0x143030){_0x143030=_0x143030||0xc8;return function(_0x8e936f){if(_0x8e936f){return _0x4d8952['status'](_0x143030)[_0x48a1('0x1d')](_0x8e936f);}};}function respondWithFilteredResult(_0x5d7244,_0x56e0fc){return function(_0x533735){if(_0x533735){var _0x3749a5=typeof _0x56e0fc[_0x48a1('0x1e')]==='undefined'&&typeof _0x56e0fc[_0x48a1('0x1f')]===_0x48a1('0x20');var _0xd0553a=_0x533735[_0x48a1('0x21')];var _0x3186d8=_0x3749a5?0x0:_0x56e0fc['offset'];var _0x423759=_0x3749a5?_0x533735['count']:_0x56e0fc[_0x48a1('0x1e')]+_0x56e0fc['limit'];var _0x2ea97c;if(_0x423759>=_0xd0553a){_0x423759=_0xd0553a;_0x2ea97c=0xc8;}else{_0x2ea97c=0xce;}_0x5d7244[_0x48a1('0x22')](_0x2ea97c);return _0x5d7244[_0x48a1('0x23')](_0x48a1('0x24'),_0x3186d8+'-'+_0x423759+'/'+_0xd0553a)[_0x48a1('0x1d')](_0x533735);}return null;};}function patchUpdates(_0x1c8a35){return function(_0x5dc65e){try{jsonpatch[_0x48a1('0x25')](_0x5dc65e,_0x1c8a35,!![]);}catch(_0xb50122){return BPromise[_0x48a1('0x26')](_0xb50122);}return _0x5dc65e[_0x48a1('0x27')]();};}function saveUpdates(_0x328a74,_0x4edf5b){return function(_0x3d04e7){if(_0x3d04e7){return _0x3d04e7['update'](_0x328a74)[_0x48a1('0x28')](function(_0x384ffc){return _0x384ffc;});}return null;};}function removeEntity(_0x171d0a,_0x57ecea){return function(_0x26da6a){if(_0x26da6a){return _0x26da6a[_0x48a1('0x29')]()[_0x48a1('0x28')](function(){var _0x42d50c=_0x26da6a['get']({'plain':!![]});var _0x1dc790=_0x48a1('0x2a');return db[_0x48a1('0x2b')][_0x48a1('0x29')]({'where':{'type':_0x1dc790,'resourceId':_0x42d50c['id']}})['then'](function(){return _0x26da6a;});})['then'](function(){_0x171d0a[_0x48a1('0x22')](0xcc)[_0x48a1('0x1c')]();});}};}function handleEntityNotFound(_0x2815a4,_0x1d9b51){return function(_0xd6d211){if(!_0xd6d211){_0x2815a4['sendStatus'](0x194);}return _0xd6d211;};}function handleError(_0x3c2a35,_0x4946d4){_0x4946d4=_0x4946d4||0x1f4;return function(_0x2c73f6){logger['error'](_0x2c73f6[_0x48a1('0x2c')]);if(_0x2c73f6[_0x48a1('0x2d')]){delete _0x2c73f6[_0x48a1('0x2d')];}_0x3c2a35[_0x48a1('0x22')](_0x4946d4)[_0x48a1('0x2e')](_0x2c73f6);};}exports['index']=function(_0xb153d3,_0x2689bb){var _0x4907c6={},_0x3c5c1a={},_0x75ee03={'count':0x0,'rows':[]};var _0x28add0=_[_0x48a1('0x2f')](db['Plugin'][_0x48a1('0x30')],function(_0x400520){return{'name':_0x400520[_0x48a1('0x31')],'type':_0x400520['type'][_0x48a1('0x32')]};});_0x3c5c1a['model']=_[_0x48a1('0x2f')](_0x28add0,_0x48a1('0x2d'));_0x3c5c1a['query']=_[_0x48a1('0x33')](_0xb153d3[_0x48a1('0x34')]);_0x3c5c1a[_0x48a1('0x35')]=_[_0x48a1('0x36')](_0x3c5c1a[_0x48a1('0x37')],_0x3c5c1a['query']);_0x4907c6[_0x48a1('0x38')]=_[_0x48a1('0x36')](_0x3c5c1a['model'],qs[_0x48a1('0x39')](_0xb153d3['query'][_0x48a1('0x39')]));_0x4907c6[_0x48a1('0x38')]=_0x4907c6[_0x48a1('0x38')]['length']?_0x4907c6[_0x48a1('0x38')]:_0x3c5c1a[_0x48a1('0x37')];if(!_0xb153d3['query'][_0x48a1('0x3a')]('nolimit')){_0x4907c6[_0x48a1('0x1f')]=qs[_0x48a1('0x1f')](_0xb153d3[_0x48a1('0x34')][_0x48a1('0x1f')]);_0x4907c6[_0x48a1('0x1e')]=qs[_0x48a1('0x1e')](_0xb153d3[_0x48a1('0x34')][_0x48a1('0x1e')]);}_0x4907c6['order']=qs[_0x48a1('0x3b')](_0xb153d3[_0x48a1('0x34')]['sort']);_0x4907c6['where']=qs[_0x48a1('0x35')](_[_0x48a1('0x3c')](_0xb153d3[_0x48a1('0x34')],_0x3c5c1a[_0x48a1('0x35')]),_0x28add0);if(_0xb153d3[_0x48a1('0x34')][_0x48a1('0x3d')]){_0x4907c6['where']=_[_0x48a1('0x3e')](_0x4907c6['where'],{'$or':_[_0x48a1('0x2f')](_0x28add0,function(_0x20a205){if(_0x20a205['type']!=='VIRTUAL'){var _0xa6b222={};_0xa6b222[_0x20a205[_0x48a1('0x2d')]]={'$like':'%'+_0xb153d3[_0x48a1('0x34')][_0x48a1('0x3d')]+'%'};return _0xa6b222;}})});}_0x4907c6=_[_0x48a1('0x3e')]({},_0x4907c6,_0xb153d3[_0x48a1('0x3f')]);var _0x66412c={'where':_0x4907c6['where']};return db[_0x48a1('0x40')]['count'](_0x66412c)[_0x48a1('0x28')](function(_0x281451){_0x75ee03[_0x48a1('0x21')]=_0x281451;if(_0xb153d3['query'][_0x48a1('0x41')]){_0x4907c6[_0x48a1('0x42')]=[{'all':!![]}];}return db[_0x48a1('0x40')][_0x48a1('0x43')](_0x4907c6);})[_0x48a1('0x28')](function(_0x48ad25){_0x75ee03[_0x48a1('0x44')]=_0x48ad25;return _0x75ee03;})[_0x48a1('0x28')](respondWithFilteredResult(_0x2689bb,_0x4907c6))[_0x48a1('0x45')](handleError(_0x2689bb,null));};exports[_0x48a1('0x46')]=function(_0xc36315,_0x3ab61e){var _0x444607={'raw':!![],'where':{'id':_0xc36315[_0x48a1('0x47')]['id']}},_0x13dc67={};_0x13dc67[_0x48a1('0x37')]=_[_0x48a1('0x33')](db['Plugin'][_0x48a1('0x30')]);_0x13dc67[_0x48a1('0x34')]=_['keys'](_0xc36315[_0x48a1('0x34')]);_0x13dc67[_0x48a1('0x35')]=_['intersection'](_0x13dc67[_0x48a1('0x37')],_0x13dc67[_0x48a1('0x34')]);_0x444607[_0x48a1('0x38')]=_[_0x48a1('0x36')](_0x13dc67[_0x48a1('0x37')],qs[_0x48a1('0x39')](_0xc36315['query'][_0x48a1('0x39')]));_0x444607[_0x48a1('0x38')]=_0x444607['attributes'][_0x48a1('0x48')]?_0x444607[_0x48a1('0x38')]:_0x13dc67['model'];if(_0xc36315[_0x48a1('0x34')][_0x48a1('0x41')]){_0x444607[_0x48a1('0x42')]=[{'all':!![]}];}_0x444607=_[_0x48a1('0x3e')]({},_0x444607,_0xc36315[_0x48a1('0x3f')]);return db[_0x48a1('0x40')][_0x48a1('0x49')](_0x444607)['then'](handleEntityNotFound(_0x3ab61e,null))[_0x48a1('0x28')](respondWithResult(_0x3ab61e,null))[_0x48a1('0x45')](handleError(_0x3ab61e,null));};exports['download']=function(_0xb98e15,_0x4d1de3,_0x502538){return db[_0x48a1('0x40')][_0x48a1('0x49')]({'where':{'id':_0xb98e15[_0x48a1('0x47')]['id']},'attributes':['name','path'],'raw':!![]})[_0x48a1('0x28')](handleEntityNotFound(_0x4d1de3,null))[_0x48a1('0x28')](function(_0x35803d){if(_0x35803d){var _0x453f5f=path['join'](config[_0x48a1('0x4a')],_0x48a1('0x4b'),util[_0x48a1('0x4c')](_0x48a1('0x4d'),path[_0x48a1('0x4e')](_0x35803d['path'])));var _0x1046a7=fs[_0x48a1('0x4f')](_0x453f5f);var _0x45dcf=archiver(_0x48a1('0x50'),{'zlib':{'level':0x9}});_0x45dcf['on'](_0x48a1('0x51'),function(_0x528f2c){if(_0x528f2c['code']===_0x48a1('0x52')){logger['error'](_0x528f2c);}else{throw new db[(_0x48a1('0x53'))][(_0x48a1('0x54'))]('Error\x20while\x20generating\x20the\x20zip\x20archive');}});_0x45dcf['on']('error',function(_0x4a86db){throw new db[(_0x48a1('0x53'))][(_0x48a1('0x54'))](_0x48a1('0x55'));});_0x45dcf[_0x48a1('0x56')](_0x1046a7);_0x45dcf[_0x48a1('0x57')]('**/*',{'cwd':path['join'](config[_0x48a1('0x4a')],_0x48a1('0x4b'),path[_0x48a1('0x58')](_0x35803d[_0x48a1('0x5')])),'ignore':[path['join'](path['basename'](_0x35803d[_0x48a1('0x5')]),_0x48a1('0x59')),path[_0x48a1('0x5a')](path[_0x48a1('0x4e')](_0x35803d['path']),'attachments/**/*')],'nodir':!![]})['finalize']();_0x1046a7['on'](_0x48a1('0x5b'),function(){if(!fs[_0x48a1('0x5c')](_0x453f5f)){throw new db[(_0x48a1('0x53'))][(_0x48a1('0x54'))](_0x48a1('0x5d'));}return _0x4d1de3[_0x48a1('0x5e')](_0x453f5f,util['format'](_0x48a1('0x4d'),path[_0x48a1('0x4e')](_0x35803d['path'])),function(_0xbacc3f){if(_0xbacc3f){throw new db[(_0x48a1('0x53'))][(_0x48a1('0x54'))](_0x48a1('0x5f'));}fs[_0x48a1('0x60')](_0x453f5f);logger[_0x48a1('0x61')](_0x48a1('0x62'));logger[_0x48a1('0x61')](_0x48a1('0x63'));});});}return null;})[_0x48a1('0x45')](handleError(_0x4d1de3,null));};exports[_0x48a1('0x64')]=function(_0x1f2e63,_0x41fd74,_0x2acf20){var _0x337e1a=path['basename'](_0x1f2e63['file']['filename'],path[_0x48a1('0x65')](_0x1f2e63[_0x48a1('0x66')][_0x48a1('0x67')]));var _0x162f14=path[_0x48a1('0x5a')](config[_0x48a1('0x4a')],'server/files/plugins',_0x1f2e63[_0x48a1('0x66')][_0x48a1('0x67')]);var _0x5818b0=path[_0x48a1('0x5a')](config[_0x48a1('0x4a')],_0x48a1('0x4b'),_0x337e1a);logger[_0x48a1('0x61')](_0x48a1('0x68'),_0x162f14);logger[_0x48a1('0x61')]('Plugin\x20upload\x20destination:\x20%s',_0x5818b0);try{fs[_0x48a1('0x69')](_0x162f14,parseInt(_0x48a1('0x6a'),0x8));extract(_0x162f14,{'dir':_0x5818b0},function(_0x448f60){if(_0x448f60){logger[_0x48a1('0x6b')](_0x448f60);handleError(_0x448f60,!![]);};var _0x411961=fs[_0x48a1('0x6c')](_0x5818b0);if(_0x411961[_0x48a1('0x48')]>0x1){removeReferences(_0x162f14,_0x5818b0);logger[_0x48a1('0x6b')](_0x48a1('0x6d'));return _0x2acf20(new Error('Invalid\x20plugin\x20structure'));}var _0x4d59d1=fs[_0x48a1('0x6e')](path[_0x48a1('0x5a')](_0x5818b0,_0x411961[0x0]));if(_0x4d59d1[_0x48a1('0x6f')]()){removeReferences(_0x162f14,_0x5818b0);logger['error']('Invalid\x20plugin\x20structure');return _0x2acf20(new Error('Invalid\x20plugin\x20structure'));}if(_0x4d59d1[_0x48a1('0x70')]()){var _0x142af1=fs[_0x48a1('0x6c')](path[_0x48a1('0x5a')](_0x5818b0,_0x411961[0x0]));if(_0x142af1[_0x48a1('0x48')]===0x0){removeReferences(_0x162f14,_0x5818b0);logger[_0x48a1('0x6b')]('Invalid\x20plugin\x20structure');return _0x2acf20(new Error(_0x48a1('0x6d')));}var _0x52f1ee=_0x142af1[_0x48a1('0x71')](function(_0x59a639){return _0x59a639===_0x48a1('0x72');});if(!_0x52f1ee){return _0x2acf20(new Error(_0x48a1('0x73')));}var _0x13f226=fs[_0x48a1('0x74')](path[_0x48a1('0x5a')](_0x5818b0,_0x411961[0x0],_0x48a1('0x72')));var _0x350a31=JSON[_0x48a1('0x75')](_0x13f226);if(_0x48a1('0x20')==typeof _0x350a31[_0x48a1('0x2d')]){return _0x2acf20(new Error(_0x48a1('0x76')));}if(_0x48a1('0x20')==typeof _0x350a31[_0x48a1('0x77')]){return _0x2acf20(new Error(_0x48a1('0x78')));}if(_0x48a1('0x20')==typeof _0x350a31['version']){return _0x2acf20(new Error('Invalid\x20manifest:\x20version\x20not\x20specified'));}if(_0x48a1('0x20')==typeof _0x350a31['parameters']){return _0x2acf20(new Error(_0x48a1('0x79')));}if(_0x350a31['type']===_0x48a1('0x7a')){if('undefined'==typeof _0x350a31['parameters']['views']){return _0x2acf20(new Error('Invalid\x20manifest:\x20views\x20missing'));}if(_0x48a1('0x20')==typeof _0x350a31[_0x48a1('0x7b')][_0x48a1('0x7c')][_0x48a1('0x7d')]&&_0x48a1('0x20')==typeof _0x350a31['parameters'][_0x48a1('0x7c')][_0x48a1('0x7e')]){return _0x2acf20(new Error(_0x48a1('0x7f')));}}else if(_0x350a31[_0x48a1('0x77')]===_0x48a1('0x80')){if(_0x48a1('0x20')==typeof _0x350a31[_0x48a1('0x7b')][_0x48a1('0x81')]){return _0x2acf20(new Error(_0x48a1('0x82')));}if(_0x48a1('0x20')==typeof _0x350a31[_0x48a1('0x7b')][_0x48a1('0x83')]){return _0x2acf20(new Error(_0x48a1('0x84')));}}else{return _0x2acf20(new Error(_0x48a1('0x85')));}var _0x22b632=_0x350a31[_0x48a1('0x2d')];var _0x6952c8=_0x350a31['description'];var _0x256299=_0x350a31['type'];var _0x32c767=_0x350a31[_0x48a1('0x86')]?_0x350a31[_0x48a1('0x86')]:_0x48a1('0x87');var _0x257323=_0x350a31['icon']?_0x350a31[_0x48a1('0x88')]:_0x48a1('0x89');var _0x1a2db7='';var _0x5e8614='';var _0x435c93='';var _0xc1bce8='';var _0x499903=_0x350a31[_0x48a1('0x8a')];if(_0x256299===_0x48a1('0x7a')){if(_0x48a1('0x20')!=typeof _0x350a31['parameters'][_0x48a1('0x7c')]['admin']){var _0x65f05b=_0x350a31[_0x48a1('0x7b')][_0x48a1('0x7c')][_0x48a1('0x7d')];if(!/^(f|ht)tps?:\/\//i[_0x48a1('0x8b')](_0x65f05b)){_0x1a2db7=path[_0x48a1('0x5a')](_0x48a1('0x8c'),_0x337e1a,_0x411961[0x0],_0x65f05b);}else{_0x1a2db7=_0x65f05b;}}else{logger[_0x48a1('0x61')](_0x48a1('0x8d'));}if(_0x48a1('0x20')!=typeof _0x350a31[_0x48a1('0x7b')]['views']['agent']){var _0x53dd90=_0x350a31[_0x48a1('0x7b')][_0x48a1('0x7c')][_0x48a1('0x7e')];if(!/^(f|ht)tps?:\/\//i[_0x48a1('0x8b')](_0x53dd90)){_0x5e8614=path[_0x48a1('0x5a')](_0x48a1('0x8c'),_0x337e1a,_0x411961[0x0],_0x53dd90);}else{_0x5e8614=_0x53dd90;}}else{logger[_0x48a1('0x61')](_0x48a1('0x8e'));}}else if(_0x256299===_0x48a1('0x80')){_0x435c93=_0x350a31[_0x48a1('0x7b')]['scriptName'];_0xc1bce8=_0x350a31['parameters']['scriptPath'];if(_0x48a1('0x20')!=typeof _0x350a31[_0x48a1('0x7b')]['views']){if(_0x48a1('0x20')!=typeof _0x350a31[_0x48a1('0x7b')][_0x48a1('0x7c')]['admin']){var _0x65f05b=_0x350a31[_0x48a1('0x7b')][_0x48a1('0x7c')]['admin'];if(!/^(f|ht)tps?:\/\//i['test'](_0x65f05b)){_0x1a2db7=path[_0x48a1('0x5a')]('plugins',_0x337e1a,_0x411961[0x0],_0x65f05b);}else{_0x1a2db7=_0x65f05b;}}if('undefined'!=typeof _0x350a31[_0x48a1('0x7b')]['views'][_0x48a1('0x7e')]){var _0x53dd90=_0x350a31[_0x48a1('0x7b')][_0x48a1('0x7c')][_0x48a1('0x7e')];if(!/^(f|ht)tps?:\/\//i['test'](_0x53dd90)){_0x5e8614=path['join']('plugins',_0x337e1a,_0x411961[0x0],_0x53dd90);}else{_0x5e8614=_0x53dd90;}}}}var _0x4b387f={'name':_0x22b632,'description':_0x6952c8,'path':path[_0x48a1('0x5a')](_0x337e1a,_0x411961[0x0]),'type':_0x256299,'sidebar':_0x32c767,'icon':_0x257323,'adminUrl':_0x1a2db7,'agentUrl':_0x5e8614,'scriptName':_0x435c93,'scriptPath':_0xc1bce8,'version':_0x499903};removeReferences(_0x162f14,null);return db[_0x48a1('0x40')]['create'](_0x4b387f)[_0x48a1('0x28')](function(_0x31db5a){var _0x124be1={'role':_0x1f2e63[_0x48a1('0x8f')][_0x48a1('0x90')],'userProfileId':_0x1f2e63[_0x48a1('0x8f')][_0x48a1('0x91')]};if(!_0x124be1)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x124be1['role']==='user'){var _0x255318=_0x31db5a['get']({'plain':!![]});return db[_0x48a1('0x92')]['find']({'where':{'name':_0x48a1('0x2a'),'userProfileId':_0x124be1['userProfileId']},'raw':!![]})['then'](function(_0x1ab9dd){if(_0x1ab9dd&&_0x1ab9dd[_0x48a1('0x93')]===0x0){return db['UserProfileResource'][_0x48a1('0x94')]({'name':_0x255318[_0x48a1('0x2d')],'resourceId':_0x255318['id'],'type':_0x1ab9dd[_0x48a1('0x2d')],'sectionId':_0x1ab9dd['id']},{})[_0x48a1('0x28')](function(){return _0x31db5a;});}else{return _0x31db5a;}})[_0x48a1('0x45')](function(_0x3ebf95){logger[_0x48a1('0x6b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3ebf95);throw _0x3ebf95;});}return _0x31db5a;})[_0x48a1('0x28')](respondWithResult(_0x41fd74,null))[_0x48a1('0x45')](handleError(_0x41fd74,null));}});}catch(_0x2e8690){_0x41fd74['status'](0x1f4)['send'](_0x2e8690);}};function removeReferences(_0x379b68,_0x2165d2){try{if(_0x379b68){fs['unlinkSync'](_0x379b68);logger[_0x48a1('0x61')](_0x48a1('0x95'));}if(_0x2165d2){rimraf(_0x2165d2,function(){});logger[_0x48a1('0x61')](_0x48a1('0x96'));}}catch(_0x192b18){logger[_0x48a1('0x6b')](_0x192b18);}}exports['update']=function(_0x2b5245,_0x438cd0,_0xb05904){return db[_0x48a1('0x40')]['find']({'where':{'id':_0x2b5245[_0x48a1('0x47')]['id']}})['then'](handleEntityNotFound(_0x438cd0,null))['then'](saveUpdates(_0x2b5245[_0x48a1('0x8f')],null))['then'](respondWithResult(_0x438cd0,null))[_0x48a1('0x45')](handleError(_0x438cd0,null));};exports[_0x48a1('0x97')]=function(_0x14fd22,_0x6baa1a,_0x3cfabc){return db[_0x48a1('0x40')][_0x48a1('0x49')]({'where':{'id':_0x14fd22[_0x48a1('0x47')]['id']}})[_0x48a1('0x28')](function(_0x1ea8f4){if(_0x1ea8f4){return _0x1ea8f4[_0x48a1('0x29')]();}})[_0x48a1('0x28')](function(_0xd565fe){rimraf(path[_0x48a1('0x5a')](config[_0x48a1('0x4a')],_0x48a1('0x4b'),path[_0x48a1('0x58')](_0xd565fe[_0x48a1('0x5')])),function(){});return _0xd565fe;})[_0x48a1('0x28')](handleEntityNotFound(_0x6baa1a,null))[_0x48a1('0x28')](respondWithStatusCode(_0x6baa1a,null))[_0x48a1('0x45')](handleError(_0x6baa1a,null));};exports[_0x48a1('0x98')]=function(_0x198601,_0x4253fe,_0x5a2477){return BPromise[_0x48a1('0x99')]()['then'](function(){if(!_0x198601[_0x48a1('0x34')]['path']){throw new Error(_0x48a1('0x9a'));}if(!_0x198601[_0x48a1('0x34')]['port']){throw new Error(_0x48a1('0x9b'));}var _0x2d594e=_0x198601['query'][_0x48a1('0x9c')]?_0x198601[_0x48a1('0x34')][_0x48a1('0x9c')]+':'+_0x198601[_0x48a1('0x34')][_0x48a1('0x9d')]:_0x48a1('0x9e')+_0x198601['query']['port'];var _0x255b6a=_0x198601[_0x48a1('0x34')][_0x48a1('0x1d')]?_0x198601[_0x48a1('0x34')][_0x48a1('0x1d')]:!![];var _0x2f45bf=_0x198601['query'][_0x48a1('0x9f')]?_0x198601[_0x48a1('0x34')]['encoding']:null;var _0x41fbed={'method':_0x198601[_0x48a1('0xa0')],'uri':util[_0x48a1('0x4c')](_0x48a1('0xa1'),_0x2d594e,_0x198601[_0x48a1('0x34')][_0x48a1('0x5')]),'json':_0x255b6a,'resolveWithFullResponse':!![],'encoding':_0x2f45bf,'qs':_0x198601[_0x48a1('0x34')]};if(_0x198601['headers']){_0x41fbed[_0x48a1('0xa2')]=_0x198601[_0x48a1('0xa2')];if(_0x41fbed[_0x48a1('0xa2')]['content-length']){delete _0x41fbed[_0x48a1('0xa2')][_0x48a1('0xa3')];}}if(_0x41fbed['headers'][_0x48a1('0xa4')]){delete _0x41fbed['headers']['content-type'];}return rp(_0x41fbed);})[_0x48a1('0x28')](function(_0x5ecf7f){if(_0x5ecf7f){_0x4253fe['set'](_0x5ecf7f[_0x48a1('0xa2')]);logger[_0x48a1('0x61')](_0x5ecf7f[_0x48a1('0x8f')]);if(_[_0x48a1('0xa5')](_0x198601['query'][_0x48a1('0x5')],_0x48a1('0x5e'))&&_0x5ecf7f[_0x48a1('0xa6')]==0x1f4){return _0x4253fe[_0x48a1('0xa7')](_0x5ecf7f[_0x48a1('0xa6')]);}else{return _0x4253fe[_0x48a1('0x22')](_0x5ecf7f['statusCode'])['send'](_0x5ecf7f[_0x48a1('0x8f')]);}}else{return _0x4253fe['sendStatus'](0xc8);}})[_0x48a1('0x45')](handleError(_0x4253fe,null));};exports[_0x48a1('0xa8')]=function(_0x2765aa,_0x31f716,_0x5dd2b7){return BPromise['resolve']()[_0x48a1('0x28')](function(){if(!_0x2765aa[_0x48a1('0x34')][_0x48a1('0x5')]){throw new Error(_0x48a1('0x9a'));}if(!_0x2765aa[_0x48a1('0x34')][_0x48a1('0x9d')]){throw new Error(_0x48a1('0x9b'));}var _0x22b0f0=_0x2765aa[_0x48a1('0x34')][_0x48a1('0x9c')]?_0x2765aa['query'][_0x48a1('0x9c')]+':'+_0x2765aa[_0x48a1('0x34')][_0x48a1('0x9d')]:_0x48a1('0x9e')+_0x2765aa[_0x48a1('0x34')][_0x48a1('0x9d')];var _0x40a89b=_0x2765aa[_0x48a1('0x34')]['json']?_0x2765aa[_0x48a1('0x34')]['json']:!![];var _0x54e93c=_0x2765aa[_0x48a1('0x34')][_0x48a1('0x9f')]?_0x2765aa['query']['encoding']:null;var _0x5947c8={'method':_0x2765aa[_0x48a1('0xa0')],'uri':util['format'](_0x48a1('0xa1'),_0x22b0f0,_0x2765aa[_0x48a1('0x34')]['path']),'json':_0x40a89b,'resolveWithFullResponse':!![],'encoding':_0x54e93c,'body':_0x2765aa[_0x48a1('0x8f')]};if(_0x2765aa['headers']){_0x5947c8['headers']=_0x2765aa[_0x48a1('0xa2')];if(_0x5947c8['headers'][_0x48a1('0xa3')]){delete _0x5947c8['headers'][_0x48a1('0xa3')];}}if(_0x5947c8[_0x48a1('0xa2')][_0x48a1('0xa4')]){delete _0x5947c8[_0x48a1('0xa2')][_0x48a1('0xa4')];}return rp(_0x5947c8);})['then'](function(_0x1f940d){if(_0x1f940d){_0x31f716['set'](_0x1f940d['headers']);logger[_0x48a1('0x61')](_0x1f940d[_0x48a1('0x8f')]);return _0x31f716[_0x48a1('0x22')](_0x1f940d[_0x48a1('0xa6')])[_0x48a1('0x2e')](_0x1f940d[_0x48a1('0x8f')]);}else{return _0x31f716[_0x48a1('0xa7')](0xc8);}})[_0x48a1('0x45')](handleError(_0x31f716,null));};