Files
tgex-frontend/lib/api/members.ts
2026-02-11 18:46:16 +03:00

48 lines
1.2 KiB
TypeScript

// ============================================================================
// Workspace Members API
// ============================================================================
import { api } from "./client";
import type {
WorkspaceMember,
UpdatePermissionsRequest,
PaginatedResponse,
PaginationParams,
} from "@/lib/types/api";
export const membersApi = {
/**
* Get current user's membership and permissions (any member can access)
*/
getCurrentMember: (workspaceId: string) =>
api.get<WorkspaceMember>(
`/workspaces/${workspaceId}/members/me`
),
/**
* Get list of workspace members (requires ADMIN_FULL)
*/
list: (workspaceId: string, params?: PaginationParams) =>
api.get<PaginatedResponse<WorkspaceMember>>(
`/workspaces/${workspaceId}/members`,
{ params }
),
/**
* Update member permissions
* @param workspaceId - workspace id
* @param workspaceUserId - workspace_user.id (not user.id!)
* @param data - permissions to update
*/
updatePermissions: (
workspaceId: string,
workspaceUserId: string,
data: UpdatePermissionsRequest
) =>
api.put<WorkspaceMember>(
`/workspaces/${workspaceId}/members/${workspaceUserId}/permissions`,
data
),
};