From 646065d745172efbdbad2a6c04fe27591940a2b8 Mon Sep 17 00:00:00 2001 From: CREDO23 Date: Thu, 11 Dec 2025 20:26:30 +0000 Subject: [PATCH] feat(search-spaces): add getSearchSpace endpoint to API service --- .../lib/apis/search-spaces-api.service.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/surfsense_web/lib/apis/search-spaces-api.service.ts b/surfsense_web/lib/apis/search-spaces-api.service.ts index b7c7a4c99..60e2b9d57 100644 --- a/surfsense_web/lib/apis/search-spaces-api.service.ts +++ b/surfsense_web/lib/apis/search-spaces-api.service.ts @@ -1,9 +1,12 @@ import { type CreateSearchSpaceRequest, + type GetSearchSpaceRequest, type GetSearchSpacesRequest, createSearchSpaceRequest, createSearchSpaceResponse, getCommunityPromptsResponse, + getSearchSpaceRequest, + getSearchSpaceResponse, getSearchSpacesRequest, getSearchSpacesResponse, } from "@/contracts/types/search-space.types"; @@ -64,6 +67,22 @@ class SearchSpacesApiService { getCommunityPrompts = async () => { return baseApiService.get(`/api/v1/searchspaces/prompts/community`, getCommunityPromptsResponse); }; + + /** + * Get a single search space by ID + */ + getSearchSpace = async (request: GetSearchSpaceRequest) => { + const parsedRequest = getSearchSpaceRequest.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.get(`/api/v1/searchspaces/${request.id}`, getSearchSpaceResponse); + }; } export const searchSpacesApiService = new SearchSpacesApiService();