Remove singular/plural from field-metadata (#2085)

* Remove singular/plural from field-metadata

* revert removing id from create input

* remove console log

* remove console log

* codegen

* missing files

* fix tests
This commit is contained in:
Weiko
2023-10-17 15:21:58 +02:00
committed by GitHub
parent 0d6386bc8d
commit 1344e78acb
32 changed files with 213 additions and 130 deletions

View File

@ -13,22 +13,12 @@ export class CreateFieldInput {
@IsString()
@IsNotEmpty()
@Field()
nameSingular: string;
@IsString()
@IsOptional()
@Field({ nullable: true })
namePlural?: string;
name: string;
@IsString()
@IsNotEmpty()
@Field()
labelSingular: string;
@IsString()
@IsOptional()
@Field({ nullable: true })
labelPlural?: string;
label: string;
// Todo: use a type enum and share with typeorm entity
@IsEnum([

View File

@ -1,28 +1,18 @@
import { Field, InputType } from '@nestjs/graphql';
import { IsBoolean, IsOptional, IsString } from 'class-validator';
import { IsBoolean, IsNotEmpty, IsOptional, IsString } from 'class-validator';
@InputType()
export class UpdateFieldInput {
@IsString()
@IsOptional()
@Field({ nullable: true })
nameSingular?: string;
@IsNotEmpty()
@Field()
name: string;
@IsString()
@IsOptional()
@Field({ nullable: true })
namePlural?: string;
@IsString()
@IsOptional()
@Field({ nullable: true })
labelSingular?: string;
@IsString()
@IsOptional()
@Field({ nullable: true })
labelPlural?: string;
@IsNotEmpty()
@Field()
label: string;
@IsString()
@IsOptional()

View File

@ -38,7 +38,7 @@ export const fieldMetadataAutoResolverOpts: AutoResolverOpts<
update: {
many: { disabled: true },
},
delete: { disabled: true },
delete: { many: { disabled: true } },
guards: [JwtAuthGuard],
},
];

View File

@ -51,20 +51,12 @@ export class FieldMetadata {
type: string;
@Field()
@Column({ nullable: false, name: 'name_singular' })
nameSingular: string;
@Column({ nullable: false })
name: string;
@Field()
@Column({ nullable: true, name: 'name_plural' })
namePlural: string;
@Field()
@Column({ nullable: false, name: 'label_singular' })
labelSingular: string;
@Field()
@Column({ nullable: true, name: 'label_plural' })
labelPlural: string;
@Column({ nullable: false })
label: string;
@Column({ nullable: false, name: 'target_column_map', type: 'jsonb' })
targetColumnMap: FieldMetadataTargetColumnMap;

View File

@ -44,8 +44,7 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadata> {
const fieldAlreadyExists = await this.fieldMetadataRepository.findOne({
where: {
nameSingular: record.nameSingular,
namePlural: record.namePlural,
name: record.name,
objectId: record.objectId,
workspaceId: record.workspaceId,
},

View File

@ -10,6 +10,7 @@ import { AddTargetColumnMap1696409050890 } from './migrations/1696409050890-add-
import { MetadataNameLabelRefactoring1697126636202 } from './migrations/1697126636202-MetadataNameLabelRefactoring';
import { RemoveFieldMetadataPlaceholder1697471445015 } from './migrations/1697471445015-removeFieldMetadataPlaceholder';
import { AddSoftDelete1697474804403 } from './migrations/1697474804403-addSoftDelete';
import { RemoveSingularPluralFromFieldLabelAndName1697534910933 } from './migrations/1697534910933-removeSingularPluralFromFieldLabelAndName';
config();
@ -31,6 +32,7 @@ export const typeORMMetadataModuleOptions: TypeOrmModuleOptions = {
MetadataNameLabelRefactoring1697126636202,
RemoveFieldMetadataPlaceholder1697471445015,
AddSoftDelete1697474804403,
RemoveSingularPluralFromFieldLabelAndName1697534910933,
],
};

View File

@ -116,17 +116,17 @@ export class MigrationRunnerService {
default: 'public.uuid_generate_v4()',
},
{
name: 'created_at',
name: 'createdAt',
type: 'timestamp',
default: 'now()',
},
{
name: 'updated_at',
name: 'updatedAt',
type: 'timestamp',
default: 'now()',
},
{
name: 'deleted_at',
name: 'deletedAt',
type: 'timestamp',
isNullable: true,
},

View File

@ -0,0 +1,49 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class RemoveSingularPluralFromFieldLabelAndName1697534910933
implements MigrationInterface
{
name = 'RemoveSingularPluralFromFieldLabelAndName1697534910933';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" DROP COLUMN "name_singular"`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" DROP COLUMN "name_plural"`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" DROP COLUMN "label_singular"`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" DROP COLUMN "label_plural"`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" ADD "name" character varying NOT NULL`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" ADD "label" character varying NOT NULL`,
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" DROP COLUMN "label"`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" DROP COLUMN "name"`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" ADD "label_plural" character varying`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" ADD "label_singular" character varying NOT NULL`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" ADD "name_plural" character varying`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" ADD "name_singular" character varying NOT NULL`,
);
}
}

View File

@ -30,7 +30,7 @@ export class BeforeCreateOneObject<T extends ObjectMetadata>
);
instance.input.dataSourceId = lastDataSourceMetadata.id;
instance.input.targetTableName = instance.input.nameSingular;
instance.input.targetTableName = instance.input.namePlural;
instance.input.workspaceId = workspaceId;
instance.input.isActive = false;
instance.input.isCustom = true;

View File

@ -38,6 +38,7 @@ export const objectMetadataAutoResolverOpts: AutoResolverOpts<
update: {
many: { disabled: true },
},
delete: { many: { disabled: true } },
guards: [JwtAuthGuard],
},
];