mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-06-06 20:15:17 +02:00
feat: add search space snapshots frontend API
This commit is contained in:
parent
ab343b544a
commit
47b7befc55
2 changed files with 50 additions and 0 deletions
|
|
@ -44,6 +44,30 @@ export const deleteSnapshotRequest = z.object({
|
||||||
snapshot_id: z.number(),
|
snapshot_id: z.number(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search space snapshot info (includes thread context)
|
||||||
|
*/
|
||||||
|
export const searchSpaceSnapshotInfo = z.object({
|
||||||
|
id: z.number(),
|
||||||
|
share_token: z.string(),
|
||||||
|
public_url: z.string(),
|
||||||
|
created_at: z.string(),
|
||||||
|
message_count: z.number(),
|
||||||
|
thread_id: z.number(),
|
||||||
|
thread_title: z.string(),
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List snapshots for search space
|
||||||
|
*/
|
||||||
|
export const listSearchSpaceSnapshotsRequest = z.object({
|
||||||
|
search_space_id: z.number(),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const listSearchSpaceSnapshotsResponse = z.object({
|
||||||
|
snapshots: z.array(searchSpaceSnapshotInfo),
|
||||||
|
});
|
||||||
|
|
||||||
// Type exports
|
// Type exports
|
||||||
export type SnapshotInfo = z.infer<typeof snapshotInfo>;
|
export type SnapshotInfo = z.infer<typeof snapshotInfo>;
|
||||||
export type CreateSnapshotRequest = z.infer<typeof createSnapshotRequest>;
|
export type CreateSnapshotRequest = z.infer<typeof createSnapshotRequest>;
|
||||||
|
|
@ -51,3 +75,6 @@ export type CreateSnapshotResponse = z.infer<typeof createSnapshotResponse>;
|
||||||
export type ListSnapshotsRequest = z.infer<typeof listSnapshotsRequest>;
|
export type ListSnapshotsRequest = z.infer<typeof listSnapshotsRequest>;
|
||||||
export type ListSnapshotsResponse = z.infer<typeof listSnapshotsResponse>;
|
export type ListSnapshotsResponse = z.infer<typeof listSnapshotsResponse>;
|
||||||
export type DeleteSnapshotRequest = z.infer<typeof deleteSnapshotRequest>;
|
export type DeleteSnapshotRequest = z.infer<typeof deleteSnapshotRequest>;
|
||||||
|
export type SearchSpaceSnapshotInfo = z.infer<typeof searchSpaceSnapshotInfo>;
|
||||||
|
export type ListSearchSpaceSnapshotsRequest = z.infer<typeof listSearchSpaceSnapshotsRequest>;
|
||||||
|
export type ListSearchSpaceSnapshotsResponse = z.infer<typeof listSearchSpaceSnapshotsResponse>;
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,12 @@ import {
|
||||||
createSnapshotResponse,
|
createSnapshotResponse,
|
||||||
type DeleteSnapshotRequest,
|
type DeleteSnapshotRequest,
|
||||||
deleteSnapshotRequest,
|
deleteSnapshotRequest,
|
||||||
|
type ListSearchSpaceSnapshotsRequest,
|
||||||
|
type ListSearchSpaceSnapshotsResponse,
|
||||||
type ListSnapshotsRequest,
|
type ListSnapshotsRequest,
|
||||||
type ListSnapshotsResponse,
|
type ListSnapshotsResponse,
|
||||||
|
listSearchSpaceSnapshotsRequest,
|
||||||
|
listSearchSpaceSnapshotsResponse,
|
||||||
listSnapshotsRequest,
|
listSnapshotsRequest,
|
||||||
listSnapshotsResponse,
|
listSnapshotsResponse,
|
||||||
} from "@/contracts/types/chat-threads.types";
|
} from "@/contracts/types/chat-threads.types";
|
||||||
|
|
@ -63,6 +67,25 @@ class ChatThreadsApiService {
|
||||||
`/api/v1/threads/${parsed.data.thread_id}/snapshots/${parsed.data.snapshot_id}`
|
`/api/v1/threads/${parsed.data.thread_id}/snapshots/${parsed.data.snapshot_id}`
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List all snapshots for a search space.
|
||||||
|
*/
|
||||||
|
listSearchSpaceSnapshots = async (
|
||||||
|
request: ListSearchSpaceSnapshotsRequest
|
||||||
|
): Promise<ListSearchSpaceSnapshotsResponse> => {
|
||||||
|
const parsed = listSearchSpaceSnapshotsRequest.safeParse(request);
|
||||||
|
|
||||||
|
if (!parsed.success) {
|
||||||
|
const errorMessage = parsed.error.issues.map((issue) => issue.message).join(", ");
|
||||||
|
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return baseApiService.get(
|
||||||
|
`/api/v1/searchspaces/${parsed.data.search_space_id}/snapshots`,
|
||||||
|
listSearchSpaceSnapshotsResponse
|
||||||
|
);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export const chatThreadsApiService = new ChatThreadsApiService();
|
export const chatThreadsApiService = new ChatThreadsApiService();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue