From fa466a4f64020f2f1d12bab1faa3ef268d125631 Mon Sep 17 00:00:00 2001 From: martmull Date: Thu, 8 Feb 2024 12:35:32 +0100 Subject: [PATCH] Rename createWorkspaceSchema to activateWorkspace --- .../twenty-front/src/generated/graphql.tsx | 72 +++++++------------ .../mutations/createWorkspaceSchema.ts | 6 +- .../src/pages/auth/CreateWorkspace.tsx | 8 +-- .../dtos/activate-workspace-input.ts | 11 +++ .../dtos/create-workspace-schema-input.ts | 31 -------- .../workspace/services/workspace.service.ts | 4 +- .../src/core/workspace/workspace.resolver.ts | 8 +-- 7 files changed, 50 insertions(+), 90 deletions(-) create mode 100644 packages/twenty-server/src/core/workspace/dtos/activate-workspace-input.ts delete mode 100644 packages/twenty-server/src/core/workspace/dtos/create-workspace-schema-input.ts diff --git a/packages/twenty-front/src/generated/graphql.tsx b/packages/twenty-front/src/generated/graphql.tsx index 88e580e7d8b..2b2b4cb5342 100644 --- a/packages/twenty-front/src/generated/graphql.tsx +++ b/packages/twenty-front/src/generated/graphql.tsx @@ -19,6 +19,10 @@ export type Scalars = { Upload: any; }; +export type ActivateWorkspaceInput = { + displayName?: InputMaybe; +}; + export type Analytics = { __typename?: 'Analytics'; /** Boolean that confirms query was dispatched */ @@ -77,23 +81,6 @@ export type ClientConfig = { telemetry: Telemetry; }; -export type CreateOneRefreshTokenInput = { - /** The record to create */ - refreshToken: CreateRefreshTokenInput; -}; - -export type CreateRefreshTokenInput = { - expiresAt: Scalars['DateTime']; -}; - -export type CreateWorkspaceSchemaInput = { - allowImpersonation?: InputMaybe; - displayName?: InputMaybe; - domainName?: InputMaybe; - inviteHash?: InputMaybe; - logo?: InputMaybe; -}; - export type CursorPaging = { /** Paginate after opaque cursor */ after?: InputMaybe; @@ -231,11 +218,11 @@ export type LoginToken = { export type Mutation = { __typename?: 'Mutation'; + activateWorkspace: Workspace; challenge: LoginToken; createEvent: Analytics; createOneObject: Object; createOneRefreshToken: RefreshToken; - createWorkspaceSchema: Workspace; deleteCurrentWorkspace: Workspace; deleteOneObject: Object; deleteUser: User; @@ -256,6 +243,11 @@ export type Mutation = { }; +export type MutationActivateWorkspaceArgs = { + data: ActivateWorkspaceInput; +}; + + export type MutationChallengeArgs = { email: Scalars['String']; password: Scalars['String']; @@ -268,16 +260,6 @@ export type MutationCreateEventArgs = { }; -export type MutationCreateOneRefreshTokenArgs = { - input: CreateOneRefreshTokenInput; -}; - - -export type MutationCreateWorkspaceSchemaArgs = { - data: CreateWorkspaceSchemaInput; -}; - - export type MutationDeleteOneObjectArgs = { input: DeleteOneObjectInput; }; @@ -750,8 +732,6 @@ export type GetTimelineThreadsFromPersonIdQuery = { __typename?: 'Query', getTim export type TimelineThreadFragment = { __typename?: 'TimelineThread', id: string, subject: string, lastMessageReceivedAt: string }; -export type TimelineThreadFragment = { __typename?: 'TimelineThread', id: string, subject: string, lastMessageReceivedAt: string }; - export type CreateEventMutationVariables = Exact<{ type: Scalars['String']; data: Scalars['JSON']; @@ -882,12 +862,12 @@ export type GetCurrentUserQueryVariables = Exact<{ [key: string]: never; }>; export type GetCurrentUserQuery = { __typename?: 'Query', currentUser: { __typename?: 'User', id: string, firstName: string, lastName: string, email: string, canImpersonate: boolean, supportUserHash?: string | null, workspaceMember?: { __typename?: 'WorkspaceMember', id: string, colorScheme: string, avatarUrl?: string | null, locale: string, name: { __typename?: 'FullName', firstName: string, lastName: string } } | null, defaultWorkspace: { __typename?: 'Workspace', id: string, displayName?: string | null, logo?: string | null, domainName?: string | null, inviteHash?: string | null, allowImpersonation: boolean, subscriptionStatus: string, featureFlags?: Array<{ __typename?: 'FeatureFlag', id: string, key: string, value: boolean, workspaceId: string }> | null } } }; -export type CreateWorkspaceSchemaMutationVariables = Exact<{ - input: CreateWorkspaceSchemaInput; +export type ActivateWorkspaceMutationVariables = Exact<{ + input: ActivateWorkspaceInput; }>; -export type CreateWorkspaceSchemaMutation = { __typename?: 'Mutation', createWorkspaceSchema: { __typename?: 'Workspace', id: string } }; +export type ActivateWorkspaceMutation = { __typename?: 'Mutation', activateWorkspace: { __typename?: 'Workspace', id: string } }; export type DeleteCurrentWorkspaceMutationVariables = Exact<{ [key: string]: never; }>; @@ -1770,39 +1750,39 @@ export function useGetCurrentUserLazyQuery(baseOptions?: Apollo.LazyQueryHookOpt export type GetCurrentUserQueryHookResult = ReturnType; export type GetCurrentUserLazyQueryHookResult = ReturnType; export type GetCurrentUserQueryResult = Apollo.QueryResult; -export const CreateWorkspaceSchemaDocument = gql` - mutation CreateWorkspaceSchema($input: CreateWorkspaceSchemaInput!) { - createWorkspaceSchema(data: $input) { +export const ActivateWorkspaceDocument = gql` + mutation ActivateWorkspace($input: ActivateWorkspaceInput!) { + activateWorkspace(data: $input) { id } } `; -export type CreateWorkspaceSchemaMutationFn = Apollo.MutationFunction; +export type ActivateWorkspaceMutationFn = Apollo.MutationFunction; /** - * __useCreateWorkspaceSchemaMutation__ + * __useActivateWorkspaceMutation__ * - * To run a mutation, you first call `useCreateWorkspaceSchemaMutation` within a React component and pass it any options that fit your needs. - * When your component renders, `useCreateWorkspaceSchemaMutation` returns a tuple that includes: + * To run a mutation, you first call `useActivateWorkspaceMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useActivateWorkspaceMutation` returns a tuple that includes: * - A mutate function that you can call at any time to execute the mutation * - An object with fields that represent the current status of the mutation's execution * * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; * * @example - * const [createWorkspaceSchemaMutation, { data, loading, error }] = useCreateWorkspaceSchemaMutation({ + * const [activateWorkspaceMutation, { data, loading, error }] = useActivateWorkspaceMutation({ * variables: { * input: // value for 'input' * }, * }); */ -export function useCreateWorkspaceSchemaMutation(baseOptions?: Apollo.MutationHookOptions) { +export function useActivateWorkspaceMutation(baseOptions?: Apollo.MutationHookOptions) { const options = {...defaultOptions, ...baseOptions} - return Apollo.useMutation(CreateWorkspaceSchemaDocument, options); + return Apollo.useMutation(ActivateWorkspaceDocument, options); } -export type CreateWorkspaceSchemaMutationHookResult = ReturnType; -export type CreateWorkspaceSchemaMutationResult = Apollo.MutationResult; -export type CreateWorkspaceSchemaMutationOptions = Apollo.BaseMutationOptions; +export type ActivateWorkspaceMutationHookResult = ReturnType; +export type ActivateWorkspaceMutationResult = Apollo.MutationResult; +export type ActivateWorkspaceMutationOptions = Apollo.BaseMutationOptions; export const DeleteCurrentWorkspaceDocument = gql` mutation DeleteCurrentWorkspace { deleteCurrentWorkspace { diff --git a/packages/twenty-front/src/modules/workspace/graphql/mutations/createWorkspaceSchema.ts b/packages/twenty-front/src/modules/workspace/graphql/mutations/createWorkspaceSchema.ts index 68b7d0deb47..b116a298a62 100644 --- a/packages/twenty-front/src/modules/workspace/graphql/mutations/createWorkspaceSchema.ts +++ b/packages/twenty-front/src/modules/workspace/graphql/mutations/createWorkspaceSchema.ts @@ -1,8 +1,8 @@ import { gql } from '@apollo/client'; -export const CREATE_WORKSPACE_SCHEMA = gql` - mutation CreateWorkspaceSchema($input: CreateWorkspaceSchemaInput!) { - createWorkspaceSchema(data: $input) { +export const ACTIVATE_WORKSPACE = gql` + mutation ActivateWorkspace($input: ActivateWorkspaceInput!) { + activateWorkspace(data: $input) { id } } diff --git a/packages/twenty-front/src/pages/auth/CreateWorkspace.tsx b/packages/twenty-front/src/pages/auth/CreateWorkspace.tsx index 570b54380ec..b0d33d85b0f 100644 --- a/packages/twenty-front/src/pages/auth/CreateWorkspace.tsx +++ b/packages/twenty-front/src/pages/auth/CreateWorkspace.tsx @@ -20,7 +20,7 @@ import { MainButton } from '@/ui/input/button/components/MainButton'; import { TextInput } from '@/ui/input/components/TextInput'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { GET_CURRENT_USER } from '@/users/graphql/queries/getCurrentUser'; -import { useCreateWorkspaceSchemaMutation } from '~/generated/graphql'; +import { useActivateWorkspaceMutation } from '~/generated/graphql'; const StyledContentContainer = styled.div` width: 100%; @@ -49,7 +49,7 @@ export const CreateWorkspace = () => { const { enqueueSnackBar } = useSnackBar(); const onboardingStatus = useOnboardingStatus(); - const [createWorkspaceSchema] = useCreateWorkspaceSchemaMutation(); + const [activateWorkspace] = useActivateWorkspaceMutation(); const apolloMetadataClient = useApolloMetadataClient(); // Form @@ -69,7 +69,7 @@ export const CreateWorkspace = () => { const onSubmit: SubmitHandler
= useCallback( async (data) => { try { - const result = await createWorkspaceSchema({ + const result = await activateWorkspace({ variables: { input: { displayName: data.name, @@ -95,7 +95,7 @@ export const CreateWorkspace = () => { }); } }, - [enqueueSnackBar, navigate, apolloMetadataClient, createWorkspaceSchema], + [enqueueSnackBar, navigate, apolloMetadataClient, activateWorkspace], ); const handleKeyDown = (event: React.KeyboardEvent) => { diff --git a/packages/twenty-server/src/core/workspace/dtos/activate-workspace-input.ts b/packages/twenty-server/src/core/workspace/dtos/activate-workspace-input.ts new file mode 100644 index 00000000000..563203c9f27 --- /dev/null +++ b/packages/twenty-server/src/core/workspace/dtos/activate-workspace-input.ts @@ -0,0 +1,11 @@ +import { Field, InputType } from '@nestjs/graphql'; + +import { IsOptional, IsString } from 'class-validator'; + +@InputType() +export class ActivateWorkspaceInput { + @Field({ nullable: true }) + @IsString() + @IsOptional() + displayName?: string; +} diff --git a/packages/twenty-server/src/core/workspace/dtos/create-workspace-schema-input.ts b/packages/twenty-server/src/core/workspace/dtos/create-workspace-schema-input.ts deleted file mode 100644 index 9e12039190f..00000000000 --- a/packages/twenty-server/src/core/workspace/dtos/create-workspace-schema-input.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Field, InputType } from '@nestjs/graphql'; - -import { IsBoolean, IsOptional, IsString } from 'class-validator'; - -@InputType() -export class CreateWorkspaceSchemaInput { - @Field({ nullable: true }) - @IsString() - @IsOptional() - domainName?: string; - - @Field({ nullable: true }) - @IsString() - @IsOptional() - displayName?: string; - - @Field({ nullable: true }) - @IsString() - @IsOptional() - logo?: string; - - @Field({ nullable: true }) - @IsString() - @IsOptional() - inviteHash?: string; - - @Field({ nullable: true }) - @IsBoolean() - @IsOptional() - allowImpersonation?: boolean; -} diff --git a/packages/twenty-server/src/core/workspace/services/workspace.service.ts b/packages/twenty-server/src/core/workspace/services/workspace.service.ts index fa1136e1fdb..0c4a8f6eb3f 100644 --- a/packages/twenty-server/src/core/workspace/services/workspace.service.ts +++ b/packages/twenty-server/src/core/workspace/services/workspace.service.ts @@ -10,7 +10,7 @@ import { WorkspaceManagerService } from 'src/workspace/workspace-manager/workspa import { Workspace } from 'src/core/workspace/workspace.entity'; import { User } from 'src/core/user/user.entity'; import { UserService } from 'src/core/user/services/user.service'; -import { CreateWorkspaceSchemaInput } from 'src/core/workspace/dtos/create-workspace-schema-input'; +import { ActivateWorkspaceInput } from 'src/core/workspace/dtos/activate-workspace-input'; export class WorkspaceService extends TypeOrmQueryService { constructor( @@ -22,7 +22,7 @@ export class WorkspaceService extends TypeOrmQueryService { super(workspaceRepository); } - async createWorkspaceSchema(user: User, data: CreateWorkspaceSchemaInput) { + async activateWorkspace(user: User, data: ActivateWorkspaceInput) { if (!data.displayName || !data.displayName.length) { throw new BadRequestException("'displayName' not provided"); } diff --git a/packages/twenty-server/src/core/workspace/workspace.resolver.ts b/packages/twenty-server/src/core/workspace/workspace.resolver.ts index 30655587561..4bff0225992 100644 --- a/packages/twenty-server/src/core/workspace/workspace.resolver.ts +++ b/packages/twenty-server/src/core/workspace/workspace.resolver.ts @@ -14,7 +14,7 @@ import { UpdateWorkspaceInput } from 'src/core/workspace/dtos/update-workspace-i import { EnvironmentService } from 'src/integrations/environment/environment.service'; import { User } from 'src/core/user/user.entity'; import { AuthUser } from 'src/decorators/auth/auth-user.decorator'; -import { CreateWorkspaceSchemaInput } from 'src/core/workspace/dtos/create-workspace-schema-input'; +import { ActivateWorkspaceInput } from 'src/core/workspace/dtos/activate-workspace-input'; import { Workspace } from './workspace.entity'; @@ -40,11 +40,11 @@ export class WorkspaceResolver { @Mutation(() => Workspace) @UseGuards(JwtAuthGuard) - async createWorkspaceSchema( - @Args('data') data: CreateWorkspaceSchemaInput, + async activateWorkspace( + @Args('data') data: ActivateWorkspaceInput, @AuthUser() user: User, ) { - return await this.workspaceService.createWorkspaceSchema(user, data); + return await this.workspaceService.activateWorkspace(user, data); } @Mutation(() => Workspace)