refactor(status-page): apply review feedback on theme-fields backend

- StatusPage Mongoose model: import DEFAULT_STATUS_PAGE_THEME / DEFAULT_STATUS_PAGE_THEME_MODE from types/statusPage so the four sources of the default literal stay locked together
- openapi.json: add explicit "default" alongside the enum on StatusPageTheme and StatusPageThemeMode component schemas; documentation already mentioned the defaults but the JSON didn't carry them
- statusPageController: add JSDoc-style comments above withoutThemeFields and applyDefaultTheme spelling out the asymmetric strip-on-write / force-on-read semantics so the next reviewer doesn't have to re-derive the design
This commit is contained in:
gorkem-bwl committed 2026-04-27 19:02:44 -04:00
1 parent ad964446de
commit 5874efff3c
3 files changed
+18 -3

No files matched your search

@@ -40,6 +40,9 @@ class StatusPageController implements IStatusPageController {
return StatusPageController.SERVICE_NAME;
}
// Used when STATUS_PAGE_THEMES_ENABLED is false: drop incoming theme fields
// before persisting so an admin client can't accidentally store a value the
// public page won't honour.
private withoutThemeFields = (body: Record<string, unknown>): Record<string, unknown> => {
const rest = { ...body };
delete rest.theme;
@@ -47,6 +50,10 @@ class StatusPageController implements IStatusPageController {
return rest;
};
// Used when STATUS_PAGE_THEMES_ENABLED is false: overwrite the stored
// theme/themeMode with their defaults on read so callers see consistent
// values regardless of what's in the DB. Whatever a user previously chose
// is preserved in Mongo and resurfaces if the flag is flipped back on.
private applyDefaultTheme = (statusPage: StatusPage): StatusPage => ({
...statusPage,
theme: DEFAULT_STATUS_PAGE_THEME,