From 80357d450bc563dee7a053c9aea5f76dfa0ef401 Mon Sep 17 00:00:00 2001 From: CREDO23 Date: Thu, 11 Dec 2025 20:28:56 +0000 Subject: [PATCH] feat(search-spaces): add updateSearchSpace endpoint to API service --- .../lib/apis/search-spaces-api.service.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/surfsense_web/lib/apis/search-spaces-api.service.ts b/surfsense_web/lib/apis/search-spaces-api.service.ts index 60e2b9d57..57cacd096 100644 --- a/surfsense_web/lib/apis/search-spaces-api.service.ts +++ b/surfsense_web/lib/apis/search-spaces-api.service.ts @@ -2,6 +2,7 @@ import { type CreateSearchSpaceRequest, type GetSearchSpaceRequest, type GetSearchSpacesRequest, + type UpdateSearchSpaceRequest, createSearchSpaceRequest, createSearchSpaceResponse, getCommunityPromptsResponse, @@ -9,6 +10,8 @@ import { getSearchSpaceResponse, getSearchSpacesRequest, getSearchSpacesResponse, + updateSearchSpaceRequest, + updateSearchSpaceResponse, } from "@/contracts/types/search-space.types"; import { ValidationError } from "../error"; import { baseApiService } from "./base-api.service"; @@ -83,6 +86,24 @@ class SearchSpacesApiService { return baseApiService.get(`/api/v1/searchspaces/${request.id}`, getSearchSpaceResponse); }; + + /** + * Update an existing search space + */ + updateSearchSpace = async (request: UpdateSearchSpaceRequest) => { + const parsedRequest = updateSearchSpaceRequest.safeParse(request); + + if (!parsedRequest.success) { + console.error("Invalid request:", parsedRequest.error); + + const errorMessage = parsedRequest.error.errors.map((err) => err.message).join(", "); + throw new ValidationError(`Invalid request: ${errorMessage}`); + } + + return baseApiService.put(`/api/v1/searchspaces/${request.id}`, updateSearchSpaceResponse, { + body: parsedRequest.data.data, + }); + }; } export const searchSpacesApiService = new SearchSpacesApiService();