From 1eb9c582f36e55f56e19b5d56c060f0993eea8ae Mon Sep 17 00:00:00 2001 From: Weiko Date: Wed, 26 Jun 2024 18:00:25 +0200 Subject: [PATCH] Rename mutation maximum affected records (#6042) As per my last comment on https://github.com/twentyhq/twenty/pull/6039, we decided to rename this var --- packages/twenty-front/src/generated/graphql.tsx | 6 +++--- .../components/ClientConfigProviderEffect.tsx | 5 +++++ .../client-config/graphql/queries/getClientConfig.ts | 2 +- .../src/modules/client-config/states/apiConfigState.ts | 8 ++++++++ packages/twenty-server/.env.example | 2 +- packages/twenty-server/.env.test | 2 +- .../workspace-query-runner.service.ts | 6 +++--- .../core-modules/client-config/client-config.entity.ts | 2 +- .../core-modules/client-config/client-config.resolver.ts | 4 ++-- .../integrations/environment/environment-variables.ts | 2 +- 10 files changed, 26 insertions(+), 13 deletions(-) create mode 100644 packages/twenty-front/src/modules/client-config/states/apiConfigState.ts diff --git a/packages/twenty-front/src/generated/graphql.tsx b/packages/twenty-front/src/generated/graphql.tsx index b9b22f8f66..6b9b154ce7 100644 --- a/packages/twenty-front/src/generated/graphql.tsx +++ b/packages/twenty-front/src/generated/graphql.tsx @@ -32,7 +32,7 @@ export type Analytics = { export type ApiConfig = { __typename?: 'ApiConfig'; - mutationMaximumRecordAffected: Scalars['Float']; + mutationMaximumAffectedRecords: Scalars['Float']; }; export type ApiKeyToken = { @@ -1235,7 +1235,7 @@ export type UpdateBillingSubscriptionMutation = { __typename?: 'Mutation', updat export type GetClientConfigQueryVariables = Exact<{ [key: string]: never; }>; -export type GetClientConfigQuery = { __typename?: 'Query', clientConfig: { __typename?: 'ClientConfig', signInPrefilled: boolean, signUpDisabled: boolean, debugMode: boolean, chromeExtensionId?: string | null, authProviders: { __typename?: 'AuthProviders', google: boolean, password: boolean, microsoft: boolean }, billing: { __typename?: 'Billing', isBillingEnabled: boolean, billingUrl?: string | null, billingFreeTrialDurationInDays?: number | null }, telemetry: { __typename?: 'Telemetry', enabled: boolean }, support: { __typename?: 'Support', supportDriver: string, supportFrontChatId?: string | null }, sentry: { __typename?: 'Sentry', dsn?: string | null, environment?: string | null, release?: string | null }, captcha: { __typename?: 'Captcha', provider?: CaptchaDriverType | null, siteKey?: string | null }, api: { __typename?: 'ApiConfig', mutationMaximumRecordAffected: number } } }; +export type GetClientConfigQuery = { __typename?: 'Query', clientConfig: { __typename?: 'ClientConfig', signInPrefilled: boolean, signUpDisabled: boolean, debugMode: boolean, chromeExtensionId?: string | null, authProviders: { __typename?: 'AuthProviders', google: boolean, password: boolean, microsoft: boolean }, billing: { __typename?: 'Billing', isBillingEnabled: boolean, billingUrl?: string | null, billingFreeTrialDurationInDays?: number | null }, telemetry: { __typename?: 'Telemetry', enabled: boolean }, support: { __typename?: 'Support', supportDriver: string, supportFrontChatId?: string | null }, sentry: { __typename?: 'Sentry', dsn?: string | null, environment?: string | null, release?: string | null }, captcha: { __typename?: 'Captcha', provider?: CaptchaDriverType | null, siteKey?: string | null }, api: { __typename?: 'ApiConfig', mutationMaximumAffectedRecords: number } } }; export type SkipSyncEmailOnboardingStepMutationVariables = Exact<{ [key: string]: never; }>; @@ -2362,7 +2362,7 @@ export const GetClientConfigDocument = gql` siteKey } api { - mutationMaximumRecordAffected + mutationMaximumAffectedRecords } chromeExtensionId } diff --git a/packages/twenty-front/src/modules/client-config/components/ClientConfigProviderEffect.tsx b/packages/twenty-front/src/modules/client-config/components/ClientConfigProviderEffect.tsx index af45dc0fd3..8bec4cc7db 100644 --- a/packages/twenty-front/src/modules/client-config/components/ClientConfigProviderEffect.tsx +++ b/packages/twenty-front/src/modules/client-config/components/ClientConfigProviderEffect.tsx @@ -1,6 +1,7 @@ import { useEffect } from 'react'; import { useRecoilState, useSetRecoilState } from 'recoil'; +import { apiConfigState } from '@/client-config/states/apiConfigState'; import { authProvidersState } from '@/client-config/states/authProvidersState'; import { billingState } from '@/client-config/states/billingState'; import { captchaProviderState } from '@/client-config/states/captchaProviderState'; @@ -35,6 +36,8 @@ export const ClientConfigProviderEffect = () => { const setChromeExtensionId = useSetRecoilState(chromeExtensionIdState); + const setApiConfig = useSetRecoilState(apiConfigState); + const { data, loading } = useGetClientConfigQuery({ skip: isClientConfigLoaded, }); @@ -68,6 +71,7 @@ export const ClientConfigProviderEffect = () => { }); setChromeExtensionId(data?.clientConfig?.chromeExtensionId); + setApiConfig(data?.clientConfig?.api); } }, [ data, @@ -83,6 +87,7 @@ export const ClientConfigProviderEffect = () => { setIsClientConfigLoaded, setCaptchaProvider, setChromeExtensionId, + setApiConfig, ]); return <>; diff --git a/packages/twenty-front/src/modules/client-config/graphql/queries/getClientConfig.ts b/packages/twenty-front/src/modules/client-config/graphql/queries/getClientConfig.ts index a7893a5589..3143bbc5f6 100644 --- a/packages/twenty-front/src/modules/client-config/graphql/queries/getClientConfig.ts +++ b/packages/twenty-front/src/modules/client-config/graphql/queries/getClientConfig.ts @@ -33,7 +33,7 @@ export const GET_CLIENT_CONFIG = gql` siteKey } api { - mutationMaximumRecordAffected + mutationMaximumAffectedRecords } chromeExtensionId } diff --git a/packages/twenty-front/src/modules/client-config/states/apiConfigState.ts b/packages/twenty-front/src/modules/client-config/states/apiConfigState.ts new file mode 100644 index 0000000000..9a01493e4f --- /dev/null +++ b/packages/twenty-front/src/modules/client-config/states/apiConfigState.ts @@ -0,0 +1,8 @@ +import { createState } from 'twenty-ui'; + +import { ApiConfig } from '~/generated/graphql'; + +export const apiConfigState = createState({ + key: 'apiConfigState', + defaultValue: null, +}); diff --git a/packages/twenty-server/.env.example b/packages/twenty-server/.env.example index bfe76f8a49..8f4a61ab9e 100644 --- a/packages/twenty-server/.env.example +++ b/packages/twenty-server/.env.example @@ -70,6 +70,6 @@ SIGN_IN_PREFILLED=true # CAPTCHA_SECRET_KEY= # API_RATE_LIMITING_TTL= # API_RATE_LIMITING_LIMIT= -# MUTATION_MAXIMUM_RECORD_AFFECTED=100 +# MUTATION_MAXIMUM_AFFECTED_RECORDS=100 # CHROME_EXTENSION_ID=bggmipldbceihilonnbpgoeclgbkblkp # PG_SSL_ALLOW_SELF_SIGNED=true diff --git a/packages/twenty-server/.env.test b/packages/twenty-server/.env.test index 20bd13ac8b..fc51ab9e1e 100644 --- a/packages/twenty-server/.env.test +++ b/packages/twenty-server/.env.test @@ -23,4 +23,4 @@ FILE_TOKEN_SECRET=secret_file_token # MESSAGING_PROVIDER_GMAIL_ENABLED=false # STORAGE_TYPE=local # STORAGE_LOCAL_PATH=.local-storage -# MUTATION_MAXIMUM_RECORD_AFFECTED=100 +# MUTATION_MAXIMUM_AFFECTED_RECORDS=100 diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/workspace-query-runner.service.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/workspace-query-runner.service.ts index eeb403b49a..1a4c690df9 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/workspace-query-runner.service.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/workspace-query-runner.service.ts @@ -432,7 +432,7 @@ export class WorkspaceQueryRunnerService { args.filter?.id?.in?.forEach((id) => assertIsValidUuid(id)); const maximumRecordAffected = this.environmentService.get( - 'MUTATION_MAXIMUM_RECORD_AFFECTED', + 'MUTATION_MAXIMUM_AFFECTED_RECORDS', ); const query = await this.workspaceQueryBuilderFactory.updateMany(args, { ...options, @@ -484,7 +484,7 @@ export class WorkspaceQueryRunnerService { assertMutationNotOnRemoteObject(objectMetadataItem); const maximumRecordAffected = this.environmentService.get( - 'MUTATION_MAXIMUM_RECORD_AFFECTED', + 'MUTATION_MAXIMUM_AFFECTED_RECORDS', ); const query = await this.workspaceQueryBuilderFactory.deleteMany(args, { ...options, @@ -691,7 +691,7 @@ export class WorkspaceQueryRunnerService { errors, { atMost: this.environmentService.get( - 'MUTATION_MAXIMUM_RECORD_AFFECTED', + 'MUTATION_MAXIMUM_AFFECTED_RECORDS', ), } satisfies PgGraphQLConfig, ); diff --git a/packages/twenty-server/src/engine/core-modules/client-config/client-config.entity.ts b/packages/twenty-server/src/engine/core-modules/client-config/client-config.entity.ts index 96788bef28..478c89da0c 100644 --- a/packages/twenty-server/src/engine/core-modules/client-config/client-config.entity.ts +++ b/packages/twenty-server/src/engine/core-modules/client-config/client-config.entity.ts @@ -68,7 +68,7 @@ class Captcha { @ObjectType() class ApiConfig { @Field(() => Number, { nullable: false }) - mutationMaximumRecordAffected: number; + mutationMaximumAffectedRecords: number; } @ObjectType() diff --git a/packages/twenty-server/src/engine/core-modules/client-config/client-config.resolver.ts b/packages/twenty-server/src/engine/core-modules/client-config/client-config.resolver.ts index 2384e725c2..c8222a3418 100644 --- a/packages/twenty-server/src/engine/core-modules/client-config/client-config.resolver.ts +++ b/packages/twenty-server/src/engine/core-modules/client-config/client-config.resolver.ts @@ -47,8 +47,8 @@ export class ClientConfigResolver { }, chromeExtensionId: this.environmentService.get('CHROME_EXTENSION_ID'), api: { - mutationMaximumRecordAffected: this.environmentService.get( - 'MUTATION_MAXIMUM_RECORD_AFFECTED', + mutationMaximumAffectedRecords: this.environmentService.get( + 'MUTATION_MAXIMUM_AFFECTED_RECORDS', ), }, }; diff --git a/packages/twenty-server/src/engine/integrations/environment/environment-variables.ts b/packages/twenty-server/src/engine/integrations/environment/environment-variables.ts index f1685bab42..7bff532c4c 100644 --- a/packages/twenty-server/src/engine/integrations/environment/environment-variables.ts +++ b/packages/twenty-server/src/engine/integrations/environment/environment-variables.ts @@ -324,7 +324,7 @@ export class EnvironmentVariables { @CastToPositiveNumber() @IsOptional() @IsNumber() - MUTATION_MAXIMUM_RECORD_AFFECTED = 100; + MUTATION_MAXIMUM_AFFECTED_RECORDS = 100; REDIS_HOST = '127.0.0.1';