42 lines
1000 B
TypeScript
42 lines
1000 B
TypeScript
// ============================================================================
|
|
// Workspaces API
|
|
// ============================================================================
|
|
|
|
import { api } from "./client";
|
|
import type {
|
|
Workspace,
|
|
WorkspaceCreateRequest,
|
|
WorkspaceUpdateRequest,
|
|
PaginatedResponse,
|
|
PaginationParams,
|
|
} from "@/lib/types/api";
|
|
|
|
const BASE_PATH = "/workspaces";
|
|
|
|
export const workspacesApi = {
|
|
/**
|
|
* Get list of workspaces for current user
|
|
*/
|
|
list: (params?: PaginationParams) =>
|
|
api.get<PaginatedResponse<Workspace>>(BASE_PATH, { params }),
|
|
|
|
/**
|
|
* Create new workspace
|
|
*/
|
|
create: (data: WorkspaceCreateRequest) =>
|
|
api.post<Workspace>(BASE_PATH, data),
|
|
|
|
/**
|
|
* Update workspace
|
|
*/
|
|
update: (workspaceId: string, data: WorkspaceUpdateRequest) =>
|
|
api.patch<Workspace>(`${BASE_PATH}/${workspaceId}`, data),
|
|
|
|
/**
|
|
* Delete workspace
|
|
*/
|
|
delete: (workspaceId: string) =>
|
|
api.delete<void>(`${BASE_PATH}/${workspaceId}`),
|
|
};
|
|
|