feat(api): add access level to invitation requests
This commit is contained in:
@@ -97,6 +97,7 @@ describe('WorkspaceApiService', () => {
|
|||||||
const response = await createService().inviteToWorkspace({
|
const response = await createService().inviteToWorkspace({
|
||||||
workspaceUuid: 'w-1-2-3',
|
workspaceUuid: 'w-1-2-3',
|
||||||
inviteeEmail: 'test@test.te',
|
inviteeEmail: 'test@test.te',
|
||||||
|
accessLevel: 'write-and-read',
|
||||||
})
|
})
|
||||||
|
|
||||||
expect(response).toEqual({
|
expect(response).toEqual({
|
||||||
@@ -107,6 +108,7 @@ describe('WorkspaceApiService', () => {
|
|||||||
expect(workspaceServer.inviteToWorkspace).toHaveBeenCalledWith({
|
expect(workspaceServer.inviteToWorkspace).toHaveBeenCalledWith({
|
||||||
workspaceUuid: 'w-1-2-3',
|
workspaceUuid: 'w-1-2-3',
|
||||||
inviteeEmail: 'test@test.te',
|
inviteeEmail: 'test@test.te',
|
||||||
|
accessLevel: 'write-and-read',
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -121,6 +123,7 @@ describe('WorkspaceApiService', () => {
|
|||||||
await service.inviteToWorkspace({
|
await service.inviteToWorkspace({
|
||||||
workspaceUuid: 'w-1-2-3',
|
workspaceUuid: 'w-1-2-3',
|
||||||
inviteeEmail: 'test@test.te',
|
inviteeEmail: 'test@test.te',
|
||||||
|
accessLevel: 'write-and-read',
|
||||||
})
|
})
|
||||||
} catch (caughtError) {
|
} catch (caughtError) {
|
||||||
error = caughtError
|
error = caughtError
|
||||||
@@ -139,6 +142,7 @@ describe('WorkspaceApiService', () => {
|
|||||||
await createService().inviteToWorkspace({
|
await createService().inviteToWorkspace({
|
||||||
workspaceUuid: 'w-1-2-3',
|
workspaceUuid: 'w-1-2-3',
|
||||||
inviteeEmail: 'test@test.te',
|
inviteeEmail: 'test@test.te',
|
||||||
|
accessLevel: 'write-and-read',
|
||||||
})
|
})
|
||||||
} catch (caughtError) {
|
} catch (caughtError) {
|
||||||
error = caughtError
|
error = caughtError
|
||||||
|
|||||||
@@ -56,13 +56,18 @@ export class WorkspaceApiService implements WorkspaceApiServiceInterface {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async inviteToWorkspace(dto: { inviteeEmail: string; workspaceUuid: Uuid }): Promise<WorkspaceInvitationResponse> {
|
async inviteToWorkspace(dto: {
|
||||||
|
inviteeEmail: string
|
||||||
|
workspaceUuid: Uuid
|
||||||
|
accessLevel: string
|
||||||
|
}): Promise<WorkspaceInvitationResponse> {
|
||||||
this.lockOperation(WorkspaceApiOperations.Inviting)
|
this.lockOperation(WorkspaceApiOperations.Inviting)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await this.workspaceServer.inviteToWorkspace({
|
const response = await this.workspaceServer.inviteToWorkspace({
|
||||||
inviteeEmail: dto.inviteeEmail,
|
inviteeEmail: dto.inviteeEmail,
|
||||||
workspaceUuid: dto.workspaceUuid,
|
workspaceUuid: dto.workspaceUuid,
|
||||||
|
accessLevel: dto.accessLevel,
|
||||||
})
|
})
|
||||||
|
|
||||||
this.unlockOperation(WorkspaceApiOperations.Inviting)
|
this.unlockOperation(WorkspaceApiOperations.Inviting)
|
||||||
|
|||||||
@@ -13,7 +13,11 @@ export interface WorkspaceApiServiceInterface {
|
|||||||
publicKey?: string
|
publicKey?: string
|
||||||
workspaceName?: string
|
workspaceName?: string
|
||||||
}): Promise<WorkspaceCreationResponse>
|
}): Promise<WorkspaceCreationResponse>
|
||||||
inviteToWorkspace(dto: { inviteeEmail: string; workspaceUuid: Uuid }): Promise<WorkspaceInvitationResponse>
|
inviteToWorkspace(dto: {
|
||||||
|
inviteeEmail: string
|
||||||
|
workspaceUuid: Uuid
|
||||||
|
accessLevel: string
|
||||||
|
}): Promise<WorkspaceInvitationResponse>
|
||||||
acceptInvite(dto: {
|
acceptInvite(dto: {
|
||||||
inviteUuid: Uuid
|
inviteUuid: Uuid
|
||||||
userUuid: Uuid
|
userUuid: Uuid
|
||||||
|
|||||||
@@ -3,5 +3,6 @@ import { Uuid } from '@standardnotes/common'
|
|||||||
export type WorkspaceInvitationRequestParams = {
|
export type WorkspaceInvitationRequestParams = {
|
||||||
workspaceUuid: Uuid
|
workspaceUuid: Uuid
|
||||||
inviteeEmail: string
|
inviteeEmail: string
|
||||||
|
accessLevel: string
|
||||||
[additionalParam: string]: unknown
|
[additionalParam: string]: unknown
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ describe('WorkspaceServer', () => {
|
|||||||
const response = await createServer().inviteToWorkspace({
|
const response = await createServer().inviteToWorkspace({
|
||||||
inviteeEmail: 'test@test.te',
|
inviteeEmail: 'test@test.te',
|
||||||
workspaceUuid: 'w-1-2-3',
|
workspaceUuid: 'w-1-2-3',
|
||||||
|
accessLevel: 'write-and-read',
|
||||||
})
|
})
|
||||||
|
|
||||||
expect(response).toEqual({
|
expect(response).toEqual({
|
||||||
|
|||||||
@@ -9,7 +9,11 @@ export interface WorkspaceClientInterface {
|
|||||||
publicKey?: string
|
publicKey?: string
|
||||||
workspaceName?: string
|
workspaceName?: string
|
||||||
}): Promise<{ uuid: string } | null>
|
}): Promise<{ uuid: string } | null>
|
||||||
inviteToWorkspace(dto: { inviteeEmail: string; workspaceUuid: Uuid }): Promise<{ uuid: string } | null>
|
inviteToWorkspace(dto: {
|
||||||
|
inviteeEmail: string
|
||||||
|
workspaceUuid: Uuid
|
||||||
|
accessLevel: string
|
||||||
|
}): Promise<{ uuid: string } | null>
|
||||||
acceptInvite(dto: {
|
acceptInvite(dto: {
|
||||||
inviteUuid: Uuid
|
inviteUuid: Uuid
|
||||||
userUuid: Uuid
|
userUuid: Uuid
|
||||||
|
|||||||
@@ -47,7 +47,11 @@ export class WorkspaceManager extends AbstractService implements WorkspaceClient
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async inviteToWorkspace(dto: { inviteeEmail: string; workspaceUuid: Uuid }): Promise<{ uuid: string } | null> {
|
async inviteToWorkspace(dto: {
|
||||||
|
inviteeEmail: string
|
||||||
|
workspaceUuid: Uuid
|
||||||
|
accessLevel: string
|
||||||
|
}): Promise<{ uuid: string } | null> {
|
||||||
try {
|
try {
|
||||||
const result = await this.workspaceApiService.inviteToWorkspace(dto)
|
const result = await this.workspaceApiService.inviteToWorkspace(dto)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user