feat(server): delay subscription after invitation accepted or approved (#11992)

This commit is contained in:
liuyi
2025-04-30 14:27:47 +08:00
committed by GitHub
parent 9a721c65b5
commit 2e1bed061e
49 changed files with 1990 additions and 2694 deletions

View File

@@ -1227,6 +1227,7 @@ export const getWorkspacePageMetaByIdQuery = {
}
}
}`,
deprecations: ["'pageMeta' is deprecated: use [WorkspaceType.doc.meta] instead"],
};
export const getWorkspacePublicByIdQuery = {
@@ -1517,7 +1518,7 @@ export const revokeMemberPermissionMutation = {
id: 'revokeMemberPermissionMutation' as const,
op: 'revokeMemberPermission',
query: `mutation revokeMemberPermission($workspaceId: String!, $userId: String!) {
revoke(workspaceId: $workspaceId, userId: $userId)
revokeMember(workspaceId: $workspaceId, userId: $userId)
}`,
};
@@ -1746,59 +1747,24 @@ export const setEnableUrlPreviewMutation = {
}`,
};
export const inviteByEmailMutation = {
id: 'inviteByEmailMutation' as const,
op: 'inviteByEmail',
query: `mutation inviteByEmail($workspaceId: String!, $email: String!, $sendInviteMail: Boolean) {
invite(
workspaceId: $workspaceId
email: $email
sendInviteMail: $sendInviteMail
)
}`,
};
export const inviteByEmailsMutation = {
id: 'inviteByEmailsMutation' as const,
op: 'inviteByEmails',
query: `mutation inviteByEmails($workspaceId: String!, $emails: [String!]!, $sendInviteMail: Boolean) {
inviteBatch(
workspaceId: $workspaceId
emails: $emails
sendInviteMail: $sendInviteMail
) {
query: `mutation inviteByEmails($workspaceId: String!, $emails: [String!]!) {
inviteMembers(workspaceId: $workspaceId, emails: $emails) {
email
inviteId
sentSuccess
}
}`,
deprecations: ["'sentSuccess' is deprecated: Notification will be sent asynchronously"],
};
export const acceptInviteByInviteIdMutation = {
id: 'acceptInviteByInviteIdMutation' as const,
op: 'acceptInviteByInviteId',
query: `mutation acceptInviteByInviteId($workspaceId: String!, $inviteId: String!, $sendAcceptMail: Boolean) {
acceptInviteById(
workspaceId: $workspaceId
inviteId: $inviteId
sendAcceptMail: $sendAcceptMail
)
}`,
};
export const inviteBatchMutation = {
id: 'inviteBatchMutation' as const,
op: 'inviteBatch',
query: `mutation inviteBatch($workspaceId: String!, $emails: [String!]!, $sendInviteMail: Boolean) {
inviteBatch(
workspaceId: $workspaceId
emails: $emails
sendInviteMail: $sendInviteMail
) {
email
inviteId
sentSuccess
}
query: `mutation acceptInviteByInviteId($workspaceId: String!, $inviteId: String!) {
acceptInviteById(workspaceId: $workspaceId, inviteId: $inviteId)
}`,
};

View File

@@ -1,3 +1,3 @@
mutation revokeMemberPermission($workspaceId: String!, $userId: String!) {
revoke(workspaceId: $workspaceId, userId: $userId)
revokeMember(workspaceId: $workspaceId, userId: $userId)
}

View File

@@ -1,11 +0,0 @@
mutation inviteByEmail(
$workspaceId: String!
$email: String!
$sendInviteMail: Boolean
) {
invite(
workspaceId: $workspaceId
email: $email
sendInviteMail: $sendInviteMail
)
}

View File

@@ -1,12 +1,10 @@
mutation inviteByEmails(
$workspaceId: String!
$emails: [String!]!
$sendInviteMail: Boolean
) {
inviteBatch(
inviteMembers(
workspaceId: $workspaceId
emails: $emails
sendInviteMail: $sendInviteMail
) {
email
inviteId

View File

@@ -1,11 +1,9 @@
mutation acceptInviteByInviteId(
$workspaceId: String!
$inviteId: String!
$sendAcceptMail: Boolean
) {
acceptInviteById(
workspaceId: $workspaceId
inviteId: $inviteId
sendAcceptMail: $sendAcceptMail
)
}

View File

@@ -1,15 +0,0 @@
mutation inviteBatch(
$workspaceId: String!
$emails: [String!]!
$sendInviteMail: Boolean
) {
inviteBatch(
workspaceId: $workspaceId
emails: $emails
sendInviteMail: $sendInviteMail
) {
email
inviteId
sentSuccess
}
}

View File

@@ -536,6 +536,8 @@ export interface DocType {
/** paginated doc granted users list */
grantedUsersList: PaginatedGrantedDocUserType;
id: Scalars['String']['output'];
/** Doc metadata */
meta: WorkspaceDocMeta;
mode: PublicDocMode;
permissions: DocPermissions;
public: Scalars['Boolean']['output'];
@@ -588,6 +590,7 @@ export type ErrorDataUnion =
| MemberNotFoundInSpaceDataType
| MentionUserDocAccessDeniedDataType
| MissingOauthQueryParameterDataType
| NoMoreSeatDataType
| NotInSpaceDataType
| QueryTooLongDataType
| RuntimeConfigNotFoundDataType
@@ -674,6 +677,7 @@ export enum ErrorNames {
INVALID_EMAIL = 'INVALID_EMAIL',
INVALID_EMAIL_TOKEN = 'INVALID_EMAIL_TOKEN',
INVALID_HISTORY_TIMESTAMP = 'INVALID_HISTORY_TIMESTAMP',
INVALID_INVITATION = 'INVALID_INVITATION',
INVALID_LICENSE_SESSION_ID = 'INVALID_LICENSE_SESSION_ID',
INVALID_LICENSE_TO_ACTIVATE = 'INVALID_LICENSE_TO_ACTIVATE',
INVALID_LICENSE_UPDATE_PARAMS = 'INVALID_LICENSE_UPDATE_PARAMS',
@@ -692,10 +696,12 @@ export enum ErrorNames {
MENTION_USER_ONESELF_DENIED = 'MENTION_USER_ONESELF_DENIED',
MISSING_OAUTH_QUERY_PARAMETER = 'MISSING_OAUTH_QUERY_PARAMETER',
NETWORK_ERROR = 'NETWORK_ERROR',
NEW_OWNER_IS_NOT_ACTIVE_MEMBER = 'NEW_OWNER_IS_NOT_ACTIVE_MEMBER',
NOTIFICATION_NOT_FOUND = 'NOTIFICATION_NOT_FOUND',
NOT_FOUND = 'NOT_FOUND',
NOT_IN_SPACE = 'NOT_IN_SPACE',
NO_COPILOT_PROVIDER_AVAILABLE = 'NO_COPILOT_PROVIDER_AVAILABLE',
NO_MORE_SEAT = 'NO_MORE_SEAT',
OAUTH_ACCOUNT_ALREADY_CONNECTED = 'OAUTH_ACCOUNT_ALREADY_CONNECTED',
OAUTH_STATE_EXPIRED = 'OAUTH_STATE_EXPIRED',
OWNER_CAN_NOT_LEAVE_WORKSPACE = 'OWNER_CAN_NOT_LEAVE_WORKSPACE',
@@ -931,19 +937,19 @@ export interface InviteLink {
export interface InviteResult {
__typename?: 'InviteResult';
email: Scalars['String']['output'];
/** Invite error */
error: Maybe<Scalars['JSONObject']['output']>;
/** Invite id, null if invite record create failed */
inviteId: Maybe<Scalars['String']['output']>;
/** Invite email sent success */
/**
* Invite email sent success
* @deprecated Notification will be sent asynchronously
*/
sentSuccess: Scalars['Boolean']['output'];
}
export interface InviteUserType {
__typename?: 'InviteUserType';
/**
* User accepted
* @deprecated Use `status` instead
*/
accepted: Scalars['Boolean']['output'];
/** User avatar url */
avatarUrl: Maybe<Scalars['String']['output']>;
/**
@@ -1145,8 +1151,9 @@ export interface Mutation {
grantMember: Scalars['Boolean']['output'];
/** import users */
importUsers: Array<UserImportResultType>;
invite: Scalars['String']['output'];
/** @deprecated use [inviteMembers] instead */
inviteBatch: Array<InviteResult>;
inviteMembers: Array<InviteResult>;
leaveWorkspace: Scalars['Boolean']['output'];
/** mention user in a doc */
mentionUser: Scalars['ID']['output'];
@@ -1172,9 +1179,11 @@ export interface Mutation {
removeWorkspaceFeature: Scalars['Boolean']['output'];
resumeSubscription: SubscriptionType;
retryAudioTranscription: Maybe<TranscriptionResultType>;
/** @deprecated use [revokeMember] instead */
revoke: Scalars['Boolean']['output'];
revokeDocUserRoles: Scalars['Boolean']['output'];
revokeInviteLink: Scalars['Boolean']['output'];
revokeMember: Scalars['Boolean']['output'];
revokePublicDoc: DocType;
/** @deprecated use revokePublicDoc instead */
revokePublicPage: DocType;
@@ -1214,7 +1223,7 @@ export interface Mutation {
export interface MutationAcceptInviteByIdArgs {
inviteId: Scalars['String']['input'];
sendAcceptMail?: InputMaybe<Scalars['Boolean']['input']>;
workspaceId: Scalars['String']['input'];
workspaceId?: InputMaybe<Scalars['String']['input']>;
}
export interface MutationActivateLicenseArgs {
@@ -1367,16 +1376,14 @@ export interface MutationImportUsersArgs {
input: ImportUsersInput;
}
export interface MutationInviteArgs {
email: Scalars['String']['input'];
permission?: InputMaybe<Permission>;
export interface MutationInviteBatchArgs {
emails: Array<Scalars['String']['input']>;
sendInviteMail?: InputMaybe<Scalars['Boolean']['input']>;
workspaceId: Scalars['String']['input'];
}
export interface MutationInviteBatchArgs {
export interface MutationInviteMembersArgs {
emails: Array<Scalars['String']['input']>;
sendInviteMail?: InputMaybe<Scalars['Boolean']['input']>;
workspaceId: Scalars['String']['input'];
}
@@ -1467,6 +1474,11 @@ export interface MutationRevokeInviteLinkArgs {
workspaceId: Scalars['String']['input'];
}
export interface MutationRevokeMemberArgs {
userId: Scalars['String']['input'];
workspaceId: Scalars['String']['input'];
}
export interface MutationRevokePublicDocArgs {
docId: Scalars['String']['input'];
workspaceId: Scalars['String']['input'];
@@ -1582,6 +1594,11 @@ export interface MutationVerifyEmailArgs {
token: Scalars['String']['input'];
}
export interface NoMoreSeatDataType {
__typename?: 'NoMoreSeatDataType';
spaceId: Scalars['String']['output'];
}
export interface NotInSpaceDataType {
__typename?: 'NotInSpaceDataType';
spaceId: Scalars['String']['output'];
@@ -1729,7 +1746,7 @@ export interface Query {
/** Get current user */
currentUser: Maybe<UserType>;
error: ErrorDataUnion;
/** send workspace invitation */
/** get workspace invitation info */
getInviteInfo: InvitationType;
/**
* Get is admin of workspace
@@ -2226,6 +2243,14 @@ export interface WorkspaceBlobSizes {
size: Scalars['SafeInt']['output'];
}
export interface WorkspaceDocMeta {
__typename?: 'WorkspaceDocMeta';
createdAt: Scalars['DateTime']['output'];
createdBy: Maybe<EditorType>;
updatedAt: Scalars['DateTime']['output'];
updatedBy: Maybe<EditorType>;
}
/** Workspace invite link expire time */
export enum WorkspaceInviteLinkExpireTime {
OneDay = 'OneDay',
@@ -2237,6 +2262,7 @@ export enum WorkspaceInviteLinkExpireTime {
/** Member invite status in workspace */
export enum WorkspaceMemberStatus {
Accepted = 'Accepted',
AllocatingSeat = 'AllocatingSeat',
NeedMoreSeat = 'NeedMoreSeat',
NeedMoreSeatAndReview = 'NeedMoreSeatAndReview',
Pending = 'Pending',
@@ -2248,14 +2274,6 @@ export interface WorkspaceMembersExceedLimitToDowngradeDataType {
limit: Scalars['Int']['output'];
}
export interface WorkspacePageMeta {
__typename?: 'WorkspacePageMeta';
createdAt: Scalars['DateTime']['output'];
createdBy: Maybe<EditorType>;
updatedAt: Scalars['DateTime']['output'];
updatedBy: Maybe<EditorType>;
}
export interface WorkspacePermissionNotFoundDataType {
__typename?: 'WorkspacePermissionNotFoundDataType';
spaceId: Scalars['String']['output'];
@@ -2350,8 +2368,11 @@ export interface WorkspaceType {
members: Array<InviteUserType>;
/** Owner of workspace */
owner: UserType;
/** Cloud page metadata of workspace */
pageMeta: WorkspacePageMeta;
/**
* Cloud page metadata of workspace
* @deprecated use [WorkspaceType.doc.meta] instead
*/
pageMeta: WorkspaceDocMeta;
/** map of action permissions */
permissions: WorkspacePermissions;
/** is Public workspace */
@@ -3815,7 +3836,7 @@ export type GetWorkspacePageMetaByIdQuery = {
workspace: {
__typename?: 'WorkspaceType';
pageMeta: {
__typename?: 'WorkspacePageMeta';
__typename?: 'WorkspaceDocMeta';
createdAt: string;
updatedAt: string;
createdBy: {
@@ -4141,7 +4162,7 @@ export type RevokeMemberPermissionMutationVariables = Exact<{
export type RevokeMemberPermissionMutation = {
__typename?: 'Mutation';
revoke: boolean;
revokeMember: boolean;
};
export type RevokePublicPageMutationVariables = Exact<{
@@ -4387,23 +4408,14 @@ export type SetEnableUrlPreviewMutation = {
updateWorkspace: { __typename?: 'WorkspaceType'; id: string };
};
export type InviteByEmailMutationVariables = Exact<{
workspaceId: Scalars['String']['input'];
email: Scalars['String']['input'];
sendInviteMail?: InputMaybe<Scalars['Boolean']['input']>;
}>;
export type InviteByEmailMutation = { __typename?: 'Mutation'; invite: string };
export type InviteByEmailsMutationVariables = Exact<{
workspaceId: Scalars['String']['input'];
emails: Array<Scalars['String']['input']> | Scalars['String']['input'];
sendInviteMail?: InputMaybe<Scalars['Boolean']['input']>;
}>;
export type InviteByEmailsMutation = {
__typename?: 'Mutation';
inviteBatch: Array<{
inviteMembers: Array<{
__typename?: 'InviteResult';
email: string;
inviteId: string | null;
@@ -4414,7 +4426,6 @@ export type InviteByEmailsMutation = {
export type AcceptInviteByInviteIdMutationVariables = Exact<{
workspaceId: Scalars['String']['input'];
inviteId: Scalars['String']['input'];
sendAcceptMail?: InputMaybe<Scalars['Boolean']['input']>;
}>;
export type AcceptInviteByInviteIdMutation = {
@@ -4422,22 +4433,6 @@ export type AcceptInviteByInviteIdMutation = {
acceptInviteById: boolean;
};
export type InviteBatchMutationVariables = Exact<{
workspaceId: Scalars['String']['input'];
emails: Array<Scalars['String']['input']> | Scalars['String']['input'];
sendInviteMail?: InputMaybe<Scalars['Boolean']['input']>;
}>;
export type InviteBatchMutation = {
__typename?: 'Mutation';
inviteBatch: Array<{
__typename?: 'InviteResult';
email: string;
inviteId: string | null;
sentSuccess: boolean;
}>;
};
export type CreateInviteLinkMutationVariables = Exact<{
workspaceId: Scalars['String']['input'];
expireTime: WorkspaceInviteLinkExpireTime;
@@ -5228,11 +5223,6 @@ export type Mutations =
variables: SetEnableUrlPreviewMutationVariables;
response: SetEnableUrlPreviewMutation;
}
| {
name: 'inviteByEmailMutation';
variables: InviteByEmailMutationVariables;
response: InviteByEmailMutation;
}
| {
name: 'inviteByEmailsMutation';
variables: InviteByEmailsMutationVariables;
@@ -5243,11 +5233,6 @@ export type Mutations =
variables: AcceptInviteByInviteIdMutationVariables;
response: AcceptInviteByInviteIdMutation;
}
| {
name: 'inviteBatchMutation';
variables: InviteBatchMutationVariables;
response: InviteBatchMutation;
}
| {
name: 'createInviteLinkMutation';
variables: CreateInviteLinkMutationVariables;