mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-25 16:56:22 +02:00
34 lines
982 B
TypeScript
34 lines
982 B
TypeScript
|
|
import {
|
||
|
|
type TogglePublicShareRequest,
|
||
|
|
type TogglePublicShareResponse,
|
||
|
|
togglePublicShareRequest,
|
||
|
|
togglePublicShareResponse,
|
||
|
|
} from "@/contracts/types/chat-threads.types";
|
||
|
|
import { ValidationError } from "../error";
|
||
|
|
import { baseApiService } from "./base-api.service";
|
||
|
|
|
||
|
|
class ChatThreadsApiService {
|
||
|
|
/**
|
||
|
|
* Toggle public sharing for a thread.
|
||
|
|
* Requires authentication.
|
||
|
|
*/
|
||
|
|
togglePublicShare = async (
|
||
|
|
request: TogglePublicShareRequest
|
||
|
|
): Promise<TogglePublicShareResponse> => {
|
||
|
|
const parsed = togglePublicShareRequest.safeParse(request);
|
||
|
|
|
||
|
|
if (!parsed.success) {
|
||
|
|
const errorMessage = parsed.error.issues.map((issue) => issue.message).join(", ");
|
||
|
|
throw new ValidationError(`Invalid request: ${errorMessage}`);
|
||
|
|
}
|
||
|
|
|
||
|
|
return baseApiService.patch(
|
||
|
|
`/api/v1/threads/${parsed.data.thread_id}/public-share`,
|
||
|
|
togglePublicShareResponse,
|
||
|
|
{ body: { enabled: parsed.data.enabled } }
|
||
|
|
);
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
export const chatThreadsApiService = new ChatThreadsApiService();
|