Skip to content
Snippets Groups Projects
Unverified Commit 3444514b authored by Martin Weise's avatar Martin Weise
Browse files

Related identifier fix, some optical sugar with verified emails

parent fc70e7a5
No related branches found
No related tags found
2 merge requests!81New stable release,!80Multiple features connected with user management and ownership of databases
This commit is part of merge request !81. Comments created here will be created in the context of that merge request.
Showing
with 193 additions and 19 deletions
package at.tuwien.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
return objectMapper;
}
}
package at.tuwien.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
return objectMapper;
}
}
package at.tuwien.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
return objectMapper;
}
}
package at.tuwien.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
return objectMapper;
}
}
package at.tuwien.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
return objectMapper;
}
}
package at.tuwien.gatewayservice.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
return objectMapper;
}
}
...@@ -51,7 +51,8 @@ public class IdentifierEndpoint { ...@@ -51,7 +51,8 @@ public class IdentifierEndpoint {
final Identifier identifier = identifierService.find(containerId, databaseId, qid); final Identifier identifier = identifierService.find(containerId, databaseId, qid);
log.info("Found identifier with id {} filtered by query id {}", identifier.getId(), qid); log.info("Found identifier with id {} filtered by query id {}", identifier.getId(), qid);
log.debug("found identifier {} filtered by query id {}", identifier, qid); log.debug("found identifier {} filtered by query id {}", identifier, qid);
return ResponseEntity.ok(List.of(identifierMapper.identifierToIdentifierDto(identifier))); final IdentifierDto dto = identifierMapper.identifierToIdentifierDto(identifier);
return ResponseEntity.ok(List.of(dto));
} }
final List<Identifier> identifiers = identifierService.findAll(containerId, databaseId); final List<Identifier> identifiers = identifierService.findAll(containerId, databaseId);
log.info("Found {} identifiers", identifiers.size()); log.info("Found {} identifiers", identifiers.size());
......
package at.tuwien.config; package at.tuwien.config;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
...@@ -11,10 +11,10 @@ public class JacksonConfig { ...@@ -11,10 +11,10 @@ public class JacksonConfig {
@Bean @Bean
public ObjectMapper objectMapper() { public ObjectMapper objectMapper() {
return new ObjectMapper() final ObjectMapper objectMapper = new ObjectMapper();
.findAndRegisterModules() objectMapper.registerModule(new JavaTimeModule());
.registerModule(new JavaTimeModule()) objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
.registerModule(new Jdk8Module()); return objectMapper;
} }
} }
...@@ -78,6 +78,27 @@ public interface DocumentMapper { ...@@ -78,6 +78,27 @@ public interface DocumentMapper {
.append("</language>"); .append("</language>");
} }
builder.append("<resourceType resourceTypeGeneral=\"Dataset\">Dataset</resourceType>"); builder.append("<resourceType resourceTypeGeneral=\"Dataset\">Dataset</resourceType>");
if (data.getRelated().size() > 0) {
builder.append("<relatedIdentifiers>");
data.getRelated()
.forEach(related -> {
builder.append("<relatedIdentifier");
if (related.getType() != null) {
builder.append(" relatedIdentifierType=\"")
.append(related.getType())
.append("\"");
}
if (related.getRelation() != null) {
builder.append(" relationType=\"")
.append(related.getRelation())
.append("\"");
}
builder.append(">")
.append(related.getValue())
.append("</relatedIdentifier>");
});
builder.append("</relatedIdentifiers>");
}
if (database.getLicense() != null) { if (database.getLicense() != null) {
builder.append("<rightsList><rights xml:lang=\"en-US\" schemeURI=\"https://spdx.org/licenses/\" ") builder.append("<rightsList><rights xml:lang=\"en-US\" schemeURI=\"https://spdx.org/licenses/\" ")
.append("rightsIdentifierScheme=\"SPDX\" rightsIdentifier=\"") .append("rightsIdentifierScheme=\"SPDX\" rightsIdentifier=\"")
......
...@@ -17,6 +17,10 @@ public interface IdentifierMapper { ...@@ -17,6 +17,10 @@ public interface IdentifierMapper {
@Transactional @Transactional
Identifier identifierCreateDtoToIdentifier(IdentifierCreateDto data); Identifier identifierCreateDtoToIdentifier(IdentifierCreateDto data);
/* keep */
@Transactional
RelatedIdentifierDto relatedIdentifierToRelatedIdentifierDto(RelatedIdentifier data);
@Transactional @Transactional
Identifier identifierDtoToIdentifier(IdentifierDto data); Identifier identifierDtoToIdentifier(IdentifierDto data);
......
package at.tuwien.api.container; package at.tuwien.api.container;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import lombok.*; import lombok.*;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Getter @Getter
@Setter @Setter
......
...@@ -30,6 +30,10 @@ public class DatabaseDto { ...@@ -30,6 +30,10 @@ public class DatabaseDto {
@Parameter(name = "database name", example = "Weather Australia") @Parameter(name = "database name", example = "Weather Australia")
private String name; private String name;
@NotBlank
@Parameter(name = "database exchange")
private String exchange;
@NotNull @NotNull
@Parameter(name = "database creator") @Parameter(name = "database creator")
private UserDto creator; private UserDto creator;
......
...@@ -37,14 +37,6 @@ public class ColumnCreateDto { ...@@ -37,14 +37,6 @@ public class ColumnCreateDto {
@Parameter(name = "date format id", example = "1") @Parameter(name = "date format id", example = "1")
private Long dfid; private Long dfid;
@JsonProperty("decimal_digits_before")
@Parameter(name = "decimal digits before point", example = "3")
private Long decimalDigitsBefore;
@JsonProperty("decimal_digits_after")
@Parameter(name = "decimal digits after point", example = "0")
private Long decimalDigitsAfter;
@NotNull @NotNull
@Parameter(name = "unique", example = "true") @Parameter(name = "unique", example = "true")
private Boolean unique = false; private Boolean unique = false;
......
...@@ -5,6 +5,7 @@ import lombok.Builder; ...@@ -5,6 +5,7 @@ import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.extern.jackson.Jacksonized;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
...@@ -12,6 +13,7 @@ import javax.validation.constraints.NotBlank; ...@@ -12,6 +13,7 @@ import javax.validation.constraints.NotBlank;
@Getter @Getter
@Setter @Setter
@Builder @Builder
@Jacksonized
public class CreatorCreateDto { public class CreatorCreateDto {
@NotBlank @NotBlank
......
...@@ -6,6 +6,7 @@ import lombok.Builder; ...@@ -6,6 +6,7 @@ import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.extern.jackson.Jacksonized;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
...@@ -16,6 +17,7 @@ import java.util.List; ...@@ -16,6 +17,7 @@ import java.util.List;
@Getter @Getter
@Setter @Setter
@Builder @Builder
@Jacksonized
public class IdentifierCreateDto { public class IdentifierCreateDto {
@NotNull @NotNull
......
...@@ -50,10 +50,9 @@ public class IdentifierDto { ...@@ -50,10 +50,9 @@ public class IdentifierDto {
@Parameter(name = "query normalized") @Parameter(name = "query normalized")
private String queryNormalized; private String queryNormalized;
@NotNull @JsonProperty("related")
@JsonProperty("related_identifiers")
@Parameter(name = "related identifiers") @Parameter(name = "related identifiers")
private List<RelatedIdentifierDto> relatedIdentifiers; private List<RelatedIdentifierDto> related;
@NotBlank @NotBlank
@JsonProperty("query_hash") @JsonProperty("query_hash")
......
...@@ -2,6 +2,7 @@ package at.tuwien.api.identifier; ...@@ -2,6 +2,7 @@ package at.tuwien.api.identifier;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import lombok.*; import lombok.*;
import lombok.extern.jackson.Jacksonized;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
...@@ -9,6 +10,7 @@ import javax.validation.constraints.NotNull; ...@@ -9,6 +10,7 @@ import javax.validation.constraints.NotNull;
@Getter @Getter
@Setter @Setter
@Builder @Builder
@Jacksonized
public class RelatedIdentifierCreateDto { public class RelatedIdentifierCreateDto {
@NotNull @NotNull
......
package at.tuwien.api.identifier; package at.tuwien.api.identifier;
import at.tuwien.api.user.UserDto; import at.tuwien.api.user.UserDto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import lombok.*; import lombok.*;
...@@ -17,6 +18,7 @@ public class RelatedIdentifierDto { ...@@ -17,6 +18,7 @@ public class RelatedIdentifierDto {
@NotNull @NotNull
private Long id; private Long id;
@JsonIgnore
@NotNull @NotNull
private Long iid; private Long iid;
...@@ -31,6 +33,7 @@ public class RelatedIdentifierDto { ...@@ -31,6 +33,7 @@ public class RelatedIdentifierDto {
private RelationTypeDto relation; private RelationTypeDto relation;
@ToString.Exclude @ToString.Exclude
@JsonIgnore
@NotNull @NotNull
private UserDto creator; private UserDto creator;
......
...@@ -88,6 +88,12 @@ public class Identifier { ...@@ -88,6 +88,12 @@ public class Identifier {
@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
private VisibilityType visibility = VisibilityType.SELF; private VisibilityType visibility = VisibilityType.SELF;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
@JoinColumns({
@JoinColumn(name = "iid", referencedColumnName = "id", insertable = false, updatable = false)
})
private List<RelatedIdentifier> related;
@Column @Column
private String doi; private String doi;
......
package at.tuwien.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
return objectMapper;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment