From f1abe5eb7f08bd3d31a2d51478a51f69c5286e60 Mon Sep 17 00:00:00 2001 From: jbuechele <johannes@bujo.at> Date: Wed, 3 May 2023 16:23:13 +0200 Subject: [PATCH] allow to set valid grids for migration, small fixes --- .../faircommons/api_service/service/WorkService.java | 7 ++++++- .../eu/fairkom/faircommons/common/mappers/WorkMapper.java | 1 - .../fairkom/faircommons/common/models/entities/Work.java | 1 + .../faircommons/common/models/views/PublicWorkView.java | 1 + .../faircommons/common/models/views/WorkCreateView.java | 5 ++++- 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/faircommons-services/api-service/src/main/java/eu/fairkom/faircommons/api_service/service/WorkService.java b/faircommons-services/api-service/src/main/java/eu/fairkom/faircommons/api_service/service/WorkService.java index 9d2892b..333b788 100644 --- a/faircommons-services/api-service/src/main/java/eu/fairkom/faircommons/api_service/service/WorkService.java +++ b/faircommons-services/api-service/src/main/java/eu/fairkom/faircommons/api_service/service/WorkService.java @@ -116,7 +116,12 @@ public class WorkService { var workEntity = workMapper.toEntity(workMapper.toWorkView(view)); workEntity.setTags(tags); - workEntity.setGrid(IdentifierGenerator.generateGlobalReleaseIdentifier()); + + if (view.getGrid() != null) { + workEntity.setGrid(view.getGrid()); + } else { + workEntity.setGrid(IdentifierGenerator.generateGlobalReleaseIdentifier()); + } return workEntity; } diff --git a/faircommons-services/common/src/main/java/eu/fairkom/faircommons/common/mappers/WorkMapper.java b/faircommons-services/common/src/main/java/eu/fairkom/faircommons/common/mappers/WorkMapper.java index e68527f..088e5b7 100644 --- a/faircommons-services/common/src/main/java/eu/fairkom/faircommons/common/mappers/WorkMapper.java +++ b/faircommons-services/common/src/main/java/eu/fairkom/faircommons/common/mappers/WorkMapper.java @@ -43,7 +43,6 @@ public abstract class WorkMapper extends BaseMapper<Work, WorkView, UUID> { @Mapping(target = "ipfsMeta", ignore = true) @Mapping(target = "status", ignore = true) @Mapping(target = "filename", ignore = true) - @Mapping(target = "grid", ignore = true) @Mapping(target = "tags", ignore = true) public abstract WorkView toWorkView(WorkCreateView workCreateView); diff --git a/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/models/entities/Work.java b/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/models/entities/Work.java index baa0a0e..e5de865 100644 --- a/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/models/entities/Work.java +++ b/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/models/entities/Work.java @@ -51,6 +51,7 @@ public class Work extends Identifiable<UUID> { inverseJoinColumns = @JoinColumn(name = "tag_id")) private List<Tag> tags = new ArrayList<>(); + @Column(length = 2) private String language; private ZonedDateTime creationDate; diff --git a/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/models/views/PublicWorkView.java b/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/models/views/PublicWorkView.java index c5ec09c..832da5f 100644 --- a/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/models/views/PublicWorkView.java +++ b/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/models/views/PublicWorkView.java @@ -20,6 +20,7 @@ public class PublicWorkView { ZonedDateTime registrationDate; String publisher; String identifier; + String language; PublicContributorView creator; LicenseView license; String grid; diff --git a/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/models/views/WorkCreateView.java b/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/models/views/WorkCreateView.java index 62ca2b8..ca5bb6f 100644 --- a/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/models/views/WorkCreateView.java +++ b/faircommons-services/common/src/main/lombok/eu/fairkom/faircommons/common/models/views/WorkCreateView.java @@ -6,6 +6,7 @@ import eu.fairkom.faircommons.common.models.WorkVisibility; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Size; import lombok.Builder; import lombok.Value; @@ -22,7 +23,7 @@ public class WorkCreateView { @Size(max = 100) @NotBlank String title; //immutable @Size(max = 2000) @NotBlank String description; //immutable List<String> tags; - @Size(max = 255) String language; + @Size(max = 2) String language; ZonedDateTime creationDate; @Size(max = 36) @NotBlank String registrar; //immutable, keycloakUserId @Valid ContributorView creator; @@ -34,4 +35,6 @@ public class WorkCreateView { @Builder.Default List<StorageOption> storageOptions = List.of(StorageOption.FAIRREGISTER_FILE_SYSTEM); @Valid LicenseView license; + @Pattern(regexp = "RC-(01|FAREG)-(LIZ\\d{10}|\\d{10})-([A-Z]|\\d)(?=$)") + String grid; } -- GitLab