refactor: add presets to refetch list

This commit is contained in:
Carlos Valente
2025-07-28 15:34:49 +02:00
committed by Carlos Valente
parent 1ed08df198
commit 1695b4dc68
3 changed files with 20 additions and 3 deletions
+13 -1
View File
@@ -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;
@@ -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<URLPreset
const currentPresets = getDataProvider().getUrlPresets();
if (currentPresets.some((preset) => 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<U
// Update the URL presets in the data provider
await getDataProvider().setUrlPresets(newPresets);
sendRefetch(RefetchKey.UrlPresets);
res.status(200).send(newPresets);
} catch (error) {
const message = getErrorMessage(error);
@@ -71,6 +74,7 @@ router.delete('/:alias', validatePresetParam, async (req: Request, res: Response
// Update the URL presets in the data provider
await getDataProvider().setUrlPresets(newPresets);
sendRefetch(RefetchKey.UrlPresets);
res.status(200).send(newPresets);
} catch (error) {
const message = getErrorMessage(error);
@@ -4,5 +4,6 @@ export enum RefetchKey {
ProjectData = 'project-data',
Report = 'report',
Rundown = 'rundown',
UrlPresets = 'url-presets',
ViewSettings = 'view-settings',
}