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:
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,
|
||||
|
||||
Reference in new issue
Block a user