Add soft delete to metadata (#2072)

This commit is contained in:
Weiko
2023-10-16 22:04:17 +02:00
committed by GitHub
parent 07ae0fa76c
commit c06a8a9213
10 changed files with 57 additions and 15 deletions

View File

@ -58,9 +58,4 @@ export class CreateFieldInput {
@IsOptional()
@Field({ nullable: true })
icon?: string;
@IsString()
@IsOptional()
@Field({ nullable: true })
placeholder?: string;
}

View File

@ -34,11 +34,6 @@ export class UpdateFieldInput {
@Field({ nullable: true })
icon?: string;
@IsString()
@IsOptional()
@Field({ nullable: true })
placeholder?: string;
@IsBoolean()
@IsOptional()
@Field({ nullable: true })

View File

@ -3,6 +3,7 @@ import { Field, ID, ObjectType } from '@nestjs/graphql';
import {
Column,
CreateDateColumn,
DeleteDateColumn,
Entity,
JoinColumn,
ManyToOne,
@ -76,8 +77,7 @@ export class FieldMetadata {
@Column({ nullable: true, name: 'icon' })
icon: string;
@Field({ nullable: true })
@Column({ nullable: true, name: 'placeholder' })
@Field({ nullable: true, deprecationReason: 'Use label name instead' })
placeholder: string;
@Column('text', { nullable: true, array: true })
@ -109,4 +109,7 @@ export class FieldMetadata {
@Field()
@UpdateDateColumn({ name: 'updated_at' })
updatedAt: Date;
@DeleteDateColumn({ name: 'deleted_at' })
deletedAt?: Date;
}

View File

@ -28,7 +28,7 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadata> {
private readonly tenantMigrationService: TenantMigrationService,
private readonly migrationRunnerService: MigrationRunnerService,
) {
super(fieldMetadataRepository);
super(fieldMetadataRepository, { useSoftDelete: true });
}
override async createOne(record: FieldMetadata): Promise<FieldMetadata> {

View File

@ -8,6 +8,8 @@ import { InitMetadataTables1695214465080 } from './migrations/1695214465080-Init
import { AlterFieldMetadataTable1695717691800 } from './migrations/1695717691800-alter-field-metadata-table';
import { AddTargetColumnMap1696409050890 } from './migrations/1696409050890-add-target-column-map';
import { MetadataNameLabelRefactoring1697126636202 } from './migrations/1697126636202-MetadataNameLabelRefactoring';
import { RemoveFieldMetadataPlaceholder1697471445015 } from './migrations/1697471445015-removeFieldMetadataPlaceholder';
import { AddSoftDelete1697474804403 } from './migrations/1697474804403-addSoftDelete';
config();
@ -27,6 +29,8 @@ export const typeORMMetadataModuleOptions: TypeOrmModuleOptions = {
AlterFieldMetadataTable1695717691800,
AddTargetColumnMap1696409050890,
MetadataNameLabelRefactoring1697126636202,
RemoveFieldMetadataPlaceholder1697471445015,
AddSoftDelete1697474804403,
],
};

View File

@ -0,0 +1,19 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class RemoveFieldMetadataPlaceholder1697471445015
implements MigrationInterface
{
name = 'RemoveFieldMetadataPlaceholder1697471445015';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" DROP COLUMN "placeholder"`,
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" ADD "placeholder" character varying`,
);
}
}

View File

@ -0,0 +1,23 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class AddSoftDelete1697474804403 implements MigrationInterface {
name = 'AddSoftDelete1697474804403';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "metadata"."object_metadata" ADD "deleted_at" TIMESTAMP`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" ADD "deleted_at" TIMESTAMP`,
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "metadata"."field_metadata" DROP COLUMN "deleted_at"`,
);
await queryRunner.query(
`ALTER TABLE "metadata"."object_metadata" DROP COLUMN "deleted_at"`,
);
}
}

View File

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

View File

@ -3,6 +3,7 @@ import { ObjectType, ID, Field } from '@nestjs/graphql';
import {
Column,
CreateDateColumn,
DeleteDateColumn,
Entity,
OneToMany,
PrimaryGeneratedColumn,
@ -92,4 +93,7 @@ export class ObjectMetadata {
@Field()
@UpdateDateColumn({ name: 'updated_at' })
updatedAt: Date;
@DeleteDateColumn({ name: 'deleted_at' })
deletedAt?: Date;
}

View File

@ -18,7 +18,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadata> {
private readonly tenantMigrationService: TenantMigrationService,
private readonly migrationRunnerService: MigrationRunnerService,
) {
super(objectMetadataRepository);
super(objectMetadataRepository, { useSoftDelete: true });
}
override async createOne(record: ObjectMetadata): Promise<ObjectMetadata> {