From c5ebd0352d79843bb8f447e5c02ccc49e5f3caaa Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 29 Oct 2023 11:04:07 +1300 Subject: [PATCH 1/8] Identify API errors and send error response --- server/app.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server/app.js b/server/app.js index a19030b3a..03ffd081a 100644 --- a/server/app.js +++ b/server/app.js @@ -489,6 +489,12 @@ app.use(async (err, req, res, next)=>{ }; req.customUrl= '/error'; + if(req.originalUrl.startsWith('/api/')) { + console.log('api error'); + res.status(err?.status || err?.response?.status || 500).send(err.message || err); + return; + } + const page = await renderPage(req, res); if(!page) return; res.send(page); From e07d1d1ddb0776f160591bc3ce006b57e984aa74 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 29 Oct 2023 11:27:03 +1300 Subject: [PATCH 2/8] Add originalUrl to error object --- server/app.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/app.js b/server/app.js index 03ffd081a..4d5f7d8a4 100644 --- a/server/app.js +++ b/server/app.js @@ -472,8 +472,9 @@ const getPureError = (error)=>{ }; app.use(async (err, req, res, next)=>{ - const status = err.status || err.code || 500; + err.originalUrl = req.originalUrl; console.error(err); + const status = err.status || err.code || 500; req.ogMeta = { ...defaultMetaTags, title : 'Error Page', From 70523376690b187e92597bd410f540fc2312b2ea Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 29 Oct 2023 11:43:24 +1300 Subject: [PATCH 3/8] Remove API error message from log --- server/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/app.js b/server/app.js index 4d5f7d8a4..762553337 100644 --- a/server/app.js +++ b/server/app.js @@ -491,7 +491,7 @@ app.use(async (err, req, res, next)=>{ req.customUrl= '/error'; if(req.originalUrl.startsWith('/api/')) { - console.log('api error'); + // console.log('api error'); res.status(err?.status || err?.response?.status || 500).send(err.message || err); return; } From 85b09760828c4e1f1a5ae7c30e3f72f46219321a Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 29 Oct 2023 11:52:02 +1300 Subject: [PATCH 4/8] Move API call error handling --- server/app.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/server/app.js b/server/app.js index 762553337..18c4764d6 100644 --- a/server/app.js +++ b/server/app.js @@ -474,6 +474,14 @@ const getPureError = (error)=>{ app.use(async (err, req, res, next)=>{ err.originalUrl = req.originalUrl; console.error(err); + + if(err.originalUrl?.startsWith('/api/')) { + // console.log('API error'); + res.status(err?.status || err?.response?.status || 500).send(err.message || err); + return; + } + + // console.log('non-API error'); const status = err.status || err.code || 500; req.ogMeta = { ...defaultMetaTags, @@ -490,12 +498,6 @@ app.use(async (err, req, res, next)=>{ }; req.customUrl= '/error'; - if(req.originalUrl.startsWith('/api/')) { - // console.log('api error'); - res.status(err?.status || err?.response?.status || 500).send(err.message || err); - return; - } - const page = await renderPage(req, res); if(!page) return; res.send(page); From 511c38dd1ec87a4391b5a883ca0ae690f7e3eaf9 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 29 Oct 2023 14:16:41 +1300 Subject: [PATCH 5/8] Remove unnecessary nullish coalescing operators --- server/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/app.js b/server/app.js index 18c4764d6..5ae873a1c 100644 --- a/server/app.js +++ b/server/app.js @@ -477,7 +477,7 @@ app.use(async (err, req, res, next)=>{ if(err.originalUrl?.startsWith('/api/')) { // console.log('API error'); - res.status(err?.status || err?.response?.status || 500).send(err.message || err); + res.status(err.status || err.response?.status || 500).send(err.message || err); return; } From 4424a331d51f709a4994299206c46309d64e1a61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Tue, 16 Jan 2024 18:38:38 +0100 Subject: [PATCH 6/8] first commit --- themes/V3/5ePHB/snippets/classfeature.gen.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/V3/5ePHB/snippets/classfeature.gen.js b/themes/V3/5ePHB/snippets/classfeature.gen.js index 2597c3ee8..e2e9148b5 100644 --- a/themes/V3/5ePHB/snippets/classfeature.gen.js +++ b/themes/V3/5ePHB/snippets/classfeature.gen.js @@ -42,8 +42,8 @@ module.exports = function(classname){ #### Equipment You start with the following equipment, in addition to the equipment granted by your background: - - *(a)* a martial weapon and a shield or *(b)* two martial weapons - - *(a)* five javelins or *(b)* any simple melee weapon + - (*a*) a martial weapon and a shield or (*b*) two martial weapons + - (*a*) five javelins or (*b*) any simple melee weapon - ${_.sample(['10 lint fluffs', '1 button', 'a cherished lost sock'])} `; }; From b0ea34cc3f67b646077edf91eab492ab37a0cc19 Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Thu, 18 Jan 2024 17:20:31 -0500 Subject: [PATCH 7/8] Add custom error messages. --- client/homebrew/navbar/error-navitem.jsx | 44 +++++++++++++++++++++--- server/app.js | 2 +- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/client/homebrew/navbar/error-navitem.jsx b/client/homebrew/navbar/error-navitem.jsx index eb2872c22..8551408c5 100644 --- a/client/homebrew/navbar/error-navitem.jsx +++ b/client/homebrew/navbar/error-navitem.jsx @@ -21,10 +21,11 @@ const ErrorNavItem = createClass({ this.props.parent.setState(state); }; - const error = this.props.error; - const response = error.response; - const status = response.status; - const message = response.body?.message; + const error = this.props.error; + const response = error.response; + const status = response.status; + const HBErrorCode = response.body?.HBErrorCode; + const message = response.body?.message; let errMsg = ''; try { errMsg += `${error.toString()}\n\n`; @@ -40,7 +41,9 @@ const ErrorNavItem = createClass({ {message ?? 'Conflict: please refresh to get latest changes'} ; - } else if(status === 412) { + } + + if(status === 412) { return Oops!
@@ -48,6 +51,36 @@ const ErrorNavItem = createClass({
; } + + if(HBErrorCode === '04') { + return + Oops! +
+ You are no longer signed in as an author of + this brew! Were you signed out from a different + window? Visit our log in page, then try again! +

+ +
+ Sign In +
+
+
+ Not Now +
+
+
; + } + + if(response.body?.errors?.[0].reason == 'storageQuotaExceeded') { + return + Oops! +
+ Can't save because your Google Drive seems to be full! +
+
; + } if(response.req.url.match(/^\/api.*Google.*$/m)){ return @@ -57,6 +90,7 @@ const ErrorNavItem = createClass({ expired! Visit our log in page to sign out and sign back in with Google, then try saving again! +

diff --git a/server/app.js b/server/app.js index 5ae873a1c..970c2cd9c 100644 --- a/server/app.js +++ b/server/app.js @@ -477,7 +477,7 @@ app.use(async (err, req, res, next)=>{ if(err.originalUrl?.startsWith('/api/')) { // console.log('API error'); - res.status(err.status || err.response?.status || 500).send(err.message || err); + res.status(err.status || err.response?.status || 500).send(err); return; } From d36e0524785c306e5ff29da885050f3df0c32d5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jan 2024 03:08:19 +0000 Subject: [PATCH 8/8] Bump react-router-dom from 6.21.2 to 6.21.3 Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.21.2 to 6.21.3. - [Release notes](https://github.com/remix-run/react-router/releases) - [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md) - [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.21.3/packages/react-router-dom) --- updated-dependencies: - dependency-name: react-router-dom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 57a6e2600..00c5c0ec8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,7 +41,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-frame-component": "^4.1.3", - "react-router-dom": "6.21.2", + "react-router-dom": "6.21.3", "sanitize-filename": "1.6.3", "superagent": "^8.1.2", "vitreum": "git+https://git@github.com/calculuschild/vitreum.git" @@ -11873,9 +11873,9 @@ "dev": true }, "node_modules/react-router": { - "version": "6.21.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.21.2.tgz", - "integrity": "sha512-jJcgiwDsnaHIeC+IN7atO0XiSRCrOsQAHHbChtJxmgqG2IaYQXSnhqGb5vk2CU/wBQA12Zt+TkbuJjIn65gzbA==", + "version": "6.21.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.21.3.tgz", + "integrity": "sha512-a0H638ZXULv1OdkmiK6s6itNhoy33ywxmUFT/xtSoVyf9VnC7n7+VT4LjVzdIHSaF5TIh9ylUgxMXksHTgGrKg==", "dependencies": { "@remix-run/router": "1.14.2" }, @@ -11887,12 +11887,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.21.2", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.21.2.tgz", - "integrity": "sha512-tE13UukgUOh2/sqYr6jPzZTzmzc70aGRP4pAjG2if0IP3aUT+sBtAKUJh0qMh0zylJHGLmzS+XWVaON4UklHeg==", + "version": "6.21.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.21.3.tgz", + "integrity": "sha512-kNzubk7n4YHSrErzjLK72j0B5i969GsuCGazRl3G6j1zqZBLjuSlYBdVdkDOgzGdPIffUOc9nmgiadTEVoq91g==", "dependencies": { "@remix-run/router": "1.14.2", - "react-router": "6.21.2" + "react-router": "6.21.3" }, "engines": { "node": ">=14.0.0" diff --git a/package.json b/package.json index cd5cbc546..50251c118 100644 --- a/package.json +++ b/package.json @@ -110,7 +110,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-frame-component": "^4.1.3", - "react-router-dom": "6.21.2", + "react-router-dom": "6.21.3", "sanitize-filename": "1.6.3", "superagent": "^8.1.2", "vitreum": "git+https://git@github.com/calculuschild/vitreum.git"