mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-07-08 22:22:17 +02:00
- Introduced a comprehensive specification for renaming `searchSpace` to `workspace` in `surfsense_web` and `surfsense_desktop`, ensuring all TypeScript identifiers, React props, and local data structures are updated. - Implemented migration shims for persisted local state to prevent data loss during the transition. - Updated observability metrics and IPC channels to reflect the new naming convention. - Removed legacy `active-search-space` module and replaced it with `active-workspace` to maintain consistency. - Ensured no behavioral changes or data loss for users during the renaming process.
64 lines
2 KiB
TypeScript
64 lines
2 KiB
TypeScript
import {
|
|
type PromptCreateRequest,
|
|
type PromptUpdateRequest,
|
|
promptCreateRequest,
|
|
promptDeleteResponse,
|
|
promptRead,
|
|
promptsListResponse,
|
|
promptUpdateRequest,
|
|
publicPromptsListResponse,
|
|
} from "@/contracts/types/prompts.types";
|
|
import { ValidationError } from "@/lib/error";
|
|
import { baseApiService } from "./base-api.service";
|
|
|
|
class PromptsApiService {
|
|
list = async (workspaceId?: number) => {
|
|
const params = new URLSearchParams();
|
|
if (workspaceId !== undefined) {
|
|
params.set("workspace_id", String(workspaceId));
|
|
}
|
|
const queryString = params.toString();
|
|
const url = queryString ? `/api/v1/prompts?${queryString}` : "/api/v1/prompts";
|
|
|
|
return baseApiService.get(url, promptsListResponse);
|
|
};
|
|
|
|
create = async (request: PromptCreateRequest) => {
|
|
const parsed = promptCreateRequest.safeParse(request);
|
|
if (!parsed.success) {
|
|
const errorMessage = parsed.error.issues.map((issue) => issue.message).join(", ");
|
|
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
|
}
|
|
|
|
const { workspace_id, ...body } = parsed.data;
|
|
return baseApiService.post("/api/v1/prompts", promptRead, {
|
|
body: { ...body, workspace_id },
|
|
});
|
|
};
|
|
|
|
update = async (promptId: number, request: PromptUpdateRequest) => {
|
|
const parsed = promptUpdateRequest.safeParse(request);
|
|
if (!parsed.success) {
|
|
const errorMessage = parsed.error.issues.map((issue) => issue.message).join(", ");
|
|
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
|
}
|
|
|
|
return baseApiService.put(`/api/v1/prompts/${promptId}`, promptRead, {
|
|
body: parsed.data,
|
|
});
|
|
};
|
|
|
|
delete = async (promptId: number) => {
|
|
return baseApiService.delete(`/api/v1/prompts/${promptId}`, promptDeleteResponse);
|
|
};
|
|
|
|
listPublic = async () => {
|
|
return baseApiService.get("/api/v1/prompts/public", publicPromptsListResponse);
|
|
};
|
|
|
|
copy = async (promptId: number) => {
|
|
return baseApiService.post(`/api/v1/prompts/${promptId}/copy`, promptRead, {});
|
|
};
|
|
}
|
|
|
|
export const promptsApiService = new PromptsApiService();
|