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 {
final Identifier identifier = identifierService.find(containerId, databaseId, qid);
log.info("Found identifier with id {} filtered by query id {}", identifier.getId(), 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);
log.info("Found {} identifiers", identifiers.size());
......
package at.tuwien.config;
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 org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
......@@ -11,10 +11,10 @@ public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
return new ObjectMapper()
.findAndRegisterModules()
.registerModule(new JavaTimeModule())
.registerModule(new Jdk8Module());
final ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
return objectMapper;
}
}
......@@ -78,6 +78,27 @@ public interface DocumentMapper {
.append("</language>");
}
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) {
builder.append("<rightsList><rights xml:lang=\"en-US\" schemeURI=\"https://spdx.org/licenses/\" ")
.append("rightsIdentifierScheme=\"SPDX\" rightsIdentifier=\"")
......
......@@ -17,6 +17,10 @@ public interface IdentifierMapper {
@Transactional
Identifier identifierCreateDtoToIdentifier(IdentifierCreateDto data);
/* keep */
@Transactional
RelatedIdentifierDto relatedIdentifierToRelatedIdentifierDto(RelatedIdentifier data);
@Transactional
Identifier identifierDtoToIdentifier(IdentifierDto data);
......
package at.tuwien.api.container;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.Parameter;
import lombok.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Getter
@Setter
......
......@@ -30,6 +30,10 @@ public class DatabaseDto {
@Parameter(name = "database name", example = "Weather Australia")
private String name;
@NotBlank
@Parameter(name = "database exchange")
private String exchange;
@NotNull
@Parameter(name = "database creator")
private UserDto creator;
......
......@@ -37,14 +37,6 @@ public class ColumnCreateDto {
@Parameter(name = "date format id", example = "1")
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
@Parameter(name = "unique", example = "true")
private Boolean unique = false;
......
......@@ -5,6 +5,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.jackson.Jacksonized;
import javax.validation.constraints.NotBlank;
......@@ -12,6 +13,7 @@ import javax.validation.constraints.NotBlank;
@Getter
@Setter
@Builder
@Jacksonized
public class CreatorCreateDto {
@NotBlank
......
......@@ -6,6 +6,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.jackson.Jacksonized;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
......@@ -16,6 +17,7 @@ import java.util.List;
@Getter
@Setter
@Builder
@Jacksonized
public class IdentifierCreateDto {
@NotNull
......
......@@ -50,10 +50,9 @@ public class IdentifierDto {
@Parameter(name = "query normalized")
private String queryNormalized;
@NotNull
@JsonProperty("related_identifiers")
@JsonProperty("related")
@Parameter(name = "related identifiers")
private List<RelatedIdentifierDto> relatedIdentifiers;
private List<RelatedIdentifierDto> related;
@NotBlank
@JsonProperty("query_hash")
......
......@@ -2,6 +2,7 @@ package at.tuwien.api.identifier;
import io.swagger.v3.oas.annotations.Parameter;
import lombok.*;
import lombok.extern.jackson.Jacksonized;
import javax.validation.constraints.NotNull;
......@@ -9,6 +10,7 @@ import javax.validation.constraints.NotNull;
@Getter
@Setter
@Builder
@Jacksonized
public class RelatedIdentifierCreateDto {
@NotNull
......
package at.tuwien.api.identifier;
import at.tuwien.api.user.UserDto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.Parameter;
import lombok.*;
......@@ -17,6 +18,7 @@ public class RelatedIdentifierDto {
@NotNull
private Long id;
@JsonIgnore
@NotNull
private Long iid;
......@@ -31,6 +33,7 @@ public class RelatedIdentifierDto {
private RelationTypeDto relation;
@ToString.Exclude
@JsonIgnore
@NotNull
private UserDto creator;
......
......@@ -88,6 +88,12 @@ public class Identifier {
@Enumerated(EnumType.STRING)
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
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 register or to comment