From 274b69d0171b3092963acb1d59c441ab2a3cad81 Mon Sep 17 00:00:00 2001 From: KernelDeimos Date: Wed, 3 Apr 2024 17:20:49 -0400 Subject: [PATCH] Fix /file and /setItem --- packages/backend/src/routers/file.js | 21 +++++++++++---- .../backend/src/routers/get-launch-apps.js | 1 + .../backend/src/routers/kvstore/setItem.js | 26 ------------------- 3 files changed, 17 insertions(+), 31 deletions(-) diff --git a/packages/backend/src/routers/file.js b/packages/backend/src/routers/file.js index 15cb97f10..704a7e856 100644 --- a/packages/backend/src/routers/file.js +++ b/packages/backend/src/routers/file.js @@ -40,6 +40,10 @@ router.get('/file', async (req, res, next)=>{ return res.status(403).send(e); } + const log = req.services.get('log-service').create('/file'); + const errors = req.services.get('error-service').create(log); + + // modules const db = req.services.get('database').get(DB_WRITE, 'filesystem'); const mime = require('mime-types') @@ -113,13 +117,17 @@ router.get('/file', async (req, res, next)=>{ // stream data from S3 try{ - let stream = await storage.create_read_stream({ - key: fsentry[0].uuid, + let stream = await storage.create_read_stream(fsentry[0].uuid, { bucket: fsentry[0].bucket, bucket_region: fsentry[0].bucket_region, }); return stream.pipe(res); }catch(e){ + errors.report('read from storage', { + source: e, + trace: true, + alarm: true, + }); return res.type('application/json').status(500).send({message: 'There was an internal problem reading the file.'}); } } @@ -175,14 +183,17 @@ router.get('/file', async (req, res, next)=>{ }); try{ - let stream = await storage.create_read_stream({ - key: fsentry[0].uuid, + let stream = await storage.create_read_stream(fsentry[0].uuid, { bucket: fsentry[0].bucket, bucket_region: fsentry[0].bucket_region, }); return stream.pipe(res); }catch(e){ - console.log(e) + errors.report('read from storage', { + source: e, + trace: true, + alarm: true, + }); return res.type('application/json').status(500).send({message: 'There was an internal problem reading the file.'}); } } diff --git a/packages/backend/src/routers/get-launch-apps.js b/packages/backend/src/routers/get-launch-apps.js index 2664c0dd4..665d46b89 100644 --- a/packages/backend/src/routers/get-launch-apps.js +++ b/packages/backend/src/routers/get-launch-apps.js @@ -101,6 +101,7 @@ router.get('/get-launch-apps', auth, express.json(), async (req, res, next)=>{ 'plushie-connect', 'hex-frvr', 'spider-solitaire', + 'test', ] // Prepare each app for returning to user by only returning the necessary fields diff --git a/packages/backend/src/routers/kvstore/setItem.js b/packages/backend/src/routers/kvstore/setItem.js index a3cc3320e..c52b3460f 100644 --- a/packages/backend/src/routers/kvstore/setItem.js +++ b/packages/backend/src/routers/kvstore/setItem.js @@ -56,32 +56,6 @@ router.post('/setItem', auth, express.json(), async (req, res, next)=>{ else if(req.body.app && !await app_exists({uid: req.body.app})) return res.status(400).send('`app` does not exist'); - // hash key for faster search in DB - const murmurhash = require('murmurhash') - const key_hash = murmurhash.v3(req.body.key); - - // database connection - const db = require('../../db/mysql.js'); - - // insert into DB (in case the row isn't migrated yet) - await db.promise().execute( - `INSERT INTO kv - (user_id, app, kkey_hash, kkey, value) - VALUES - (?, ?, ?, ?, ?) - ON DUPLICATE KEY UPDATE - value = ?`, - [ - req.user.id, - // 0 is reserved for global system variables - req.body.app ?? 'global', - key_hash, - String(req.body.key), - String(req.body.value), - String(req.body.value), - ] - ) - // insert into KV 1 const actor = req.body.app ? await Actor.create(AppUnderUserActorType, {