/
effective_wiki
/
web-client
Обзор
Документация
Войти
/
effective_wiki
/
web-client
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
src/api/workspaces.ts
52 строки
2 KB
Max-Sam231
feat: add workspace crud
12 дек 2025, 14:16
12 дек 2025, 14:16
55f86d2
Код
Авторство
О чём код?
import { apiGet, apiPost, apiPut, apiDelete } from "./utils"; import type { Workspace, CreateWorkspaceRequest, UpdateWorkspaceRequest, AddMemberRequest, WorkspaceListResponse, WorkspaceMember, } from "@/types/workspace-types"; export async function getWorkspaces(userId: string): Promise<WorkspaceListResponse> { return apiGet<WorkspaceListResponse>(`/api/workspaces?userId=${userId}`); } export async function createWorkspace(data: CreateWorkspaceRequest): Promise<Workspace> { return apiPost<Workspace>("/api/workspaces", data); } export async function getWorkspaceById(id: string, userId: string): Promise<Workspace> { return apiGet<Workspace>(`/api/workspaces/${id}?userId=${userId}`); } export async function updateWorkspace(data: UpdateWorkspaceRequest): Promise<Workspace> { const { id, ...body } = data; return apiPut<Workspace>(`/api/workspaces/${id}`, body); } export async function deleteWorkspace(id: string, userId: string): Promise<void> { return apiDelete<void>(`/api/workspaces/${id}?userId=${userId}`); } export async function getWorkspaceMembers( id: string, userId: string ): Promise<{ members: WorkspaceMember[] }> { return apiGet<{ members: WorkspaceMember[] }>(`/api/workspaces/${id}/members?userId=${userId}`); } export async function addWorkspaceMember( id: string, data: AddMemberRequest ): Promise<WorkspaceMember> { return apiPost<WorkspaceMember>(`/api/workspaces/${id}/members`, data); } export async function removeWorkspaceMember( id: string, userId: string, currentUserId: string ): Promise<void> { return apiDelete<void>(`/api/workspaces/${id}/members/${userId}?currentUserId=${currentUserId}`); }