2
0
Files
bot/apps/builder/services/workspace/member.ts

42 lines
1.1 KiB
TypeScript
Raw Normal View History

2022-05-13 15:22:44 -07:00
import { MemberInWorkspace, WorkspaceInvitation } from 'db'
import { fetcher } from 'services/utils'
import useSWR from 'swr'
import { sendRequest } from 'utils'
export type Member = MemberInWorkspace & {
name: string | null
image: string | null
email: string | null
}
export const useMembers = ({ workspaceId }: { workspaceId?: string }) => {
const { data, error, mutate } = useSWR<
{ members: Member[]; invitations: WorkspaceInvitation[] },
Error
>(workspaceId ? `/api/workspaces/${workspaceId}/members` : null, fetcher, {
dedupingInterval: process.env.NEXT_PUBLIC_E2E_TEST ? 0 : undefined,
})
return {
members: data?.members,
invitations: data?.invitations,
isLoading: !error && !data,
mutate,
}
}
export const updateMember = (
workspaceId: string,
member: Partial<MemberInWorkspace>
) =>
sendRequest({
method: 'PATCH',
url: `/api/workspaces/${workspaceId}/members/${member.userId}`,
body: member,
})
export const deleteMember = (workspaceId: string, userId: string) =>
sendRequest({
method: 'DELETE',
url: `/api/workspaces/${workspaceId}/members/${userId}`,
})