From 1695b4dc68a3f9827900201f49d9a9286d02153a Mon Sep 17 00:00:00 2001 From: Carlos Valente Date: Mon, 28 Jul 2025 15:34:49 +0200 Subject: [PATCH] refactor: add presets to refetch list --- apps/client/src/common/utils/socket.ts | 14 +++++++++++++- .../src/api-data/url-presets/urlPresets.router.ts | 8 ++++++-- packages/types/src/api/websocket/refetch.type.ts | 1 + 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/apps/client/src/common/utils/socket.ts b/apps/client/src/common/utils/socket.ts index d0738ad39..5b7310182 100644 --- a/apps/client/src/common/utils/socket.ts +++ b/apps/client/src/common/utils/socket.ts @@ -10,7 +10,16 @@ import { } from 'ontime-types'; import { isProduction, websocketUrl } from '../../externals'; -import { CLIENT_LIST, CUSTOM_FIELDS, PROJECT_DATA, REPORT, RUNDOWN, RUNTIME, VIEW_SETTINGS } from '../api/constants'; +import { + CLIENT_LIST, + CUSTOM_FIELDS, + PROJECT_DATA, + REPORT, + RUNDOWN, + RUNTIME, + URL_PRESETS, + VIEW_SETTINGS, +} from '../api/constants'; import { invalidateAllCaches } from '../api/utils'; import { ontimeQueryClient } from '../queryClient'; import { @@ -166,6 +175,9 @@ export const connectSocket = () => { ontimeQueryClient.invalidateQueries({ queryKey: RUNDOWN }); ontimeQueryClient.invalidateQueries({ queryKey: CUSTOM_FIELDS }); break; + case RefetchKey.UrlPresets: + ontimeQueryClient.invalidateQueries({ queryKey: URL_PRESETS }); + break; case RefetchKey.ViewSettings: ontimeQueryClient.invalidateQueries({ queryKey: VIEW_SETTINGS }); break; diff --git a/apps/server/src/api-data/url-presets/urlPresets.router.ts b/apps/server/src/api-data/url-presets/urlPresets.router.ts index f61783476..650ba57d8 100644 --- a/apps/server/src/api-data/url-presets/urlPresets.router.ts +++ b/apps/server/src/api-data/url-presets/urlPresets.router.ts @@ -1,9 +1,10 @@ import express from 'express'; import type { Request, Response } from 'express'; -import type { ErrorResponse, URLPreset } from 'ontime-types'; +import { RefetchKey, type ErrorResponse, type URLPreset } from 'ontime-types'; import { getErrorMessage } from 'ontime-utils'; import { getDataProvider } from '../../classes/data-provider/DataProvider.js'; import { validateNewPreset, validatePresetParam, validateUpdatePreset } from './urlPresets.validation.js'; +import { sendRefetch } from '../../adapters/WebsocketAdapter.js'; export const router = express.Router(); @@ -23,13 +24,14 @@ router.post('/', validateNewPreset, async (req: Request, res: Response preset.alias === newPreset.alias)) { - throw new Error(`Preset with alias "${newPreset.alias}" already exists.`); + throw new Error(`Preset with alias ${newPreset.alias} already exists.`); } const newPresets = [...currentPresets, newPreset]; // Update the URL presets in the data provider await getDataProvider().setUrlPresets(newPresets); + sendRefetch(RefetchKey.UrlPresets); res.status(201).send(newPresets); } catch (error) { const message = getErrorMessage(error); @@ -56,6 +58,7 @@ router.put('/:alias', validateUpdatePreset, async (req: Request, res: Response