76408ddda07ec61a2eb231d31422d24653ef0d8b
[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 _0x600b=['Error','Sequelize','**/*','node_modules/**/*','attachments/**/*','close','existsSync','Error\x20while\x20downloading\x20the\x20plugin','info','Download\x20completed','Temporary\x20file\x20removed','upload','filename','extname','file','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isDirectory','Plugin\x20manifest\x20missing','readFileSync','manifest.json','parse','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','html','views','Invalid\x20manifest:\x20views\x20missing','admin','Invalid\x20manifest:\x20no\x20view\x20specified','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','icon','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','agent','Warning:\x20agent\x20view\x20not\x20specified','script','role','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','find','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','unlinkSync','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','dirname','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','hostname','http://localhost:','encoding','method','%s%s','headers','content-length','content-type','statusCode','webhookPost','\x27PORT\x27\x20parameter\x20not\x20specified','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','papaparse','extract-zip','archiver','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','then','destroy','get','Plugins','UserProfileResource','error','stack','name','send','index','map','Plugin','rawAttributes','type','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','where','VIRTUAL','filter','options','includeAll','include','rows','catch','show','params','download','join','root','server/files/plugins','format','%s.zip','basename','zip','warning','code','ENOENT'];(function(_0x1871bb,_0xb8d5fb){var _0x53be8f=function(_0x388c9e){while(--_0x388c9e){_0x1871bb['push'](_0x1871bb['shift']());}};_0x53be8f(++_0xb8d5fb);}(_0x600b,0x1a5));var _0xb600=function(_0x5817e6,_0x44a2d0){_0x5817e6=_0x5817e6-0x0;var _0x51916a=_0x600b[_0x5817e6];return _0x51916a;};'use strict';var emlformat=require(_0xb600('0x0'));var rimraf=require(_0xb600('0x1'));var zipdir=require(_0xb600('0x2'));var jsonpatch=require(_0xb600('0x3'));var rp=require(_0xb600('0x4'));var moment=require(_0xb600('0x5'));var BPromise=require(_0xb600('0x6'));var Mustache=require(_0xb600('0x7'));var util=require(_0xb600('0x8'));var path=require(_0xb600('0x9'));var sox=require(_0xb600('0xa'));var csv=require(_0xb600('0xb'));var ejs=require(_0xb600('0xc'));var fs=require('fs');var fs_extra=require(_0xb600('0xd'));var _=require('lodash');var squel=require(_0xb600('0xe'));var crypto=require('crypto');var jsforce=require(_0xb600('0xf'));var deskjs=require(_0xb600('0x10'));var toCsv=require(_0xb600('0xb'));var querystring=require(_0xb600('0x11'));var Papa=require(_0xb600('0x12'));var extract=require(_0xb600('0x13'));var rimraf=require('rimraf');var archiver=require(_0xb600('0x14'));var Redis=require('ioredis');var authService=require(_0xb600('0x15'));var qs=require(_0xb600('0x16'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb600('0x17'));var logger=require(_0xb600('0x18'))(_0xb600('0x19'));var utils=require(_0xb600('0x1a'));var config=require(_0xb600('0x1b'));var licenseUtil=require(_0xb600('0x1c'));var db=require(_0xb600('0x1d'))['db'];config[_0xb600('0x1e')]=_[_0xb600('0x1f')](config['redis'],{'host':_0xb600('0x20'),'port':0x18eb});var socket=require(_0xb600('0x21'))(new Redis(config[_0xb600('0x1e')]));require(_0xb600('0x22'))[_0xb600('0x23')](socket);function respondWithStatusCode(_0x2ec44d,_0x4cc0e0){_0x4cc0e0=_0x4cc0e0||0xcc;return function(_0x27667b){if(_0x27667b){return _0x2ec44d[_0xb600('0x24')](_0x4cc0e0);}return _0x2ec44d['status'](_0x4cc0e0)[_0xb600('0x25')]();};}function respondWithResult(_0x29675a,_0x21252f){_0x21252f=_0x21252f||0xc8;return function(_0x5592c9){if(_0x5592c9){return _0x29675a[_0xb600('0x26')](_0x21252f)[_0xb600('0x27')](_0x5592c9);}};}function respondWithFilteredResult(_0x298079,_0x2b8a4d){return function(_0x41ec69){if(_0x41ec69){var _0x149502=typeof _0x2b8a4d['offset']===_0xb600('0x28')&&typeof _0x2b8a4d[_0xb600('0x29')]===_0xb600('0x28');var _0x55fe7c=_0x41ec69[_0xb600('0x2a')];var _0x884751=_0x149502?0x0:_0x2b8a4d[_0xb600('0x2b')];var _0x169cfe=_0x149502?_0x41ec69[_0xb600('0x2a')]:_0x2b8a4d[_0xb600('0x2b')]+_0x2b8a4d['limit'];var _0x2cbe1a;if(_0x169cfe>=_0x55fe7c){_0x169cfe=_0x55fe7c;_0x2cbe1a=0xc8;}else{_0x2cbe1a=0xce;}_0x298079['status'](_0x2cbe1a);return _0x298079[_0xb600('0x2c')](_0xb600('0x2d'),_0x884751+'-'+_0x169cfe+'/'+_0x55fe7c)[_0xb600('0x27')](_0x41ec69);}return null;};}function patchUpdates(_0x596892){return function(_0x4e68b8){try{jsonpatch[_0xb600('0x2e')](_0x4e68b8,_0x596892,!![]);}catch(_0x414ce8){return BPromise[_0xb600('0x2f')](_0x414ce8);}return _0x4e68b8[_0xb600('0x30')]();};}function saveUpdates(_0x100d65,_0x2a7a66){return function(_0x2e12aa){if(_0x2e12aa){return _0x2e12aa['update'](_0x100d65)[_0xb600('0x31')](function(_0x1fb097){return _0x1fb097;});}return null;};}function removeEntity(_0x392bde,_0x554687){return function(_0x1f7e22){if(_0x1f7e22){return _0x1f7e22[_0xb600('0x32')]()['then'](function(){var _0x26e5fa=_0x1f7e22[_0xb600('0x33')]({'plain':!![]});var _0x47d7de=_0xb600('0x34');return db[_0xb600('0x35')][_0xb600('0x32')]({'where':{'type':_0x47d7de,'resourceId':_0x26e5fa['id']}})['then'](function(){return _0x1f7e22;});})[_0xb600('0x31')](function(){_0x392bde[_0xb600('0x26')](0xcc)[_0xb600('0x25')]();});}};}function handleEntityNotFound(_0x219963,_0x614371){return function(_0x5f57f6){if(!_0x5f57f6){_0x219963[_0xb600('0x24')](0x194);}return _0x5f57f6;};}function handleError(_0x2d5fa7,_0x414587){_0x414587=_0x414587||0x1f4;return function(_0x59f153){logger[_0xb600('0x36')](_0x59f153[_0xb600('0x37')]);if(_0x59f153[_0xb600('0x38')]){delete _0x59f153[_0xb600('0x38')];}_0x2d5fa7['status'](_0x414587)[_0xb600('0x39')](_0x59f153);};}exports[_0xb600('0x3a')]=function(_0x777030,_0x5a091f){var _0x39650a={},_0x5c1682={},_0x537815={'count':0x0,'rows':[]};var _0x230d26=_[_0xb600('0x3b')](db[_0xb600('0x3c')][_0xb600('0x3d')],function(_0x4d26b6){return{'name':_0x4d26b6['fieldName'],'type':_0x4d26b6[_0xb600('0x3e')][_0xb600('0x3f')]};});_0x5c1682['model']=_[_0xb600('0x3b')](_0x230d26,_0xb600('0x38'));_0x5c1682['query']=_[_0xb600('0x40')](_0x777030[_0xb600('0x41')]);_0x5c1682[_0xb600('0x42')]=_[_0xb600('0x43')](_0x5c1682[_0xb600('0x44')],_0x5c1682[_0xb600('0x41')]);_0x39650a[_0xb600('0x45')]=_[_0xb600('0x43')](_0x5c1682['model'],qs[_0xb600('0x46')](_0x777030[_0xb600('0x41')][_0xb600('0x46')]));_0x39650a['attributes']=_0x39650a['attributes'][_0xb600('0x47')]?_0x39650a['attributes']:_0x5c1682[_0xb600('0x44')];if(!_0x777030[_0xb600('0x41')][_0xb600('0x48')]('nolimit')){_0x39650a[_0xb600('0x29')]=qs['limit'](_0x777030[_0xb600('0x41')][_0xb600('0x29')]);_0x39650a[_0xb600('0x2b')]=qs[_0xb600('0x2b')](_0x777030[_0xb600('0x41')][_0xb600('0x2b')]);}_0x39650a[_0xb600('0x49')]=qs['sort'](_0x777030[_0xb600('0x41')]['sort']);_0x39650a[_0xb600('0x4a')]=qs[_0xb600('0x42')](_['pick'](_0x777030[_0xb600('0x41')],_0x5c1682[_0xb600('0x42')]),_0x230d26);if(_0x777030[_0xb600('0x41')]['filter']){_0x39650a[_0xb600('0x4a')]=_['merge'](_0x39650a[_0xb600('0x4a')],{'$or':_[_0xb600('0x3b')](_0x230d26,function(_0x36bb8f){if(_0x36bb8f['type']!==_0xb600('0x4b')){var _0x5cf306={};_0x5cf306[_0x36bb8f[_0xb600('0x38')]]={'$like':'%'+_0x777030['query'][_0xb600('0x4c')]+'%'};return _0x5cf306;}})});}_0x39650a=_['merge']({},_0x39650a,_0x777030[_0xb600('0x4d')]);var _0x38fa10={'where':_0x39650a[_0xb600('0x4a')]};return db['Plugin']['count'](_0x38fa10)['then'](function(_0x23f198){_0x537815[_0xb600('0x2a')]=_0x23f198;if(_0x777030[_0xb600('0x41')][_0xb600('0x4e')]){_0x39650a[_0xb600('0x4f')]=[{'all':!![]}];}return db[_0xb600('0x3c')]['findAll'](_0x39650a);})[_0xb600('0x31')](function(_0x3ba7e6){_0x537815[_0xb600('0x50')]=_0x3ba7e6;return _0x537815;})[_0xb600('0x31')](respondWithFilteredResult(_0x5a091f,_0x39650a))[_0xb600('0x51')](handleError(_0x5a091f,null));};exports[_0xb600('0x52')]=function(_0x5566a9,_0x5cc3c4){var _0x5d22e9={'raw':!![],'where':{'id':_0x5566a9[_0xb600('0x53')]['id']}},_0x42415d={};_0x42415d[_0xb600('0x44')]=_[_0xb600('0x40')](db[_0xb600('0x3c')][_0xb600('0x3d')]);_0x42415d['query']=_['keys'](_0x5566a9[_0xb600('0x41')]);_0x42415d[_0xb600('0x42')]=_[_0xb600('0x43')](_0x42415d[_0xb600('0x44')],_0x42415d[_0xb600('0x41')]);_0x5d22e9[_0xb600('0x45')]=_[_0xb600('0x43')](_0x42415d[_0xb600('0x44')],qs[_0xb600('0x46')](_0x5566a9['query'][_0xb600('0x46')]));_0x5d22e9[_0xb600('0x45')]=_0x5d22e9[_0xb600('0x45')][_0xb600('0x47')]?_0x5d22e9['attributes']:_0x42415d[_0xb600('0x44')];if(_0x5566a9['query'][_0xb600('0x4e')]){_0x5d22e9[_0xb600('0x4f')]=[{'all':!![]}];}_0x5d22e9=_['merge']({},_0x5d22e9,_0x5566a9[_0xb600('0x4d')]);return db[_0xb600('0x3c')]['find'](_0x5d22e9)['then'](handleEntityNotFound(_0x5cc3c4,null))['then'](respondWithResult(_0x5cc3c4,null))[_0xb600('0x51')](handleError(_0x5cc3c4,null));};exports[_0xb600('0x54')]=function(_0x3c8c24,_0x31549a,_0x1f93a0){return db['Plugin']['find']({'where':{'id':_0x3c8c24['params']['id']},'attributes':['name','path'],'raw':!![]})[_0xb600('0x31')](handleEntityNotFound(_0x31549a,null))[_0xb600('0x31')](function(_0x584137){if(_0x584137){var _0x1b8acd=path[_0xb600('0x55')](config[_0xb600('0x56')],_0xb600('0x57'),util[_0xb600('0x58')](_0xb600('0x59'),path[_0xb600('0x5a')](_0x584137[_0xb600('0x9')])));var _0xacadc9=fs['createWriteStream'](_0x1b8acd);var _0x57d631=archiver(_0xb600('0x5b'),{'zlib':{'level':0x9}});_0x57d631['on'](_0xb600('0x5c'),function(_0x5b9501){if(_0x5b9501[_0xb600('0x5d')]===_0xb600('0x5e')){logger['error'](_0x5b9501);}else{throw new db['Sequelize'][(_0xb600('0x5f'))]('Error\x20while\x20generating\x20the\x20zip\x20archive');}});_0x57d631['on'](_0xb600('0x36'),function(_0x20ba72){throw new db[(_0xb600('0x60'))][(_0xb600('0x5f'))]('Error\x20while\x20generating\x20the\x20zip\x20archive');});_0x57d631['pipe'](_0xacadc9);_0x57d631['glob'](_0xb600('0x61'),{'cwd':path[_0xb600('0x55')](config[_0xb600('0x56')],_0xb600('0x57'),path['dirname'](_0x584137[_0xb600('0x9')])),'ignore':[path['join'](path[_0xb600('0x5a')](_0x584137[_0xb600('0x9')]),_0xb600('0x62')),path[_0xb600('0x55')](path[_0xb600('0x5a')](_0x584137[_0xb600('0x9')]),_0xb600('0x63'))],'nodir':!![]})['finalize']();_0xacadc9['on'](_0xb600('0x64'),function(){if(!fs[_0xb600('0x65')](_0x1b8acd)){throw new db[(_0xb600('0x60'))]['Error']('Plugin\x20not\x20found');}return _0x31549a[_0xb600('0x54')](_0x1b8acd,util[_0xb600('0x58')](_0xb600('0x59'),path[_0xb600('0x5a')](_0x584137[_0xb600('0x9')])),function(_0x12a0ae){if(_0x12a0ae){throw new db[(_0xb600('0x60'))][(_0xb600('0x5f'))](_0xb600('0x66'));}fs['unlinkSync'](_0x1b8acd);logger[_0xb600('0x67')](_0xb600('0x68'));logger[_0xb600('0x67')](_0xb600('0x69'));});});}return null;})['catch'](handleError(_0x31549a,null));};exports[_0xb600('0x6a')]=function(_0x160a67,_0x375ec1,_0x2210f3){var _0x252d90=path[_0xb600('0x5a')](_0x160a67['file'][_0xb600('0x6b')],path[_0xb600('0x6c')](_0x160a67[_0xb600('0x6d')][_0xb600('0x6b')]));var _0x3c734a=path[_0xb600('0x55')](config[_0xb600('0x56')],_0xb600('0x57'),_0x160a67['file']['filename']);var _0x24ec81=path[_0xb600('0x55')](config[_0xb600('0x56')],'server/files/plugins',_0x252d90);logger[_0xb600('0x67')](_0xb600('0x6e'),_0x3c734a);logger['info'](_0xb600('0x6f'),_0x24ec81);try{fs['chmodSync'](_0x3c734a,parseInt('0777',0x8));extract(_0x3c734a,{'dir':_0x24ec81},function(_0x2582fc){if(_0x2582fc){logger[_0xb600('0x36')](_0x2582fc);handleError(_0x2582fc,!![]);};var _0xb8227d=fs[_0xb600('0x70')](_0x24ec81);if(_0xb8227d[_0xb600('0x47')]>0x1){removeReferences(_0x3c734a,_0x24ec81);logger[_0xb600('0x36')]('Invalid\x20plugin\x20structure');return _0x2210f3(new Error(_0xb600('0x71')));}var _0x2b15f0=fs[_0xb600('0x72')](path[_0xb600('0x55')](_0x24ec81,_0xb8227d[0x0]));if(_0x2b15f0['isFile']()){removeReferences(_0x3c734a,_0x24ec81);logger[_0xb600('0x36')](_0xb600('0x71'));return _0x2210f3(new Error(_0xb600('0x71')));}if(_0x2b15f0[_0xb600('0x73')]()){var _0x35a3fc=fs[_0xb600('0x70')](path[_0xb600('0x55')](_0x24ec81,_0xb8227d[0x0]));if(_0x35a3fc[_0xb600('0x47')]===0x0){removeReferences(_0x3c734a,_0x24ec81);logger[_0xb600('0x36')](_0xb600('0x71'));return _0x2210f3(new Error(_0xb600('0x71')));}var _0x2ce175=_0x35a3fc['some'](function(_0x31d09e){return _0x31d09e==='manifest.json';});if(!_0x2ce175){return _0x2210f3(new Error(_0xb600('0x74')));}var _0x2fe8f2=fs[_0xb600('0x75')](path[_0xb600('0x55')](_0x24ec81,_0xb8227d[0x0],_0xb600('0x76')));var _0x4ad84b=JSON[_0xb600('0x77')](_0x2fe8f2);if(_0xb600('0x28')==typeof _0x4ad84b[_0xb600('0x38')]){return _0x2210f3(new Error(_0xb600('0x78')));}if(_0xb600('0x28')==typeof _0x4ad84b['type']){return _0x2210f3(new Error(_0xb600('0x79')));}if(_0xb600('0x28')==typeof _0x4ad84b[_0xb600('0x7a')]){return _0x2210f3(new Error(_0xb600('0x7b')));}if(_0xb600('0x28')==typeof _0x4ad84b[_0xb600('0x7c')]){return _0x2210f3(new Error('Invalid\x20manifest:\x20parameters\x20missing'));}if(_0x4ad84b[_0xb600('0x3e')]===_0xb600('0x7d')){if(_0xb600('0x28')==typeof _0x4ad84b[_0xb600('0x7c')][_0xb600('0x7e')]){return _0x2210f3(new Error(_0xb600('0x7f')));}if(_0xb600('0x28')==typeof _0x4ad84b[_0xb600('0x7c')]['views'][_0xb600('0x80')]&&_0xb600('0x28')==typeof _0x4ad84b[_0xb600('0x7c')]['views']['agent']){return _0x2210f3(new Error(_0xb600('0x81')));}}else if(_0x4ad84b[_0xb600('0x3e')]==='script'){if(_0xb600('0x28')==typeof _0x4ad84b[_0xb600('0x7c')][_0xb600('0x82')]){return _0x2210f3(new Error(_0xb600('0x83')));}if(_0xb600('0x28')==typeof _0x4ad84b['parameters'][_0xb600('0x84')]){return _0x2210f3(new Error('Invalid\x20manifest:\x20script\x20path\x20missing'));}}else{return _0x2210f3(new Error(_0xb600('0x85')));}var _0x38cbbf=_0x4ad84b[_0xb600('0x38')];var _0x13736a=_0x4ad84b[_0xb600('0x86')];var _0x31a732=_0x4ad84b[_0xb600('0x3e')];var _0x2a7e9e=_0x4ad84b[_0xb600('0x87')]?_0x4ad84b[_0xb600('0x87')]:'always';var _0x48fc41=_0x4ad84b[_0xb600('0x88')]?_0x4ad84b[_0xb600('0x88')]:'icon-apps';var _0x2b6ff0='';var _0x3082d9='';var _0x129040='';var _0x278c6d='';var _0x522929=_0x4ad84b[_0xb600('0x7a')];if(_0x31a732===_0xb600('0x7d')){if('undefined'!=typeof _0x4ad84b[_0xb600('0x7c')]['views'][_0xb600('0x80')]){var _0x171b46=_0x4ad84b[_0xb600('0x7c')]['views']['admin'];if(!/^(f|ht)tps?:\/\//i[_0xb600('0x89')](_0x171b46)){_0x2b6ff0=path[_0xb600('0x55')](_0xb600('0x8a'),_0x252d90,_0xb8227d[0x0],_0x171b46);}else{_0x2b6ff0=_0x171b46;}}else{logger['info'](_0xb600('0x8b'));}if(_0xb600('0x28')!=typeof _0x4ad84b[_0xb600('0x7c')]['views']['agent']){var _0x42b470=_0x4ad84b['parameters'][_0xb600('0x7e')][_0xb600('0x8c')];if(!/^(f|ht)tps?:\/\//i[_0xb600('0x89')](_0x42b470)){_0x3082d9=path[_0xb600('0x55')](_0xb600('0x8a'),_0x252d90,_0xb8227d[0x0],_0x42b470);}else{_0x3082d9=_0x42b470;}}else{logger['info'](_0xb600('0x8d'));}}else if(_0x31a732===_0xb600('0x8e')){_0x129040=_0x4ad84b['parameters'][_0xb600('0x82')];_0x278c6d=_0x4ad84b[_0xb600('0x7c')][_0xb600('0x84')];if(_0xb600('0x28')!=typeof _0x4ad84b[_0xb600('0x7c')]['views']){if(_0xb600('0x28')!=typeof _0x4ad84b[_0xb600('0x7c')]['views'][_0xb600('0x80')]){var _0x171b46=_0x4ad84b[_0xb600('0x7c')]['views'][_0xb600('0x80')];if(!/^(f|ht)tps?:\/\//i[_0xb600('0x89')](_0x171b46)){_0x2b6ff0=path[_0xb600('0x55')](_0xb600('0x8a'),_0x252d90,_0xb8227d[0x0],_0x171b46);}else{_0x2b6ff0=_0x171b46;}}if(_0xb600('0x28')!=typeof _0x4ad84b[_0xb600('0x7c')][_0xb600('0x7e')]['agent']){var _0x42b470=_0x4ad84b[_0xb600('0x7c')]['views'][_0xb600('0x8c')];if(!/^(f|ht)tps?:\/\//i[_0xb600('0x89')](_0x42b470)){_0x3082d9=path[_0xb600('0x55')](_0xb600('0x8a'),_0x252d90,_0xb8227d[0x0],_0x42b470);}else{_0x3082d9=_0x42b470;}}}}var _0x368d3a={'name':_0x38cbbf,'description':_0x13736a,'path':path[_0xb600('0x55')](_0x252d90,_0xb8227d[0x0]),'type':_0x31a732,'sidebar':_0x2a7e9e,'icon':_0x48fc41,'adminUrl':_0x2b6ff0,'agentUrl':_0x3082d9,'scriptName':_0x129040,'scriptPath':_0x278c6d,'version':_0x522929};removeReferences(_0x3c734a,null);return db[_0xb600('0x3c')]['create'](_0x368d3a)['then'](function(_0x53915f){var _0x512ccb={'role':_0x160a67['body'][_0xb600('0x8f')],'userProfileId':_0x160a67[_0xb600('0x90')][_0xb600('0x91')]};if(!_0x512ccb)throw new Error(_0xb600('0x92'));if(_0x512ccb['role']===_0xb600('0x93')){var _0x5dbfcd=_0x53915f['get']({'plain':!![]});return db[_0xb600('0x94')][_0xb600('0x95')]({'where':{'name':_0xb600('0x34'),'userProfileId':_0x512ccb[_0xb600('0x91')]},'raw':!![]})[_0xb600('0x31')](function(_0xa40c45){if(_0xa40c45&&_0xa40c45[_0xb600('0x96')]===0x0){return db[_0xb600('0x35')][_0xb600('0x97')]({'name':_0x5dbfcd[_0xb600('0x38')],'resourceId':_0x5dbfcd['id'],'type':_0xa40c45[_0xb600('0x38')],'sectionId':_0xa40c45['id']},{})['then'](function(){return _0x53915f;});}else{return _0x53915f;}})[_0xb600('0x51')](function(_0x391fa6){logger[_0xb600('0x36')](_0xb600('0x98'),_0x391fa6);throw _0x391fa6;});}return _0x53915f;})['then'](respondWithResult(_0x375ec1,null))[_0xb600('0x51')](handleError(_0x375ec1,null));}});}catch(_0x186faa){_0x375ec1['status'](0x1f4)[_0xb600('0x39')](_0x186faa);}};function removeReferences(_0x3545ef,_0x4b33ea){try{if(_0x3545ef){fs[_0xb600('0x99')](_0x3545ef);logger['info'](_0xb600('0x9a'));}if(_0x4b33ea){rimraf(_0x4b33ea,function(){});logger[_0xb600('0x67')](_0xb600('0x9b'));}}catch(_0x554d03){logger[_0xb600('0x36')](_0x554d03);}}exports['update']=function(_0x2ffe5c,_0x1e2296,_0x6ec2f3){return db[_0xb600('0x3c')][_0xb600('0x95')]({'where':{'id':_0x2ffe5c[_0xb600('0x53')]['id']}})['then'](handleEntityNotFound(_0x1e2296,null))[_0xb600('0x31')](saveUpdates(_0x2ffe5c[_0xb600('0x90')],null))['then'](respondWithResult(_0x1e2296,null))[_0xb600('0x51')](handleError(_0x1e2296,null));};exports['delete']=function(_0x4e7b82,_0x1024ff,_0x3513f9){return db[_0xb600('0x3c')][_0xb600('0x95')]({'where':{'id':_0x4e7b82[_0xb600('0x53')]['id']}})[_0xb600('0x31')](function(_0x3ad34d){if(_0x3ad34d){return _0x3ad34d['destroy']();}})['then'](function(_0x29027e){rimraf(path['join'](config['root'],_0xb600('0x57'),path[_0xb600('0x9c')](_0x29027e[_0xb600('0x9')])),function(){});return _0x29027e;})['then'](handleEntityNotFound(_0x1024ff,null))[_0xb600('0x31')](respondWithStatusCode(_0x1024ff,null))[_0xb600('0x51')](handleError(_0x1024ff,null));};exports[_0xb600('0x9d')]=function(_0xd3ced7,_0x829a70,_0x273709){return BPromise[_0xb600('0x9e')]()[_0xb600('0x31')](function(){if(!_0xd3ced7[_0xb600('0x41')][_0xb600('0x9')]){throw new Error(_0xb600('0x9f'));}if(!_0xd3ced7[_0xb600('0x41')][_0xb600('0xa0')]){throw new Error('\x27PORT\x27\x20parameter\x20not\x20specified');}var _0x3d1d77=_0xd3ced7[_0xb600('0x41')][_0xb600('0xa1')]?_0xd3ced7[_0xb600('0x41')][_0xb600('0xa1')]+':'+_0xd3ced7['query'][_0xb600('0xa0')]:_0xb600('0xa2')+_0xd3ced7['query'][_0xb600('0xa0')];var _0x4f23ac=_0xd3ced7['query'][_0xb600('0x27')]?_0xd3ced7[_0xb600('0x41')][_0xb600('0x27')]:!![];var _0x3b258d=_0xd3ced7[_0xb600('0x41')][_0xb600('0xa3')]?_0xd3ced7[_0xb600('0x41')][_0xb600('0xa3')]:null;var _0x527c99={'method':_0xd3ced7[_0xb600('0xa4')],'uri':util[_0xb600('0x58')](_0xb600('0xa5'),_0x3d1d77,_0xd3ced7['query'][_0xb600('0x9')]),'json':_0x4f23ac,'resolveWithFullResponse':!![],'encoding':_0x3b258d,'qs':_0xd3ced7[_0xb600('0x41')]};if(_0xd3ced7[_0xb600('0xa6')]){_0x527c99[_0xb600('0xa6')]=_0xd3ced7[_0xb600('0xa6')];if(_0x527c99[_0xb600('0xa6')]['content-length']){delete _0x527c99[_0xb600('0xa6')][_0xb600('0xa7')];}}if(_0x527c99[_0xb600('0xa6')][_0xb600('0xa8')]){delete _0x527c99[_0xb600('0xa6')]['content-type'];}return rp(_0x527c99);})[_0xb600('0x31')](function(_0x1ff1a9){if(_0x1ff1a9){_0x829a70[_0xb600('0x2c')](_0x1ff1a9[_0xb600('0xa6')]);logger[_0xb600('0x67')](_0x1ff1a9[_0xb600('0x90')]);if(_['endsWith'](_0xd3ced7['query'][_0xb600('0x9')],_0xb600('0x54'))&&_0x1ff1a9[_0xb600('0xa9')]==0x1f4){return _0x829a70[_0xb600('0x24')](_0x1ff1a9['statusCode']);}else{return _0x829a70['status'](_0x1ff1a9['statusCode'])['send'](_0x1ff1a9[_0xb600('0x90')]);}}else{return _0x829a70[_0xb600('0x24')](0xc8);}})['catch'](handleError(_0x829a70,null));};exports[_0xb600('0xaa')]=function(_0x5bd35c,_0x188dc1,_0x5d7c97){return BPromise[_0xb600('0x9e')]()[_0xb600('0x31')](function(){if(!_0x5bd35c[_0xb600('0x41')][_0xb600('0x9')]){throw new Error(_0xb600('0x9f'));}if(!_0x5bd35c[_0xb600('0x41')][_0xb600('0xa0')]){throw new Error(_0xb600('0xab'));}var _0xb3c09e=_0x5bd35c[_0xb600('0x41')]['hostname']?_0x5bd35c[_0xb600('0x41')][_0xb600('0xa1')]+':'+_0x5bd35c[_0xb600('0x41')][_0xb600('0xa0')]:_0xb600('0xa2')+_0x5bd35c['query'][_0xb600('0xa0')];var _0x5e5bd8=_0x5bd35c[_0xb600('0x41')]['json']?_0x5bd35c[_0xb600('0x41')][_0xb600('0x27')]:!![];var _0x41fda3=_0x5bd35c[_0xb600('0x41')][_0xb600('0xa3')]?_0x5bd35c[_0xb600('0x41')][_0xb600('0xa3')]:null;var _0x5009ca={'method':_0x5bd35c[_0xb600('0xa4')],'uri':util[_0xb600('0x58')](_0xb600('0xa5'),_0xb3c09e,_0x5bd35c[_0xb600('0x41')]['path']),'json':_0x5e5bd8,'resolveWithFullResponse':!![],'encoding':_0x41fda3,'body':_0x5bd35c[_0xb600('0x90')]};if(_0x5bd35c[_0xb600('0xa6')]){_0x5009ca[_0xb600('0xa6')]=_0x5bd35c['headers'];if(_0x5009ca['headers']['content-length']){delete _0x5009ca[_0xb600('0xa6')][_0xb600('0xa7')];}}if(_0x5009ca['headers'][_0xb600('0xa8')]){delete _0x5009ca[_0xb600('0xa6')][_0xb600('0xa8')];}return rp(_0x5009ca);})[_0xb600('0x31')](function(_0x2d386e){if(_0x2d386e){_0x188dc1['set'](_0x2d386e[_0xb600('0xa6')]);logger[_0xb600('0x67')](_0x2d386e[_0xb600('0x90')]);return _0x188dc1['status'](_0x2d386e['statusCode'])['send'](_0x2d386e[_0xb600('0x90')]);}else{return _0x188dc1['sendStatus'](0xc8);}})[_0xb600('0x51')](handleError(_0x188dc1,null));};