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

@ -20,6 +20,7 @@ export class CompanyRepository {
public async getExistingCompaniesByDomainNames(
domainNames: string[],
workspaceId: string,
companyDomainNameColumnName: string,
transactionManager?: EntityManager,
): Promise<{ id: string; domainName: string }[]> {
const dataSourceSchema =
@ -27,7 +28,7 @@ export class CompanyRepository {
const existingCompanies =
await this.workspaceDataSourceService.executeRawQuery(
`SELECT id, "domainName" FROM ${dataSourceSchema}.company WHERE "domainName" = ANY($1)`,
`SELECT id, "${companyDomainNameColumnName}" AS "domainName" FROM ${dataSourceSchema}.company WHERE REGEXP_REPLACE("${companyDomainNameColumnName}", '^https?://', '') = ANY($1)`,
[domainNames],
workspaceId,
transactionManager,
@ -56,6 +57,7 @@ export class CompanyRepository {
public async createCompany(
workspaceId: string,
companyToCreate: CompanyToCreate,
companyDomainNameColumnName,
transactionManager?: EntityManager,
): Promise<void> {
const dataSourceSchema =
@ -67,11 +69,11 @@ export class CompanyRepository {
);
await this.workspaceDataSourceService.executeRawQuery(
`INSERT INTO ${dataSourceSchema}.company (id, "domainName", name, "addressAddressCity", position)
`INSERT INTO ${dataSourceSchema}.company (id, "${companyDomainNameColumnName}", name, "addressAddressCity", position)
VALUES ($1, $2, $3, $4, $5)`,
[
companyToCreate.id,
companyToCreate.domainName,
'https://' + companyToCreate.domainName,
companyToCreate.name ?? '',
companyToCreate.city ?? '',
lastCompanyPosition + 1,

View File

@ -48,7 +48,7 @@ export class CompanyWorkspaceEntity extends BaseWorkspaceEntity {
@WorkspaceField({
standardId: COMPANY_STANDARD_FIELD_IDS.domainName,
type: FieldMetadataType.TEXT,
type: FieldMetadataType.LINKS,
label: 'Domain Name',
description:
'The company website URL. We use this url to fetch the company icon',