From ccafe4a06632ddbbb31f72bd271588f013f700ee Mon Sep 17 00:00:00 2001 From: nymkappa Date: Wed, 30 Mar 2022 16:27:17 +0900 Subject: [PATCH 1/2] Send 404 when accessing non existing mining pool --- backend/src/repositories/PoolsRepository.ts | 7 ++++++- backend/src/routes.ts | 18 +++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/backend/src/repositories/PoolsRepository.ts b/backend/src/repositories/PoolsRepository.ts index d9defaaed..2b6dd5657 100644 --- a/backend/src/repositories/PoolsRepository.ts +++ b/backend/src/repositories/PoolsRepository.ts @@ -80,7 +80,7 @@ class PoolsRepository { /** * Get mining pool statistics for one pool */ - public async $getPool(slug: string): Promise { + public async $getPool(slug: string): Promise { const query = ` SELECT * FROM pools @@ -93,6 +93,11 @@ class PoolsRepository { const [rows] = await connection.query(query, [slug]); connection.release(); + if (rows.length < 1) { + logger.debug(`$getPool(): slug ${slug} does not match any known pool`); + return null; + } + rows[0].regexes = JSON.parse(rows[0].regexes); rows[0].addresses = JSON.parse(rows[0].addresses); diff --git a/backend/src/routes.ts b/backend/src/routes.ts index e98c718ef..af31d29ed 100644 --- a/backend/src/routes.ts +++ b/backend/src/routes.ts @@ -545,7 +545,11 @@ class Routes { res.setHeader('Expires', new Date(Date.now() + 1000 * 60).toUTCString()); res.json(stats); } catch (e) { - res.status(500).send(e instanceof Error ? e.message : e); + if (e instanceof Error && e.message.indexOf('This mining pool does not exist') > -1) { + res.status(404).send(e.message); + } else { + res.status(500).send(e instanceof Error ? e.message : e); + } } } @@ -560,7 +564,11 @@ class Routes { res.setHeader('Expires', new Date(Date.now() + 1000 * 60).toUTCString()); res.json(poolBlocks); } catch (e) { - res.status(500).send(e instanceof Error ? e.message : e); + if (e instanceof Error && e.message.indexOf('This mining pool does not exist') > -1) { + res.status(404).send(e.message); + } else { + res.status(500).send(e instanceof Error ? e.message : e); + } } } @@ -616,7 +624,11 @@ class Routes { hashrates: hashrates, }); } catch (e) { - res.status(500).send(e instanceof Error ? e.message : e); + if (e instanceof Error && e.message.indexOf('This mining pool does not exist') > -1) { + res.status(404).send(e.message); + } else { + res.status(500).send(e instanceof Error ? e.message : e); + } } } From 2521661c69091021a16e924e7f459120fc27fbb5 Mon Sep 17 00:00:00 2001 From: nymkappa Date: Thu, 31 Mar 2022 18:35:03 +0900 Subject: [PATCH 2/2] Remove unfiltered using input from log --- backend/src/repositories/PoolsRepository.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/repositories/PoolsRepository.ts b/backend/src/repositories/PoolsRepository.ts index 2b6dd5657..9e66634b8 100644 --- a/backend/src/repositories/PoolsRepository.ts +++ b/backend/src/repositories/PoolsRepository.ts @@ -94,7 +94,7 @@ class PoolsRepository { connection.release(); if (rows.length < 1) { - logger.debug(`$getPool(): slug ${slug} does not match any known pool`); + logger.debug(`$getPool(): slug does not match any known pool`); return null; }