Migrate domainName field from text type to links type (#6410)

Closes #5759.
This commit is contained in:
Marie
2024-07-30 11:47:37 +02:00
committed by GitHub
parent fb0fd99a38
commit 8e35edad30
44 changed files with 888 additions and 217 deletions

View File

@ -8,7 +8,9 @@ import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metad
import { stringifyWithoutKeyQuote } from 'src/engine/api/graphql/workspace-query-builder/utils/stringify-without-key-quote.util';
import { WorkspaceQueryRunnerService } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-runner.service';
import { IntelligenceService } from 'src/engine/core-modules/quick-actions/intelligence.service';
import { getCompanyNameFromDomainName } from 'src/modules/contact-creation-manager/utils/get-company-name-from-domain-name.util';
import { capitalize } from 'src/utils/capitalize';
import { getCompanyDomainName } from 'src/utils/getCompanyDomainName';
import { isWorkEmail } from 'src/utils/is-work-email';
@Injectable()
@ -159,7 +161,7 @@ export class QuickActionsService {
}
const enrichedData = await this.intelligenceService.enrichCompany(
company.domainName,
getCompanyNameFromDomainName(getCompanyDomainName(company)),
);
await this.workspaceQueryRunnunerService.execute(

View File

@ -1,11 +1,12 @@
import { FieldMetadataDefaultValue } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-default-value.interface';
import { FieldMetadataOptions } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-options.interface';
import { FieldMetadataSettings } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata-settings.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { generateDefaultValue } from 'src/engine/metadata-modules/field-metadata/utils/generate-default-value';
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
import { metadataArgsStorage } from 'src/engine/twenty-orm/storage/metadata-args.storage';
import { TypedReflect } from 'src/utils/typed-reflect';
import { generateDefaultValue } from 'src/engine/metadata-modules/field-metadata/utils/generate-default-value';
export interface WorkspaceFieldOptions<
T extends FieldMetadataType | 'default',
@ -17,6 +18,7 @@ export interface WorkspaceFieldOptions<
icon?: string;
defaultValue?: FieldMetadataDefaultValue<T>;
options?: FieldMetadataOptions<T>;
settings?: FieldMetadataSettings<T>;
}
export function WorkspaceField<T extends FieldMetadataType>(

View File

@ -11,7 +11,7 @@ export const companyPrefillDemoData = async (
.insert()
.into(`${schemaName}.company`, [
'name',
'domainName',
'domainNamePrimaryLinkUrl',
'addressAddressCity',
'employees',
'linkedinLinkPrimaryLinkUrl',

View File

@ -9,7 +9,7 @@ export const companyPrefillData = async (
.insert()
.into(`${schemaName}.company`, [
'name',
'domainName',
'domainNamePrimaryLinkUrl',
'addressAddressStreet1',
'addressAddressStreet2',
'addressAddressCity',
@ -23,7 +23,7 @@ export const companyPrefillData = async (
.values([
{
name: 'Airbnb',
domainName: 'airbnb.com',
domainNamePrimaryLinkUrl: 'https://airbnb.com',
addressAddressStreet1: '888 Brannan St',
addressAddressStreet2: null,
addressAddressCity: 'San Francisco',
@ -35,7 +35,7 @@ export const companyPrefillData = async (
},
{
name: 'Qonto',
domainName: 'qonto.com',
domainNamePrimaryLinkUrl: 'https://qonto.com',
addressAddressStreet1: '18 rue de navarrin',
addressAddressStreet2: null,
addressAddressCity: 'Paris',
@ -47,7 +47,7 @@ export const companyPrefillData = async (
},
{
name: 'Stripe',
domainName: 'stripe.com',
domainNamePrimaryLinkUrl: 'https://stripe.com',
addressAddressStreet1: 'Eutaw Street',
addressAddressStreet2: null,
addressAddressCity: 'Dublin',
@ -59,7 +59,7 @@ export const companyPrefillData = async (
},
{
name: 'Figma',
domainName: 'figma.com',
domainNamePrimaryLinkUrl: 'https://figma.com',
addressAddressStreet1: '760 Market St',
addressAddressStreet2: 'Floor 10',
addressAddressCity: 'San Francisco',
@ -71,7 +71,7 @@ export const companyPrefillData = async (
},
{
name: 'Notion',
domainName: 'notion.com',
domainNamePrimaryLinkUrl: 'https://notion.com',
addressAddressStreet1: '2300 Harrison St',
addressAddressStreet2: null,
addressAddressCity: 'San Francisco',

View File

@ -51,10 +51,15 @@ export class SyncWorkspaceMetadataCommand extends CommandRunner {
);
}
let count = 1;
const errorsDuringSync: string[] = [];
for (const workspaceId of workspaceIds) {
this.logger.log(`Running workspace sync for workspace: ${workspaceId}`);
this.logger.log(
`Running workspace sync for workspace: ${workspaceId} (${count} out of ${workspaceIds.length})`,
);
count++;
try {
const issues =
await this.workspaceHealthService.healthCheck(workspaceId);