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

Merge branch '507-improve-doi-resolving' into 'dev'

Refactored DOI WIP

See merge request !398
parents 34e79afc 24f8498a
No related branches found
No related tags found
2 merge requests!400Need assets path,!398Refactored DOI WIP
package at.ac.tuwien.ifs.dbrepo.service.impl; package at.ac.tuwien.ifs.dbrepo.service.impl;
import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossrefDto; import at.ac.tuwien.ifs.dbrepo.config.MetadataConfig;
import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossRefDto;
import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto; import at.ac.tuwien.ifs.dbrepo.core.api.orcid.OrcidDto;
import at.ac.tuwien.ifs.dbrepo.core.api.ror.RorDto; import at.ac.tuwien.ifs.dbrepo.core.api.ror.RorDto;
import at.ac.tuwien.ifs.dbrepo.core.api.user.external.ExternalMetadataDto; import at.ac.tuwien.ifs.dbrepo.core.api.user.external.ExternalMetadataDto;
import at.ac.tuwien.ifs.dbrepo.config.MetadataConfig;
import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier; import at.ac.tuwien.ifs.dbrepo.core.entity.identifier.Identifier;
import at.ac.tuwien.ifs.dbrepo.core.exception.*; import at.ac.tuwien.ifs.dbrepo.core.exception.*;
import at.ac.tuwien.ifs.dbrepo.core.mapper.MetadataMapper; import at.ac.tuwien.ifs.dbrepo.core.mapper.MetadataMapper;
import at.ac.tuwien.ifs.dbrepo.gateway.CrossrefGateway; import at.ac.tuwien.ifs.dbrepo.gateway.CrossRefGateway;
import at.ac.tuwien.ifs.dbrepo.gateway.OrcidGateway; import at.ac.tuwien.ifs.dbrepo.gateway.OrcidGateway;
import at.ac.tuwien.ifs.dbrepo.gateway.RorGateway; import at.ac.tuwien.ifs.dbrepo.gateway.RorGateway;
import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiErrorType; import at.ac.tuwien.ifs.dbrepo.oaipmh.OaiErrorType;
...@@ -39,21 +39,21 @@ public class MetadataServiceImpl implements MetadataService { ...@@ -39,21 +39,21 @@ public class MetadataServiceImpl implements MetadataService {
private final MetadataConfig metadataConfig; private final MetadataConfig metadataConfig;
private final MetadataMapper metadataMapper; private final MetadataMapper metadataMapper;
private final TemplateEngine templateEngine; private final TemplateEngine templateEngine;
private final CrossrefGateway crossrefGateway; private final CrossRefGateway crossRefGateway;
private final IdentifierService identifierService; private final IdentifierService identifierService;
private final IdentifierRepository identifierRepository; private final IdentifierRepository identifierRepository;
@Autowired @Autowired
public MetadataServiceImpl(RorGateway rorGateway, OrcidGateway orcidGateway, MetadataConfig metadataConfig, public MetadataServiceImpl(RorGateway rorGateway, OrcidGateway orcidGateway, MetadataConfig metadataConfig,
MetadataMapper metadataMapper, TemplateEngine templateEngine, MetadataMapper metadataMapper, TemplateEngine templateEngine,
CrossrefGateway crossrefGateway, IdentifierService identifierService, CrossRefGateway crossRefGateway, IdentifierService identifierService,
IdentifierRepository identifierRepository) { IdentifierRepository identifierRepository) {
this.rorGateway = rorGateway; this.rorGateway = rorGateway;
this.orcidGateway = orcidGateway; this.orcidGateway = orcidGateway;
this.metadataConfig = metadataConfig; this.metadataConfig = metadataConfig;
this.metadataMapper = metadataMapper; this.metadataMapper = metadataMapper;
this.templateEngine = templateEngine; this.templateEngine = templateEngine;
this.crossrefGateway = crossrefGateway; this.crossRefGateway = crossRefGateway;
this.identifierService = identifierService; this.identifierService = identifierService;
this.identifierRepository = identifierRepository; this.identifierRepository = identifierRepository;
} }
...@@ -177,7 +177,7 @@ public class MetadataServiceImpl implements MetadataService { ...@@ -177,7 +177,7 @@ public class MetadataServiceImpl implements MetadataService {
throw new RorNotFoundException("Failed to find metadata from CrossRef URL: too short"); throw new RorNotFoundException("Failed to find metadata from CrossRef URL: too short");
} }
final String id = url.substring(idx + 8); final String id = url.substring(idx + 8);
final CrossrefDto crossrefDto = crossrefGateway.findById(id); final CrossRefDto crossrefDto = crossRefGateway.findById(id);
return metadataMapper.crossrefDtoToExternalMetadataDto(crossrefDto); return metadataMapper.crossrefDtoToExternalMetadataDto(crossrefDto);
} }
log.error("Failed to find metadata: unsupported identifier {}", url); log.error("Failed to find metadata: unsupported identifier {}", url);
......
package at.ac.tuwien.ifs.dbrepo.core.api.crossref; package at.ac.tuwien.ifs.dbrepo.core.api.crossref;
import at.ac.tuwien.ifs.dbrepo.core.api.crossref.label.CrossrefPrefLabelDto; import at.ac.tuwien.ifs.dbrepo.core.api.crossref.label.CrossRefPrefLabelDto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import lombok.extern.jackson.Jacksonized; import lombok.extern.jackson.Jacksonized;
...@@ -13,11 +13,11 @@ import lombok.extern.jackson.Jacksonized; ...@@ -13,11 +13,11 @@ import lombok.extern.jackson.Jacksonized;
@AllArgsConstructor @AllArgsConstructor
@Jacksonized @Jacksonized
@ToString @ToString
public class CrossrefDto { public class CrossRefDto {
@Schema(example = "https://doi.org/10.13039/100000001") @Schema(example = "https://doi.org/10.13039/100000001")
private String id; private String id;
private CrossrefPrefLabelDto prefLabel; private CrossRefPrefLabelDto prefLabel;
} }
...@@ -12,7 +12,7 @@ import lombok.extern.jackson.Jacksonized; ...@@ -12,7 +12,7 @@ import lombok.extern.jackson.Jacksonized;
@AllArgsConstructor @AllArgsConstructor
@Jacksonized @Jacksonized
@ToString @ToString
public class CrossrefLiteralFormDto { public class CrossRefLiteralFormDto {
@Schema(example = "en") @Schema(example = "en")
private String lang; private String lang;
......
package at.ac.tuwien.ifs.dbrepo.core.api.crossref.label; package at.ac.tuwien.ifs.dbrepo.core.api.crossref.label;
import at.ac.tuwien.ifs.dbrepo.core.api.crossref.form.CrossrefLiteralFormDto; import at.ac.tuwien.ifs.dbrepo.core.api.crossref.form.CrossRefLiteralFormDto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import lombok.extern.jackson.Jacksonized; import lombok.extern.jackson.Jacksonized;
...@@ -13,9 +13,9 @@ import lombok.extern.jackson.Jacksonized; ...@@ -13,9 +13,9 @@ import lombok.extern.jackson.Jacksonized;
@AllArgsConstructor @AllArgsConstructor
@Jacksonized @Jacksonized
@ToString @ToString
public class CrossrefLabelDto { public class CrossRefLabelDto {
private CrossrefLiteralFormDto literalForm; private CrossRefLiteralFormDto literalForm;
@Schema(example = "http://data.crossref.org/fundingdata/vocabulary/Label-36515") @Schema(example = "http://data.crossref.org/fundingdata/vocabulary/Label-36515")
private String about; private String about;
......
...@@ -12,9 +12,9 @@ import lombok.extern.jackson.Jacksonized; ...@@ -12,9 +12,9 @@ import lombok.extern.jackson.Jacksonized;
@AllArgsConstructor @AllArgsConstructor
@Jacksonized @Jacksonized
@ToString @ToString
public class CrossrefPrefLabelDto { public class CrossRefPrefLabelDto {
@JsonProperty("Label") @JsonProperty("Label")
private CrossrefLabelDto label; private CrossRefLabelDto label;
} }
...@@ -7,7 +7,7 @@ import at.ac.tuwien.ifs.dbrepo.core.api.container.image.DataTypeDto; ...@@ -7,7 +7,7 @@ import at.ac.tuwien.ifs.dbrepo.core.api.container.image.DataTypeDto;
import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageBriefDto; import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageBriefDto;
import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto; import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageCreateDto;
import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageDto; import at.ac.tuwien.ifs.dbrepo.core.api.container.image.ImageDto;
import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossrefDto; import at.ac.tuwien.ifs.dbrepo.core.api.crossref.CrossRefDto;
import at.ac.tuwien.ifs.dbrepo.core.api.database.*; import at.ac.tuwien.ifs.dbrepo.core.api.database.*;
import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto; import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableBriefDto;
import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto; import at.ac.tuwien.ifs.dbrepo.core.api.database.table.TableDto;
...@@ -355,7 +355,7 @@ public interface MetadataMapper { ...@@ -355,7 +355,7 @@ public interface MetadataMapper {
.build(); .build();
} }
default ExternalMetadataDto crossrefDtoToExternalMetadataDto(CrossrefDto data) { default ExternalMetadataDto crossrefDtoToExternalMetadataDto(CrossRefDto data) {
return ExternalMetadataDto.builder() return ExternalMetadataDto.builder()
.affiliations(new ExternalAffiliationDto[]{ .affiliations(new ExternalAffiliationDto[]{
ExternalAffiliationDto.builder() ExternalAffiliationDto.builder()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment