diff --git a/surfsense_web/lib/apis/search-spaces-api.service.ts b/surfsense_web/lib/apis/search-spaces-api.service.ts index 57cacd096..73b57ee3c 100644 --- a/surfsense_web/lib/apis/search-spaces-api.service.ts +++ b/surfsense_web/lib/apis/search-spaces-api.service.ts @@ -1,10 +1,13 @@ import { type CreateSearchSpaceRequest, + type DeleteSearchSpaceRequest, type GetSearchSpaceRequest, type GetSearchSpacesRequest, type UpdateSearchSpaceRequest, createSearchSpaceRequest, createSearchSpaceResponse, + deleteSearchSpaceRequest, + deleteSearchSpaceResponse, getCommunityPromptsResponse, getSearchSpaceRequest, getSearchSpaceResponse, @@ -104,6 +107,22 @@ class SearchSpacesApiService { body: parsedRequest.data.data, }); }; + + /** + * Delete a search space + */ + deleteSearchSpace = async (request: DeleteSearchSpaceRequest) => { + const parsedRequest = deleteSearchSpaceRequest.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.delete(`/api/v1/searchspaces/${request.id}`, deleteSearchSpaceResponse); + }; } export const searchSpacesApiService = new SearchSpacesApiService();