Feat: Request to join workspace (#3871)

This commit is contained in:
Mike
2025-01-24 14:05:53 +01:00
committed by GitHub
parent 7343ed6ba1
commit e798fc4e8a
19 changed files with 521 additions and 159 deletions
@@ -21,6 +21,8 @@ import {
import { Roles } from '@speckle/shared'
import { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
import { userEmailsCompliantWithWorkspaceDomains } from '@/modules/workspaces/domain/logic'
import { EventBus } from '@/modules/shared/services/eventBus'
import { WorkspaceEvents } from '@/modules/workspacesCore/domain/events'
export const dismissWorkspaceJoinRequestFactory =
({
@@ -104,7 +106,8 @@ export const approveWorkspaceJoinRequestFactory =
getUserById,
getWorkspace,
getWorkspaceJoinRequest,
upsertWorkspaceRole
upsertWorkspaceRole,
emit
}: {
updateWorkspaceJoinRequestStatus: UpdateWorkspaceJoinRequestStatus
sendWorkspaceJoinRequestApprovedEmail: SendWorkspaceJoinRequestApprovedEmail
@@ -112,6 +115,7 @@ export const approveWorkspaceJoinRequestFactory =
getWorkspace: GetWorkspace
getWorkspaceJoinRequest: GetWorkspaceJoinRequest
upsertWorkspaceRole: UpsertWorkspaceRole
emit: EventBus['emit']
}) =>
async ({ userId, workspaceId }: { userId: string; workspaceId: string }) => {
const requester = await getUserById(userId)
@@ -142,6 +146,8 @@ export const approveWorkspaceJoinRequestFactory =
const role = Roles.Workspace.Member
await upsertWorkspaceRole({ userId, workspaceId, role, createdAt: new Date() })
await emit({ eventName: WorkspaceEvents.Updated, payload: { workspace } })
await sendWorkspaceJoinRequestApprovedEmail({
workspace,
requester