diff --git a/Foxnouns.Backend/Controllers/MetaController.cs b/Foxnouns.Backend/Controllers/MetaController.cs index 1f00a7a..cf86d55 100644 --- a/Foxnouns.Backend/Controllers/MetaController.cs +++ b/Foxnouns.Backend/Controllers/MetaController.cs @@ -58,15 +58,8 @@ public partial class MetaController(Config config) : ApiControllerBase } string path = Path.Join(Directory.GetCurrentDirectory(), "static-pages", $"{page}.md"); - try - { - string text = await System.IO.File.ReadAllTextAsync(path, ct); - return Ok(text); - } - catch (FileNotFoundException) - { - throw new ApiError.NotFound("Page not found", code: ErrorCode.PageNotFound); - } + string text = await System.IO.File.ReadAllTextAsync(path, ct); + return Ok(text); } [HttpGet("/api/v2/coffee")] diff --git a/Foxnouns.Backend/ExpectedError.cs b/Foxnouns.Backend/ExpectedError.cs index 647688b..6a704e2 100644 --- a/Foxnouns.Backend/ExpectedError.cs +++ b/Foxnouns.Backend/ExpectedError.cs @@ -164,7 +164,6 @@ public enum ErrorCode GenericApiError, UserNotFound, MemberNotFound, - PageNotFound, AccountAlreadyLinked, LastAuthMethod, InvalidReportTarget, diff --git a/Foxnouns.Frontend/src/hooks.server.ts b/Foxnouns.Frontend/src/hooks.server.ts index 35a0048..c67d258 100644 --- a/Foxnouns.Frontend/src/hooks.server.ts +++ b/Foxnouns.Frontend/src/hooks.server.ts @@ -21,8 +21,12 @@ Sentry.init({ }); export const handleError: HandleServerError = async ({ error, status, message }) => { + // as far as i know, sentry IDs are just UUIDs with the dashes removed. use those here as well + let id = crypto.randomUUID().replaceAll("-", ""); + if (error instanceof ApiError) { return { + error_id: id, status: error.raw?.status || status, message: error.raw?.message || "Unknown error", code: error.code, @@ -30,11 +34,11 @@ export const handleError: HandleServerError = async ({ error, status, message }) } if (status >= 400 && status <= 499) { - return { status, message, code: ErrorCode.GenericApiError }; + return { error_id: id, status, message, code: ErrorCode.GenericApiError }; } // client errors and backend API errors just clog up sentry, so we don't send those. - const id = Sentry.captureException(error, { + id = Sentry.captureException(error, { mechanism: { type: "sveltekit", handled: false, diff --git a/Foxnouns.Frontend/src/lib/api/error.ts b/Foxnouns.Frontend/src/lib/api/error.ts index e893a86..0b05d69 100644 --- a/Foxnouns.Frontend/src/lib/api/error.ts +++ b/Foxnouns.Frontend/src/lib/api/error.ts @@ -43,7 +43,6 @@ export enum ErrorCode { MemberNotFound = "MEMBER_NOT_FOUND", AccountAlreadyLinked = "ACCOUNT_ALREADY_LINKED", LastAuthMethod = "LAST_AUTH_METHOD", - PageNotFound = "PAGE_NOT_FOUND", // This code isn't actually returned by the API Non204Response = "(non 204 response)", } diff --git a/Foxnouns.Frontend/src/lib/errorCodes.ts b/Foxnouns.Frontend/src/lib/errorCodes.ts index 8b8ef44..b97b71b 100644 --- a/Foxnouns.Frontend/src/lib/errorCodes.ts +++ b/Foxnouns.Frontend/src/lib/errorCodes.ts @@ -29,8 +29,6 @@ export default function errorDescription(t: TranslateFn, code: ErrorCode): strin return t("error.account-already-linked"); case ErrorCode.LastAuthMethod: return t("error.last-auth-method"); - case ErrorCode.PageNotFound: - return t("error.page-not-found"); case ErrorCode.Non204Response: return t("error.generic-error"); } diff --git a/Foxnouns.Frontend/src/lib/i18n/locales/en.json b/Foxnouns.Frontend/src/lib/i18n/locales/en.json index 0c2f958..55696dd 100644 --- a/Foxnouns.Frontend/src/lib/i18n/locales/en.json +++ b/Foxnouns.Frontend/src/lib/i18n/locales/en.json @@ -120,8 +120,7 @@ "400-description": "Something went wrong with your request. This error should never land you on this page, so it's probably a bug.", "500-description": "Something went wrong on the server. Please try again later.", "unknown-status-description": "Something went wrong, but we're not sure what. Please try again.", - "error-id": "If you report this error to the developers, please give them this ID:", - "page-not-found": "No page exists at this URL." + "error-id": "If you report this error to the developers, please give them this ID:" }, "settings": { "general-information-tab": "General information", @@ -322,7 +321,6 @@ "required": "Required" }, "alert": { - "auth-method-remove-success": "Successfully unlinked account!", - "auth-required": "You must log in to access this page." + "auth-method-remove-success": "Successfully unlinked account!" } } diff --git a/Foxnouns.Frontend/src/routes/admin/reports/+page.server.ts b/Foxnouns.Frontend/src/routes/admin/reports/+page.server.ts index c2149c1..a88121e 100644 --- a/Foxnouns.Frontend/src/routes/admin/reports/+page.server.ts +++ b/Foxnouns.Frontend/src/routes/admin/reports/+page.server.ts @@ -19,5 +19,5 @@ export const load = async ({ url, fetch, cookies }) => { fetch, cookies, }); - return { reports, url: url.toString(), includeClosed, byReporter, byTarget, before, after }; + return { reports, url: url.toString(), byReporter, byTarget, before, after }; }; diff --git a/Foxnouns.Frontend/src/routes/admin/reports/+page.svelte b/Foxnouns.Frontend/src/routes/admin/reports/+page.svelte index 5021846..3b76ce7 100644 --- a/Foxnouns.Frontend/src/routes/admin/reports/+page.svelte +++ b/Foxnouns.Frontend/src/routes/admin/reports/+page.svelte @@ -18,14 +18,6 @@ return url.toString(); }; - const addClosed = () => { - const url = new URL(data.url); - if (!data.includeClosed) url.searchParams.set("include-closed", "true"); - else url.searchParams.delete("include-closed"); - - return url.toString(); - }; - const addTarget = (id: string | null) => { const url = new URL(data.url); if (id) url.searchParams.set("by-target", id); @@ -64,11 +56,6 @@ {#if data.byReporter}