From e6b0a91c18f2726cdbc40ae1bd3bf67061b1c4da Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Sun, 26 Nov 2023 22:56:48 +0100 Subject: [PATCH] Fixed the identifiers --- dbrepo-metadata-db/setup-schema.sql | 22 ++--- .../user/external/ExternalMetadataDto.java | 2 - .../converters/AccessTypeConverter.java | 26 ----- .../BannerMessageTypeConverter.java | 26 ----- ...iliationIdentifierSchemeTypeConverter.java | 26 ----- .../IdentifierDescriptionTypeConverter.java | 26 ----- .../IdentifierFunderTypeConverter.java | 26 ----- .../IdentifierIdentifierTypeConverter.java | 26 ----- ...fierNameIdentifierSchemeTypeConverter.java | 26 ----- .../IdentifierNameTypeConverter.java | 27 ----- .../IdentifierRelatedTypeConverter.java | 26 ----- .../IdentifierVisibilityTypeConverter.java | 26 ----- .../converters/LanguageTypeConverter.java | 26 ----- .../converters/TableColumnTypeConverter.java | 26 ----- .../tuwien/entities/database/AccessType.java | 21 +--- .../at/tuwien/entities/database/Database.java | 2 +- .../entities/database/DatabaseAccess.java | 5 +- .../at/tuwien/entities/database/View.java | 2 +- .../database/table/columns/TableColumn.java | 5 +- .../table/columns/TableColumnType.java | 99 ++++++------------- .../AffiliationIdentifierSchemeType.java | 20 +--- .../tuwien/entities/identifier/Creator.java | 15 ++- .../entities/identifier/Identifier.java | 20 ++-- .../identifier/IdentifierDescription.java | 10 +- .../entities/identifier/IdentifierFunder.java | 5 +- .../identifier/IdentifierFunderType.java | 27 +---- .../entities/identifier/IdentifierType.java | 20 +--- .../identifier/NameIdentifierSchemeType.java | 23 +---- .../tuwien/entities/identifier/NameType.java | 17 +--- .../identifier/RelatedIdentifier.java | 7 +- .../entities/identifier/VisibilityType.java | 18 +--- .../entities/maintenance/BannerMessage.java | 5 +- .../maintenance/BannerMessageType.java | 22 +---- .../java/at/tuwien/mapper/DataCiteMapper.java | 2 +- .../tuwien/mvc/IdentifierEndpointMvcTest.java | 57 +++++++++++ .../test/resources/json/ext_orcid_jdoe.json | 1 + .../java/at/tuwien/config/JacksonConfig.java | 1 - .../main/java/at/tuwien/test/BaseTest.java | 40 ++++++++ dbrepo-ui/components/dialogs/Semantics.vue | 2 + .../components/search/AdvancedSearch.vue | 10 +- 40 files changed, 208 insertions(+), 585 deletions(-) delete mode 100644 dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/AccessTypeConverter.java delete mode 100644 dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/BannerMessageTypeConverter.java delete mode 100644 dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierAffiliationIdentifierSchemeTypeConverter.java delete mode 100644 dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierDescriptionTypeConverter.java delete mode 100644 dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierFunderTypeConverter.java delete mode 100644 dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierIdentifierTypeConverter.java delete mode 100644 dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameIdentifierSchemeTypeConverter.java delete mode 100644 dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameTypeConverter.java delete mode 100644 dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierRelatedTypeConverter.java delete mode 100644 dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierVisibilityTypeConverter.java delete mode 100644 dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/LanguageTypeConverter.java delete mode 100644 dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/TableColumnTypeConverter.java create mode 100644 dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java create mode 100644 dbrepo-metadata-service/rest-service/src/test/resources/json/ext_orcid_jdoe.json diff --git a/dbrepo-metadata-db/setup-schema.sql b/dbrepo-metadata-db/setup-schema.sql index fe452045ca..972216ac0c 100644 --- a/dbrepo-metadata-db/setup-schema.sql +++ b/dbrepo-metadata-db/setup-schema.sql @@ -151,7 +151,7 @@ CREATE TABLE IF NOT EXISTS `mdb_columns` cName VARCHAR(100), internal_name VARCHAR(100) NOT NULL, alias VARCHAR(100), - Datatype ENUM ('char','varchar','binary','varbinary','tinyblob','tinytext','text','blob','mediumtext','mediumblob','longtext','longblob','enum','set','bit','tinyint','bool','smallint','mediumint','int','bigint','float','double','decimal','date','datetime','timestamp','time','year'), + Datatype ENUM ('CHAR','VARCHAR','BINARY','VARBINARY','TINYBLOB','TINYTEXT','TEXT','BLOB','MEDIUMTEXT','MEDIUMBLOB','LONGTEXT','LONGBLOB','ENUM','SET','BIT','TINYINT','BOOL','SMALLINT','MEDIUMINT','INT','BIGINT','FLOAT','DOUBLE','DECIMAL','DATE','DATETIME','TIMESTAMP','TIME','YEAR'), length INT NULL, ordinal_position INTEGER NOT NULL, is_primary_key BOOLEAN NOT NULL, @@ -328,7 +328,7 @@ CREATE TABLE IF NOT EXISTS `mdb_view` CREATE TABLE IF NOT EXISTS `mdb_banner_messages` ( id bigint NOT NULL AUTO_INCREMENT, - type ENUM ('error', 'warning', 'info') NOT NULL default 'info', + type ENUM ('ERROR', 'WARNING', 'INFO') NOT NULL default 'INFO', message TEXT NOT NULL, link TEXT NULL, link_text VARCHAR(255) NULL, @@ -371,11 +371,11 @@ CREATE TABLE IF NOT EXISTS `mdb_identifiers` vid bigint, publisher VARCHAR(255) NOT NULL, language VARCHAR(2), - visibility ENUM ('self', 'everyone') NOT NULL default 'everyone', + visibility ENUM ('SELF', 'EVERYONE') NOT NULL default 'EVERYONE', publication_year INTEGER NOT NULL, publication_month INTEGER, publication_day INTEGER, - identifier_type ENUM ('database', 'subset', 'view') NOT NULL, + identifier_type ENUM ('DATABASE', 'SUBSET', 'VIEW') NOT NULL, query TEXT, query_normalized TEXT, query_hash VARCHAR(255), @@ -406,7 +406,7 @@ CREATE TABLE IF NOT EXISTS `mdb_identifier_titles` id bigint NOT NULL AUTO_INCREMENT, pid bigint NOT NULL, title text NOT NULL, - title_type ENUM ('alternative_title', 'subtitle', 'translated_title', 'other'), + title_type ENUM ('ALTERNATIVE_TITLE', 'SUBTITLE', 'TRANSLATED_TITLE', 'OTHER'), language VARCHAR(2), PRIMARY KEY (id), FOREIGN KEY (pid) REFERENCES mdb_identifiers (id) @@ -418,7 +418,7 @@ CREATE TABLE IF NOT EXISTS `mdb_identifier_funders` pid bigint NOT NULL, funder_name VARCHAR(255) NOT NULL, funder_identifier TEXT, - funder_identifier_type ENUM ('crossref_funder_id', 'grid', 'isni', 'ror', 'other'), + funder_identifier_type ENUM ('CROSSREF_FUNDER_ID', 'GRID', 'ISNI', 'ROR', 'OTHER'), scheme_uri text, award_number VARCHAR(255), award_title text, @@ -432,7 +432,7 @@ CREATE TABLE IF NOT EXISTS `mdb_identifier_descriptions` id bigint NOT NULL AUTO_INCREMENT, pid bigint NOT NULL, description text NOT NULL, - description_type ENUM ('abstract', 'methods', 'series_information', 'table_of_contents', 'technical_info', 'other'), + description_type ENUM ('ABSTRACT', 'METHODS', 'SERIES_INFORMATION', 'TABLE_OF_CONTENTS', 'TECHNICAL_INFO', 'OTHER'), language VARCHAR(2), PRIMARY KEY (id), FOREIGN KEY (pid) REFERENCES mdb_identifiers (id) @@ -457,13 +457,13 @@ CREATE TABLE IF NOT EXISTS `mdb_identifier_creators` given_names text, family_name text, creator_name VARCHAR(255) NOT NULL, - name_type ENUM ('personal', 'organizational') default 'personal', + name_type ENUM ('PERSONAL', 'ORGANIZATIONAL') default 'PERSONAL', name_identifier text, - name_identifier_scheme ENUM ('ror', 'grid', 'isni', 'orcid'), + name_identifier_scheme ENUM ('ROR', 'GRID', 'ISNI', 'ORCID'), name_identifier_scheme_uri text, affiliation VARCHAR(255), affiliation_identifier text, - affiliation_identifier_scheme ENUM ('ror', 'grid', 'isni'), + affiliation_identifier_scheme ENUM ('ROR', 'GRID', 'ISNI'), affiliation_identifier_scheme_uri text, PRIMARY KEY (id), FOREIGN KEY (pid) REFERENCES mdb_identifiers (id) @@ -504,7 +504,7 @@ CREATE TABLE IF NOT EXISTS `mdb_have_access` ( user_id character varying(36) NOT NULL, database_id bigint REFERENCES mdb_databases (id), - access_type ENUM ('read', 'write_own', 'write_all') NOT NULL, + access_type ENUM ('READ', 'WRITE_OWN', 'WRITE_ALL') NOT NULL, created timestamp NOT NULL DEFAULT NOW(), PRIMARY KEY (user_id, database_id), FOREIGN KEY (user_id) REFERENCES mdb_users (id) diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/ExternalMetadataDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/ExternalMetadataDto.java index 668db14f79..80d5d04d6d 100644 --- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/ExternalMetadataDto.java +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/ExternalMetadataDto.java @@ -11,8 +11,6 @@ import lombok.extern.jackson.Jacksonized; @Builder @NoArgsConstructor @AllArgsConstructor -@Jacksonized -@ToString public class ExternalMetadataDto { @Schema(example = "Josiah") diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/AccessTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/AccessTypeConverter.java deleted file mode 100644 index e8ee655c8b..0000000000 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/AccessTypeConverter.java +++ /dev/null @@ -1,26 +0,0 @@ -package at.tuwien.converters; - -import at.tuwien.entities.database.AccessType; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - -@Converter -public class AccessTypeConverter implements AttributeConverter<AccessType, String> { - - @Override - public String convertToDatabaseColumn(AccessType accessType) { - if (accessType == null) { - return null; - } - return accessType.name() - .toLowerCase(); - } - - @Override - public AccessType convertToEntityAttribute(String accessType) { - if (accessType == null) { - return null; - } - return AccessType.valueOf(accessType.toUpperCase()); - } -} diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/BannerMessageTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/BannerMessageTypeConverter.java deleted file mode 100644 index 24143a7453..0000000000 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/BannerMessageTypeConverter.java +++ /dev/null @@ -1,26 +0,0 @@ -package at.tuwien.converters; - -import at.tuwien.entities.maintenance.BannerMessageType; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - -@Converter -public class BannerMessageTypeConverter implements AttributeConverter<BannerMessageType, String> { - - @Override - public String convertToDatabaseColumn(BannerMessageType bannerMessageType) { - if (bannerMessageType == null) { - return null; - } - return bannerMessageType.name() - .toLowerCase(); - } - - @Override - public BannerMessageType convertToEntityAttribute(String bannerMessageType) { - if (bannerMessageType == null) { - return null; - } - return BannerMessageType.valueOf(bannerMessageType.toUpperCase()); - } -} diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierAffiliationIdentifierSchemeTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierAffiliationIdentifierSchemeTypeConverter.java deleted file mode 100644 index 7afc5975b1..0000000000 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierAffiliationIdentifierSchemeTypeConverter.java +++ /dev/null @@ -1,26 +0,0 @@ -package at.tuwien.converters; - -import at.tuwien.entities.identifier.AffiliationIdentifierSchemeType; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - -@Converter -public class IdentifierAffiliationIdentifierSchemeTypeConverter implements AttributeConverter<AffiliationIdentifierSchemeType, String> { - - @Override - public String convertToDatabaseColumn(AffiliationIdentifierSchemeType affiliationIdentifierSchemeType) { - if (affiliationIdentifierSchemeType == null) { - return null; - } - return affiliationIdentifierSchemeType.name() - .toLowerCase(); - } - - @Override - public AffiliationIdentifierSchemeType convertToEntityAttribute(String affiliationIdentifierSchemeType) { - if (affiliationIdentifierSchemeType == null) { - return null; - } - return AffiliationIdentifierSchemeType.valueOf(affiliationIdentifierSchemeType.toUpperCase()); - } -} diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierDescriptionTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierDescriptionTypeConverter.java deleted file mode 100644 index d426126a56..0000000000 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierDescriptionTypeConverter.java +++ /dev/null @@ -1,26 +0,0 @@ -package at.tuwien.converters; - -import at.tuwien.entities.identifier.DescriptionType; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - -@Converter -public class IdentifierDescriptionTypeConverter implements AttributeConverter<DescriptionType, String> { - - @Override - public String convertToDatabaseColumn(DescriptionType descriptionType) { - if (descriptionType == null) { - return null; - } - return descriptionType.name() - .toLowerCase(); - } - - @Override - public DescriptionType convertToEntityAttribute(String descriptionType) { - if (descriptionType == null) { - return null; - } - return DescriptionType.valueOf(descriptionType.toUpperCase()); - } -} diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierFunderTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierFunderTypeConverter.java deleted file mode 100644 index c721447551..0000000000 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierFunderTypeConverter.java +++ /dev/null @@ -1,26 +0,0 @@ -package at.tuwien.converters; - -import at.tuwien.entities.identifier.IdentifierFunderType; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - -@Converter -public class IdentifierFunderTypeConverter implements AttributeConverter<IdentifierFunderType, String> { - - @Override - public String convertToDatabaseColumn(IdentifierFunderType identifierFunderType) { - if (identifierFunderType == null) { - return null; - } - return identifierFunderType.name() - .toLowerCase(); - } - - @Override - public IdentifierFunderType convertToEntityAttribute(String identifierFunderType) { - if (identifierFunderType == null) { - return null; - } - return IdentifierFunderType.valueOf(identifierFunderType.toUpperCase()); - } -} diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierIdentifierTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierIdentifierTypeConverter.java deleted file mode 100644 index e78553256b..0000000000 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierIdentifierTypeConverter.java +++ /dev/null @@ -1,26 +0,0 @@ -package at.tuwien.converters; - -import at.tuwien.entities.identifier.IdentifierType; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - -@Converter -public class IdentifierIdentifierTypeConverter implements AttributeConverter<IdentifierType, String> { - - @Override - public String convertToDatabaseColumn(IdentifierType identifierType) { - if (identifierType == null) { - return null; - } - return identifierType.name() - .toLowerCase(); - } - - @Override - public IdentifierType convertToEntityAttribute(String identifierType) { - if (identifierType == null) { - return null; - } - return IdentifierType.valueOf(identifierType.toUpperCase()); - } -} diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameIdentifierSchemeTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameIdentifierSchemeTypeConverter.java deleted file mode 100644 index e5b74326aa..0000000000 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameIdentifierSchemeTypeConverter.java +++ /dev/null @@ -1,26 +0,0 @@ -package at.tuwien.converters; - -import at.tuwien.entities.identifier.NameIdentifierSchemeType; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - -@Converter -public class IdentifierNameIdentifierSchemeTypeConverter implements AttributeConverter<NameIdentifierSchemeType, String> { - - @Override - public String convertToDatabaseColumn(NameIdentifierSchemeType nameIdentifierSchemeType) { - if (nameIdentifierSchemeType == null) { - return null; - } - return nameIdentifierSchemeType.name() - .toLowerCase(); - } - - @Override - public NameIdentifierSchemeType convertToEntityAttribute(String nameIdentifierSchemeType) { - if (nameIdentifierSchemeType == null) { - return null; - } - return NameIdentifierSchemeType.valueOf(nameIdentifierSchemeType.toUpperCase()); - } -} diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameTypeConverter.java deleted file mode 100644 index c43f26af31..0000000000 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameTypeConverter.java +++ /dev/null @@ -1,27 +0,0 @@ -package at.tuwien.converters; - -import at.tuwien.entities.identifier.NameType; -import at.tuwien.entities.identifier.RelatedType; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - -@Converter -public class IdentifierNameTypeConverter implements AttributeConverter<NameType, String> { - - @Override - public String convertToDatabaseColumn(NameType nameType) { - if (nameType == null) { - return null; - } - return nameType.name() - .toLowerCase(); - } - - @Override - public NameType convertToEntityAttribute(String nameType) { - if (nameType == null) { - return null; - } - return NameType.valueOf(nameType.toUpperCase()); - } -} diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierRelatedTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierRelatedTypeConverter.java deleted file mode 100644 index 93309f8049..0000000000 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierRelatedTypeConverter.java +++ /dev/null @@ -1,26 +0,0 @@ -package at.tuwien.converters; - -import at.tuwien.entities.identifier.RelatedType; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - -@Converter -public class IdentifierRelatedTypeConverter implements AttributeConverter<RelatedType, String> { - - @Override - public String convertToDatabaseColumn(RelatedType relatedType) { - if (relatedType == null) { - return null; - } - return relatedType.name() - .toLowerCase(); - } - - @Override - public RelatedType convertToEntityAttribute(String relatedType) { - if (relatedType == null) { - return null; - } - return RelatedType.valueOf(relatedType.toUpperCase()); - } -} diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierVisibilityTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierVisibilityTypeConverter.java deleted file mode 100644 index f6e6329768..0000000000 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierVisibilityTypeConverter.java +++ /dev/null @@ -1,26 +0,0 @@ -package at.tuwien.converters; - -import at.tuwien.entities.identifier.VisibilityType; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - -@Converter -public class IdentifierVisibilityTypeConverter implements AttributeConverter<VisibilityType, String> { - - @Override - public String convertToDatabaseColumn(VisibilityType visibilityType) { - if (visibilityType == null) { - return null; - } - return visibilityType.name() - .toLowerCase(); - } - - @Override - public VisibilityType convertToEntityAttribute(String visibilityType) { - if (visibilityType == null) { - return null; - } - return VisibilityType.valueOf(visibilityType.toUpperCase()); - } -} diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/LanguageTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/LanguageTypeConverter.java deleted file mode 100644 index dad10800f4..0000000000 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/LanguageTypeConverter.java +++ /dev/null @@ -1,26 +0,0 @@ -package at.tuwien.converters; - -import at.tuwien.entities.database.LanguageType; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - -@Converter -public class LanguageTypeConverter implements AttributeConverter<LanguageType, String> { - - @Override - public String convertToDatabaseColumn(LanguageType languageType) { - if (languageType == null) { - return null; - } - return languageType.name() - .toLowerCase(); - } - - @Override - public LanguageType convertToEntityAttribute(String languageType) { - if (languageType == null) { - return null; - } - return LanguageType.valueOf(languageType.toUpperCase()); - } -} diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/TableColumnTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/TableColumnTypeConverter.java deleted file mode 100644 index f057f72332..0000000000 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/TableColumnTypeConverter.java +++ /dev/null @@ -1,26 +0,0 @@ -package at.tuwien.converters; - -import at.tuwien.entities.database.table.columns.TableColumnType; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - -@Converter -public class TableColumnTypeConverter implements AttributeConverter<TableColumnType, String> { - - @Override - public String convertToDatabaseColumn(TableColumnType tableColumnType) { - if (tableColumnType == null) { - return null; - } - return tableColumnType.name() - .toLowerCase(); - } - - @Override - public TableColumnType convertToEntityAttribute(String tableColumnType) { - if (tableColumnType == null) { - return null; - } - return TableColumnType.valueOf(tableColumnType.toUpperCase()); - } -} diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/AccessType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/AccessType.java index c14042c070..19a642ff96 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/AccessType.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/AccessType.java @@ -4,22 +4,9 @@ import lombok.Getter; import lombok.ToString; @Getter +@ToString public enum AccessType { - - READ("read"), - - WRITE_OWN("write_own"), - - WRITE_ALL("write_all"); - - private String name; - - AccessType(String name) { - this.name = name; - } - - @Override - public String toString() { - return this.name; - } + READ, + WRITE_OWN, + WRITE_ALL; } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java index a47cc416a5..e3e4eccc1c 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java @@ -108,7 +108,7 @@ public class Database implements Serializable { @OneToOne(fetch = FetchType.LAZY) @JoinColumnsOrFormulas({ @JoinColumnOrFormula(column = @JoinColumn(name = "id", referencedColumnName = "dbid", insertable = false, updatable = false)), - @JoinColumnOrFormula(formula = @JoinFormula(referencedColumnName = "identifier_type", value = "'database'")) + @JoinColumnOrFormula(formula = @JoinFormula(referencedColumnName = "identifier_type", value = "'DATABASE'")) }) private Identifier identifier; diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java index 3a1748e385..8492ee757f 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java @@ -1,6 +1,5 @@ package at.tuwien.entities.database; -import at.tuwien.converters.AccessTypeConverter; import at.tuwien.entities.user.User; import lombok.*; import org.hibernate.annotations.JdbcTypeCode; @@ -51,8 +50,8 @@ public class DatabaseAccess { }) private Database database; - @Column(nullable = false, name = "access_type", columnDefinition = "enum('read', 'write_own', 'write_all')") - @Convert(converter = AccessTypeConverter.class) + @Column(nullable = false, name = "access_type", columnDefinition = "enum('READ', 'WRITE_OWN', 'WRITE_ALL')") + @Enumerated(EnumType.STRING) private AccessType type; @Column(nullable = false, updatable = false, columnDefinition = "TIMESTAMP") diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java index 5961cc7e7c..569ae61ea7 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java @@ -85,7 +85,7 @@ public class View { @OneToOne(fetch = FetchType.LAZY) @JoinColumnsOrFormulas({ @JoinColumnOrFormula(column = @JoinColumn(name = "id", referencedColumnName = "vid", insertable = false, updatable = false)), - @JoinColumnOrFormula(formula = @JoinFormula(referencedColumnName = "identifier_type", value = "'view'")) + @JoinColumnOrFormula(formula = @JoinFormula(referencedColumnName = "identifier_type", value = "'VIEW'")) }) private Identifier identifier; diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java index 05fd24b66e..552fbd3325 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java @@ -1,6 +1,5 @@ package at.tuwien.entities.database.table.columns; -import at.tuwien.converters.TableColumnTypeConverter; import at.tuwien.entities.container.image.ContainerImageDate; import at.tuwien.entities.database.View; import at.tuwien.entities.database.table.Table; @@ -72,8 +71,8 @@ public class TableColumn implements Comparable<TableColumn> { @Column private String alias; - @Column(name = "datatype", nullable = false, columnDefinition = "ENUM('char','varchar','binary','varbinary','tinyblob','tinytext','text','blob','mediumtext','mediumblob','longtext','longblob','enum','set','bit','tinyint','bool','smallint','mediumint','int','bigint','float','double','decimal','date','datetime','timestamp','time','year')") - @Convert(converter = TableColumnTypeConverter.class) + @Column(name = "datatype", nullable = false, columnDefinition = "ENUM('CHAR','VARCHAR','BINARY','VARBINARY','TINYBLOB','TINYTEXT','TEXT','BLOB','MEDIUMTEXT','MEDIUMBLOB','LONGTEXT','LONGBLOB','ENUM','SET','BIT','TINYINT','BOOL','SMALLINT','MEDIUMINT','INT','BIGINT','FLOAT','DOUBLE','DECIMAL','DATE','DATETIME','TIMESTAMP','TIME','YEAR')") + @Enumerated(EnumType.STRING) private TableColumnType columnType; @Column diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnType.java index cf3bed9a85..074620a349 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnType.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnType.java @@ -4,74 +4,35 @@ import lombok.Getter; import lombok.ToString; @Getter +@ToString public enum TableColumnType { - - CHAR("char"), - - VARCHAR("varchar"), - - BINARY("binary"), - - VARBINARY("varbinary"), - - TINYBLOB("tinyblob"), - - TINYTEXT("tinytext"), - - TEXT("text"), - - BLOB("blob"), - - MEDIUMTEXT("mediumtext"), - - MEDIUMBLOB("mediumblob"), - - LONGTEXT("longtext"), - - LONGBLOB("longblob"), - - ENUM("enum"), - - SET("set"), - - BIT("bit"), - - TINYINT("tinyint"), - - BOOL("bool"), - - SMALLINT("smallint"), - - MEDIUMINT("mediumint"), - - INT("int"), - - BIGINT("bigint"), - - FLOAT("float"), - - DOUBLE("double"), - - DECIMAL("decimal"), - - DATE("date"), - - DATETIME("datetime"), - - TIMESTAMP("timestamp"), - - TIME("time"), - - YEAR("year"); - - private String name; - - TableColumnType(String name) { - this.name = name; - } - - @Override - public String toString() { - return this.name; - } + CHAR, + VARCHAR, + BINARY, + VARBINARY, + TINYBLOB, + TINYTEXT, + TEXT, + BLOB, + MEDIUMTEXT, + MEDIUMBLOB, + LONGTEXT, + LONGBLOB, + ENUM, + SET, + BIT, + TINYINT, + BOOL, + SMALLINT, + MEDIUMINT, + INT, + BIGINT, + FLOAT, + DOUBLE, + DECIMAL, + DATE, + DATETIME, + TIMESTAMP, + TIME, + YEAR; } \ No newline at end of file diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/AffiliationIdentifierSchemeType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/AffiliationIdentifierSchemeType.java index 5c3f62d6e7..0d794ff431 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/AffiliationIdentifierSchemeType.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/AffiliationIdentifierSchemeType.java @@ -5,21 +5,7 @@ import lombok.Getter; @Getter public enum AffiliationIdentifierSchemeType { - - ROR("ror"), - - GRID("grid"), - - ISNI("isni"); - - private String name; - - AffiliationIdentifierSchemeType(String name) { - this.name = name; - } - - @Override - public String toString() { - return this.name; - } + ROR, + GRID, + ISNI } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Creator.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Creator.java index 4119bba257..d3a3e372d0 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Creator.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Creator.java @@ -1,8 +1,5 @@ package at.tuwien.entities.identifier; -import at.tuwien.converters.IdentifierAffiliationIdentifierSchemeTypeConverter; -import at.tuwien.converters.IdentifierNameIdentifierSchemeTypeConverter; -import at.tuwien.converters.IdentifierNameTypeConverter; import lombok.*; import org.hibernate.annotations.GenericGenerator; import org.springframework.data.jpa.domain.support.AuditingEntityListener; @@ -35,15 +32,15 @@ public class Creator { @Column(name = "creator_name", nullable = false) private String creatorName; - @Column(columnDefinition = "enum('personal', 'organizational')") - @Convert(converter = IdentifierNameTypeConverter.class) + @Column(columnDefinition = "enum('PERSONAL', 'ORGANIZATIONAL')") + @Enumerated(EnumType.STRING) private NameType nameType; @Column private String nameIdentifier; - @Column(columnDefinition = "enum('ror', 'grid', 'isni', 'orcid')") - @Convert(converter = IdentifierNameIdentifierSchemeTypeConverter.class) + @Column(columnDefinition = "enum('ROR', 'GRID', 'ISNI', 'ORCID')") + @Enumerated(EnumType.STRING) private NameIdentifierSchemeType nameIdentifierScheme; @Column @@ -55,8 +52,8 @@ public class Creator { @Column private String affiliationIdentifier; - @Column(columnDefinition = "enum('ror', 'grid', 'isni')") - @Convert(converter = IdentifierAffiliationIdentifierSchemeTypeConverter.class) + @Column(columnDefinition = "enum('ROR', 'GRID', 'ISNI')") + @Enumerated(EnumType.STRING) private AffiliationIdentifierSchemeType affiliationIdentifierScheme; private String affiliationIdentifierSchemeUri; diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java index ef8f0405c1..df3ee6fff9 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java @@ -1,7 +1,5 @@ package at.tuwien.entities.identifier; -import at.tuwien.converters.IdentifierIdentifierTypeConverter; -import at.tuwien.converters.IdentifierVisibilityTypeConverter; import at.tuwien.entities.database.Database; import at.tuwien.entities.database.LanguageType; import at.tuwien.entities.database.License; @@ -29,11 +27,11 @@ import java.util.UUID; @EntityListeners(AuditingEntityListener.class) @Table(name = "mdb_identifiers") @NamedQueries({ - @NamedQuery(name = "Identifier.findAllDatabaseIdentifiers", query = "select i from Identifier i where i.type = 'database'"), - @NamedQuery(name = "Identifier.findAllSubsetIdentifiers", query = "select i from Identifier i where i.type = 'subset'"), - @NamedQuery(name = "Identifier.findDatabaseIdentifier", query = "select i from Identifier i where i.databaseId = ?1 and i.type = 'database'"), - @NamedQuery(name = "Identifier.findSubsetIdentifier", query = "select i from Identifier i where i.databaseId = ?1 and i.queryId = ?2 and i.type = 'subset'"), - @NamedQuery(name = "Identifier.findViewIdentifier", query = "select i from Identifier i where i.databaseId = ?1 and i.viewId = ?2 and i.type = 'view'"), + @NamedQuery(name = "Identifier.findAllDatabaseIdentifiers", query = "select i from Identifier i where i.type = 'DATABASE'"), + @NamedQuery(name = "Identifier.findAllSubsetIdentifiers", query = "select i from Identifier i where i.type = 'SUBSET'"), + @NamedQuery(name = "Identifier.findDatabaseIdentifier", query = "select i from Identifier i where i.databaseId = ?1 and i.type = 'DATABASE'"), + @NamedQuery(name = "Identifier.findSubsetIdentifier", query = "select i from Identifier i where i.databaseId = ?1 and i.queryId = ?2 and i.type = 'SUBSET'"), + @NamedQuery(name = "Identifier.findViewIdentifier", query = "select i from Identifier i where i.databaseId = ?1 and i.viewId = ?2 and i.type = 'VIEW'"), }) public class Identifier implements Serializable { @@ -85,8 +83,8 @@ public class Identifier implements Serializable { ) private List<License> licenses; - @Column(name = "identifier_type", nullable = false, columnDefinition = "enum('subset', 'database', 'view')") - @Convert(converter = IdentifierIdentifierTypeConverter.class) + @Column(name = "identifier_type", nullable = false, columnDefinition = "enum('SUBSET', 'DATABASE', 'VIEW')") + @Enumerated(EnumType.STRING) private IdentifierType type; @Column(columnDefinition = "TEXT") @@ -123,8 +121,8 @@ public class Identifier implements Serializable { @Column private Integer publicationDay; - @Column(nullable = false, columnDefinition = "enum('everyone', 'self')") - @Convert(converter = IdentifierVisibilityTypeConverter.class) + @Column(nullable = false, columnDefinition = "enum('EVERYONE', 'SELF')") + @Enumerated(EnumType.STRING) private VisibilityType visibility; @ToString.Exclude diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierDescription.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierDescription.java index 4ead698109..26b8869063 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierDescription.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierDescription.java @@ -1,7 +1,5 @@ package at.tuwien.entities.identifier; -import at.tuwien.converters.IdentifierDescriptionTypeConverter; -import at.tuwien.converters.LanguageTypeConverter; import at.tuwien.entities.database.LanguageType; import jakarta.persistence.*; import lombok.*; @@ -32,12 +30,12 @@ public class IdentifierDescription implements Serializable { private String description; @Field(name = "description_type") - @Column(columnDefinition = "enum('abstract', 'methods', 'series_information', 'table_of_contents', 'technical_info', 'other')") - @Convert(converter = IdentifierDescriptionTypeConverter.class) + @Column(columnDefinition = "enum('ABSTRACT', 'METHODS', 'SERIES_INFORMATION', 'TABLE_OF_CONTENTS', 'TECHNICAL_INFO', 'OTHER')") + @Enumerated(EnumType.STRING) private DescriptionType descriptionType; - @Column(columnDefinition = "enum('ab','aa','af','ak','sq','am','ar','an','hy','as','av','ae','ay','az','bm','ba','eu','be','bn','bh','bi','bs','br','bg','my','ca','km','ch','ce','ny','zh','cu','cv','kw','co','cr','hr','cs','da','dv','nl','dz','en','eo','et','ee','fo','fj','fi','fr','ff','gd','gl','lg','ka','de','ki','el','kl','gn','gu','ht','ha','he','hz','hi','ho','hu','is','io','ig','id','ia','ie','iu','ik','ga','it','ja','jv','kn','kr','ks','kk','rw','kv','kg','ko','kj','ku','ky','lo','la','lv','lb','li','ln','lt','lu','mk','mg','ms','ml','mt','gv','mi','mr','mh','ro','mn','na','nv','nd','ng','ne','se','no','nb','nn','ii','oc','oj','or','om','os','pi','pa','ps','fa','pl','pt','qu','rm','rn','ru','sm','sg','sa','sc','sr','sn','sd','si','sk','sl','so','st','nr','es','su','sw','ss','sv','tl','ty','tg','ta','tt','te','th','bo','ti','to','ts','tn','tr','tk','tw','ug','uk','ur','uz','ve','vi','vo','wa','cy','fy','wo','xh','yi','yo','za','zu')") - @Convert(converter = LanguageTypeConverter.class) + @Column(columnDefinition = "enum('AB','AA','AF','AK','SQ','AM','AR','AN','HY','AS','AV','AE','AY','AZ','BM','BA','EU','BE','BN','BH','BI','BS','BR','BG','MY','CA','KM','CH','CE','NY','ZH','CU','CV','KW','CO','CR','HR','CS','DA','DV','NL','DZ','EN','EO','ET','EE','FO','FJ','FI','FR','FF','GD','GL','LG','KA','DE','KI','EL','KL','GN','GU','HT','HA','HE','HZ','HI','HO','HU','IS','IO','IG','ID','IA','IE','IU','IK','GA','IT','JA','JV','KN','KR','KS','KK','RW','KV','KG','KO','KJ','KU','KY','LO','LA','LV','LB','LI','LN','LT','LU','MK','MG','MS','ML','MT','GV','MI','MR','MH','RO','MN','NA','NV','ND','NG','NE','SE','NO','NB','NN','II','OC','OJ','OR','OM','OS','PI','PA','PS','FA','PL','PT','QU','RM','RN','RU','SM','SG','SA','SC','SR','SN','SD','SI','SK','SL','SO','ST','NR','ES','SU','SW','SS','SV','TL','TY','TG','TA','TT','TE','TH','BO','TI','TO','TS','TN','TR','TK','TW','UG','UK','UR','UZ','VE','VI','VO','WA','CY','FY','WO','XH','YI','YO','ZA','ZU')") + @Enumerated(EnumType.STRING) private LanguageType language; @ToString.Exclude diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunder.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunder.java index cdf4b148c6..65a7b9fdc2 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunder.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunder.java @@ -1,6 +1,5 @@ package at.tuwien.entities.identifier; -import at.tuwien.converters.IdentifierFunderTypeConverter; import jakarta.persistence.*; import lombok.*; import org.hibernate.annotations.GenericGenerator; @@ -35,8 +34,8 @@ public class IdentifierFunder implements Serializable { private String funderIdentifier; @Field(name = "funder_identifier_type") - @Column(name="funder_identifier_type", columnDefinition = "enum('crossref_funder_id', 'ror', 'gnd', 'isni', 'other')") - @Convert(converter = IdentifierFunderTypeConverter.class) + @Column(name="funder_identifier_type", columnDefinition = "enum('CROSSREF_FUNDER_ID', 'ROR', 'GND', 'ISNI', 'OTHER')") + @Enumerated(EnumType.STRING) private IdentifierFunderType funderIdentifierType; @Field(name = "scheme_uri") diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunderType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunderType.java index 12b31112c6..ea538dcbfb 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunderType.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunderType.java @@ -1,26 +1,9 @@ package at.tuwien.entities.identifier; public enum IdentifierFunderType { - - CROSSREF_FUNDER_ID("crossref_funder_id"), - - ROR("ror"), - - GND("gnd"), - - ISNI("isni"), - - OTHER("other"); - - private String name; - - IdentifierFunderType(String name) { - this.name = name; - } - - @Override - public String toString() { - return this.name; - } - + CROSSREF_FUNDER_ID, + ROR, + GND, + ISNI, + OTHER } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierType.java index a0d143cff0..c7032d2cf8 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierType.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierType.java @@ -4,21 +4,7 @@ import lombok.Getter; @Getter public enum IdentifierType { - - DATABASE("database"), - - SUBSET("subset"), - - VIEW("view"); - - private String name; - - IdentifierType(String name) { - this.name = name; - } - - @Override - public String toString() { - return this.name; - } + DATABASE, + SUBSET, + VIEW; } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameIdentifierSchemeType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameIdentifierSchemeType.java index e5564249cf..6a7eb73a12 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameIdentifierSchemeType.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameIdentifierSchemeType.java @@ -5,23 +5,8 @@ import lombok.Getter; @Getter public enum NameIdentifierSchemeType { - - ORCID("orcid"), - - ROR("ror"), - - ISNI("isni"), - - GRID("grid"); - - private String name; - - NameIdentifierSchemeType(String name) { - this.name = name; - } - - @Override - public String toString() { - return this.name; - } + ORCID, + ROR, + ISNI, + GRID } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameType.java index f6c8d5f107..5f0790fbab 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameType.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameType.java @@ -4,19 +4,6 @@ import lombok.Getter; @Getter public enum NameType { - - PERSONAL("Personal"), - - ORGANIZATIONAL("Organizational"); - - private String name; - - NameType(String name) { - this.name = name; - } - - @Override - public String toString() { - return this.name; - } + PERSONAL, + ORGANIZATIONAL; } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java index 69c04c8d17..a8006e626d 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java @@ -1,6 +1,5 @@ package at.tuwien.entities.identifier; -import at.tuwien.converters.IdentifierRelatedTypeConverter; import lombok.*; import org.hibernate.annotations.GenericGenerator; import org.springframework.data.jpa.domain.support.AuditingEntityListener; @@ -30,11 +29,11 @@ public class RelatedIdentifier { @Column(nullable = false) private String value; - @Column(columnDefinition = "enum('doi', 'url', 'urn', 'ark', 'arxiv', 'bibcode', 'ean13', 'eissn', 'handle', 'igsn', 'isbn', 'istc', 'lissn', 'lsid', 'pmid', 'purl', 'upc', 'w3id')") - @Convert(converter = IdentifierRelatedTypeConverter.class) + @Column(columnDefinition = "enum('DOI','URL','URN','ARK','arXiv','bibcode','EAN13','EISSN','Handle','IGSN','ISBN','ISTC','LISSN','LSID','PMID','PURL','UPC','w3id')") + @Enumerated(EnumType.STRING) private RelatedType type; - @Column(columnDefinition = "enum('is_cited_by', 'cites', 'is_supplement_to', 'is_supplemented_by', 'is_continued_by', 'continues', 'is_described_by', 'describes', 'has_metadata', 'is_metadata_for', 'has_version', 'is_version_of', 'is_new_version_of', 'is_previous_version_of', 'is_part_of', 'has_part', 'is_published_in', 'is_referenced_by', 'references', 'is_documented_by', 'documents', 'is_compiled_by', 'compiles', 'is_variant_form_of', 'is_original_form_of', 'is_identical_to', 'is_reviewed_by', 'reviews', 'is_derived_from', 'is_source_of', 'is_required_by', 'requires', 'is_obsoleted_by', 'obsoletes')") + @Column(columnDefinition = "enum('IsCitedBy','Cites','IsSupplementTo','IsSupplementedBy','IsContinuedBy','Continues','IsDescribedBy','Describes','HasMetadata','IsMetadataFor','HasVersion','IsVersionOf','IsNewVersionOf','IsPreviousVersionOf','IsPartOf','HasPart','IsPublishedIn','IsReferencedBy','References','IsDocumentedBy','Documents','IsCompiledBy','Compiles','IsVariantFormOf','IsOriginalFormOf','IsIdenticalTo','IsReviewedBy','Reviews','IsDerivedFrom','IsSourceOf','IsRequiredBy','Requires','IsObsoletedBy','Obsoletes')") @Enumerated(EnumType.STRING) private RelationType relation; diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/VisibilityType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/VisibilityType.java index 28efa24834..3565740c6b 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/VisibilityType.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/VisibilityType.java @@ -4,20 +4,8 @@ import lombok.Getter; import lombok.ToString; @Getter +@ToString public enum VisibilityType { - - EVERYONE("everyone"), - - SELF("self"); - - private String name; - - VisibilityType(String name) { - this.name = name; - } - - @Override - public String toString() { - return this.name; - } + EVERYONE, + SELF; } \ No newline at end of file diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java index 70c5abd8d8..f7d2abaafc 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java @@ -1,6 +1,5 @@ package at.tuwien.entities.maintenance; -import at.tuwien.converters.BannerMessageTypeConverter; import jakarta.persistence.*; import lombok.*; import org.hibernate.annotations.GenericGenerator; @@ -28,8 +27,8 @@ public class BannerMessage { @Column(updatable = false, nullable = false) private Long id; - @Column(nullable = false, columnDefinition = "enum('error', 'warning', 'info')") - @Convert(converter = BannerMessageTypeConverter.class) + @Column(nullable = false, columnDefinition = "enum('ERROR','WARNING','INFO')") + @Enumerated(EnumType.STRING) private BannerMessageType type; @Column(nullable = false) diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessageType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessageType.java index fbfdab9711..ca83865741 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessageType.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessageType.java @@ -1,24 +1,12 @@ package at.tuwien.entities.maintenance; import lombok.Getter; +import lombok.ToString; @Getter +@ToString public enum BannerMessageType { - - WARNING("warning"), - - ERROR("error"), - - INFO("info"); - - private String name; - - BannerMessageType(String name) { - this.name = name; - } - - @Override - public String toString() { - return this.name; - } + WARNING, + ERROR, + INFO; } \ No newline at end of file diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/DataCiteMapper.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/DataCiteMapper.java index 0887a02f64..34467b0c56 100644 --- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/DataCiteMapper.java +++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/DataCiteMapper.java @@ -108,7 +108,7 @@ public interface DataCiteMapper { if (data == null) { return null; } - return DataCiteNameType.valueOf(data.getName().toUpperCase()); + return DataCiteNameType.valueOf(data.toString()); } @Mappings({ diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java new file mode 100644 index 0000000000..f454cef6ee --- /dev/null +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java @@ -0,0 +1,57 @@ +package at.tuwien.mvc; + +import at.tuwien.BaseUnitTest; +import at.tuwien.annotations.MockAmqp; +import at.tuwien.annotations.MockOpensearch; +import at.tuwien.gateway.OrcidGateway; +import com.mchange.io.FileUtils; +import lombok.extern.log4j.Log4j2; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.web.servlet.MockMvc; + +import java.io.File; + +import static org.mockito.Mockito.*; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +@Log4j2 +@ExtendWith(SpringExtension.class) +@AutoConfigureMockMvc +@SpringBootTest +@MockAmqp +@MockOpensearch +public class IdentifierEndpointMvcTest extends BaseUnitTest { + + @MockBean + private OrcidGateway orcidGateway; + + @Autowired + private MockMvc mockMvc; + + @Test + public void createUser_malformed_fails() throws Exception { + + /* mock */ + when(orcidGateway.findByUrl(anyString())) + .thenReturn(ORCID_1_DTO); + + /* test */ + this.mockMvc.perform(get("/api/identifier/retrieve?url=http://orcid.org/" + USER_1_ORCID_UNCOMPRESSED) + .contentType(MediaType.APPLICATION_JSON) + .accept(MediaType.APPLICATION_JSON)) + .andExpect(content().string(FileUtils.getContentsAsString(new File("src/test/resources/json/ext_orcid_jdoe.json")))) + .andDo(print()) + .andExpect(status().is(200)); + } + +} diff --git a/dbrepo-metadata-service/rest-service/src/test/resources/json/ext_orcid_jdoe.json b/dbrepo-metadata-service/rest-service/src/test/resources/json/ext_orcid_jdoe.json new file mode 100644 index 0000000000..4bb11bd483 --- /dev/null +++ b/dbrepo-metadata-service/rest-service/src/test/resources/json/ext_orcid_jdoe.json @@ -0,0 +1 @@ +{"affiliations":[{"organization_name":"TU Graz","ringggold_id":null,"isni_id":null,"crossref_funder_id":null}],"type":"Personal","given_names":"John","family_name":"Doe"} \ No newline at end of file diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java index 69777fe635..2379e8d74c 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java @@ -23,7 +23,6 @@ public class JacksonConfig { objectMapper.registerModule(new Jdk8Module()); objectMapper.registerModule(new JavaTimeModule()); objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); - objectMapper.configure(EnumFeature.WRITE_ENUMS_TO_LOWERCASE, true); objectMapper.setTimeZone(TimeZone.getTimeZone("UTC")); log.debug("current time is {}", objectMapper.writeValueAsString(new Date())); return objectMapper; diff --git a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java index fe9a744280..c6a049806f 100644 --- a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java +++ b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java @@ -27,6 +27,16 @@ import at.tuwien.api.keycloak.UserCreateDto; import at.tuwien.api.maintenance.BannerMessageCreateDto; import at.tuwien.api.maintenance.BannerMessageTypeDto; import at.tuwien.api.maintenance.BannerMessageUpdateDto; +import at.tuwien.api.orcid.OrcidDto; +import at.tuwien.api.orcid.activities.OrcidActivitiesSummaryDto; +import at.tuwien.api.orcid.activities.employments.OrcidEmploymentsDto; +import at.tuwien.api.orcid.activities.employments.affiliation.OrcidAffiliationGroupDto; +import at.tuwien.api.orcid.activities.employments.affiliation.group.OrcidEmploymentSummaryDto; +import at.tuwien.api.orcid.activities.employments.affiliation.group.summary.OrcidSummaryDto; +import at.tuwien.api.orcid.activities.employments.affiliation.group.summary.organization.OrcidOrganizationDto; +import at.tuwien.api.orcid.person.OrcidPersonDto; +import at.tuwien.api.orcid.person.name.OrcidNameDto; +import at.tuwien.api.orcid.person.name.OrcidValueDto; import at.tuwien.api.semantics.OntologyCreateDto; import at.tuwien.api.semantics.OntologyModifyDto; import at.tuwien.api.user.*; @@ -5728,6 +5738,36 @@ public abstract class BaseTest { public final static Instant CREATOR_1_CREATED = Instant.ofEpochSecond(1641588352); public final static Instant CREATOR_1_MODIFIED = Instant.ofEpochSecond(1541588352); + public final static OrcidDto ORCID_1_DTO = OrcidDto.builder() + .person(OrcidPersonDto.builder() + .name(OrcidNameDto.builder() + .givenNames(OrcidValueDto.builder() + .value(USER_1_FIRSTNAME) + .build()) + .familyName(OrcidValueDto.builder() + .value(USER_1_LASTNAME) + .build()) + .build()) + .build()) + .activitiesSummary(OrcidActivitiesSummaryDto.builder() + .employments(OrcidEmploymentsDto.builder() + .affiliationGroup(new OrcidAffiliationGroupDto[]{ + OrcidAffiliationGroupDto.builder() + .summaries(new OrcidEmploymentSummaryDto[]{ + OrcidEmploymentSummaryDto.builder() + .employmentSummary(OrcidSummaryDto.builder() + .organization(OrcidOrganizationDto.builder() + .name(USER_1_AFFILIATION) + .build()) + .build()) + .build() + }) + .build() + }) + .build()) + .build()) + .build(); + public final static Long CREATOR_2_ID = 2L; public final static Long CREATOR_2_QUERY_ID = 1L; public final static String CREATOR_2_ORCID = "00000-00000-00000"; diff --git a/dbrepo-ui/components/dialogs/Semantics.vue b/dbrepo-ui/components/dialogs/Semantics.vue index 18fdbe4788..4245bd56e5 100644 --- a/dbrepo-ui/components/dialogs/Semantics.vue +++ b/dbrepo-ui/components/dialogs/Semantics.vue @@ -160,6 +160,7 @@ export default { }, watch: { column () { + this.recommendations = [] this.init() }, recommendation (index) { @@ -171,6 +172,7 @@ export default { } }, mounted () { + this.recommendations = [] this.init() }, methods: { diff --git a/dbrepo-ui/components/search/AdvancedSearch.vue b/dbrepo-ui/components/search/AdvancedSearch.vue index 2a89bb91ef..13f0e86243 100644 --- a/dbrepo-ui/components/search/AdvancedSearch.vue +++ b/dbrepo-ui/components/search/AdvancedSearch.vue @@ -70,11 +70,11 @@ clearable /> </v-col> </v-row> - <p v-if="isColumnFilter" class="mt-4"> + <p v-if="isEligibleConceptOrUnitSearch" class="mt-4"> If you select a <code>concept</code> and <code>unit</code>, you can search across columns regardless of their unit of measurement. </p> - <v-row v-if="isColumnFilter" dense> + <v-row v-if="isEligibleConceptOrUnitSearch" dense> <v-col cols="3"> <v-select v-model="advancedSearchData['concept.uri']" @@ -167,8 +167,8 @@ export default { hideInternalNameField: ['identifier', 'user', 'concept', 'unit'].includes(selectedOption) } }, - isColumnFilter () { - return this.advancedSearchData.type === 'column' + isEligibleConceptOrUnitSearch () { + return ['column'].includes(this.advancedSearchData.type) } }, watch: { @@ -251,7 +251,7 @@ export default { identifier: [ 'creators.properties.creator_name', 'creators.properties.name_identifier', 'descriptions.properties.description', 'doi', 'funders.properties.funder_identifier', - 'licenses', 'publication_year', 'titles.properties.title', 'visibility' + 'publication_year', 'titles.properties.title', 'visibility' ], view: ['is_public', 'query'], concept: ['uri'], -- GitLab