diff --git a/src/main/java/eu/dissco/core/handlemanager/domain/fdo/MappingRequest.java b/src/main/java/eu/dissco/core/handlemanager/domain/fdo/DataMappingRequest.java similarity index 84% rename from src/main/java/eu/dissco/core/handlemanager/domain/fdo/MappingRequest.java rename to src/main/java/eu/dissco/core/handlemanager/domain/fdo/DataMappingRequest.java index 8dfdbc1d..3c6b6808 100644 --- a/src/main/java/eu/dissco/core/handlemanager/domain/fdo/MappingRequest.java +++ b/src/main/java/eu/dissco/core/handlemanager/domain/fdo/DataMappingRequest.java @@ -9,12 +9,12 @@ @Getter @ToString @EqualsAndHashCode(callSuper = true) -public class MappingRequest extends HandleRecordRequest { +public class DataMappingRequest extends HandleRecordRequest { @JsonProperty(required = true) private final String sourceDataStandard; - public MappingRequest(String issuedForAgent, + public DataMappingRequest(String issuedForAgent, String pidIssuer, String[] locations, String sourceDataStandard) { super(issuedForAgent, pidIssuer, StructuralType.DIGITAL, locations); diff --git a/src/main/java/eu/dissco/core/handlemanager/domain/fdo/MediaObjectRequest.java b/src/main/java/eu/dissco/core/handlemanager/domain/fdo/DigitalMediaRequest.java similarity index 95% rename from src/main/java/eu/dissco/core/handlemanager/domain/fdo/MediaObjectRequest.java rename to src/main/java/eu/dissco/core/handlemanager/domain/fdo/DigitalMediaRequest.java index 6ff348fc..d1a19f28 100644 --- a/src/main/java/eu/dissco/core/handlemanager/domain/fdo/MediaObjectRequest.java +++ b/src/main/java/eu/dissco/core/handlemanager/domain/fdo/DigitalMediaRequest.java @@ -15,7 +15,7 @@ @Getter @ToString @EqualsAndHashCode(callSuper = true) -public class MediaObjectRequest extends DoiRecordRequest { +public class DigitalMediaRequest extends DoiRecordRequest { @JsonProperty(required = true) private final String mediaHost; @@ -58,7 +58,7 @@ public class MediaObjectRequest extends DoiRecordRequest { @JsonProperty(value = "dcterms:conformsTo") private final String dctermsConformsTo; - public MediaObjectRequest( + public DigitalMediaRequest( String issuedForAgent, String pidIssuer, String[] locations, @@ -88,7 +88,7 @@ public MediaObjectRequest( ) throws InvalidRequestException { super(issuedForAgent, pidIssuer, StructuralType.DIGITAL, locations, - referentName, FdoType.MEDIA_OBJECT.getDigitalObjectName(), primaryReferentType); + referentName, FdoType.DIGITAL_MEDIA.getDigitalObjectName(), primaryReferentType); this.mediaHost = mediaHost; this.mediaHostName = mediaHostName; this.mediaFormat = mediaFormat; diff --git a/src/main/java/eu/dissco/core/handlemanager/domain/fdo/FdoType.java b/src/main/java/eu/dissco/core/handlemanager/domain/fdo/FdoType.java index 8e7e5991..3f75b5b1 100644 --- a/src/main/java/eu/dissco/core/handlemanager/domain/fdo/FdoType.java +++ b/src/main/java/eu/dissco/core/handlemanager/domain/fdo/FdoType.java @@ -19,8 +19,8 @@ public enum FdoType { "DigitalSpecimen", "https://hdl.handle.net/21.T11148/894b1e6cad57e921764e", "https://hdl.handle.net/21.T11148/894b1e6cad57e921764e"), - @JsonProperty("https://hdl.handle.net/21.T11148/bbad8c4e101e8af01115") MEDIA_OBJECT( - "MediaObject", + @JsonProperty("https://hdl.handle.net/21.T11148/bbad8c4e101e8af01115") DIGITAL_MEDIA( + "DigitalMedia", "https://hdl.handle.net/21.T11148/bbad8c4e101e8af01115", "https://hdl.handle.net/21.T11148/bbad8c4e101e8af01115"), @JsonProperty("https://hdl.handle.net/21.T11148/cf458ca9ee1d44a5608f") ANNOTATION( @@ -31,8 +31,8 @@ public enum FdoType { "sourceSystem", "https://hdl.handle.net/21.T11148/417a4f472f60f7974c12", "https://hdl.handle.net/21.T11148/417a4f472f60f7974c12"), - @JsonProperty("https://hdl.handle.net/21.T11148/ce794a6f4df42eb7e77e") MAPPING( - "Mapping", + @JsonProperty("https://hdl.handle.net/21.T11148/ce794a6f4df42eb7e77e") DATA_MAPPING( + "Data Mapping", "https://hdl.handle.net/21.T11148/ce794a6f4df42eb7e77e", "https://hdl.handle.net/21.T11148/ce794a6f4df42eb7e77e"), @JsonProperty("https://hdl.handle.net/21.T11148/413c00cbd83ae33d1ac0") ORGANISATION( diff --git a/src/main/java/eu/dissco/core/handlemanager/domain/validation/JsonSchemaValidator.java b/src/main/java/eu/dissco/core/handlemanager/domain/validation/JsonSchemaValidator.java index 7cd4f38e..a04c3fc7 100644 --- a/src/main/java/eu/dissco/core/handlemanager/domain/validation/JsonSchemaValidator.java +++ b/src/main/java/eu/dissco/core/handlemanager/domain/validation/JsonSchemaValidator.java @@ -17,20 +17,20 @@ import com.networknt.schema.JsonSchemaFactory; import com.networknt.schema.SpecVersion.VersionFlag; import com.networknt.schema.ValidationMessage; -import eu.dissco.core.handlemanager.domain.fdo.FdoType; -import eu.dissco.core.handlemanager.domain.requests.PatchRequest; -import eu.dissco.core.handlemanager.domain.requests.PostRequest; -import eu.dissco.core.handlemanager.domain.requests.PutRequest; import eu.dissco.core.handlemanager.domain.fdo.AnnotationRequest; +import eu.dissco.core.handlemanager.domain.fdo.DataMappingRequest; +import eu.dissco.core.handlemanager.domain.fdo.DigitalMediaRequest; import eu.dissco.core.handlemanager.domain.fdo.DigitalSpecimenRequest; import eu.dissco.core.handlemanager.domain.fdo.DoiRecordRequest; +import eu.dissco.core.handlemanager.domain.fdo.FdoType; import eu.dissco.core.handlemanager.domain.fdo.HandleRecordRequest; -import eu.dissco.core.handlemanager.domain.fdo.MappingRequest; import eu.dissco.core.handlemanager.domain.fdo.MasRequest; -import eu.dissco.core.handlemanager.domain.fdo.MediaObjectRequest; import eu.dissco.core.handlemanager.domain.fdo.OrganisationRequest; import eu.dissco.core.handlemanager.domain.fdo.SourceSystemRequest; import eu.dissco.core.handlemanager.domain.fdo.TombstoneRecordRequest; +import eu.dissco.core.handlemanager.domain.requests.PatchRequest; +import eu.dissco.core.handlemanager.domain.requests.PostRequest; +import eu.dissco.core.handlemanager.domain.requests.PutRequest; import eu.dissco.core.handlemanager.exceptions.InvalidRequestException; import jakarta.validation.constraints.NotEmpty; import java.util.Arrays; @@ -55,8 +55,8 @@ public class JsonSchemaValidator { private JsonNode doiPatchReqJsonNode; private JsonNode digitalSpecimenPostReqJsonNode; private JsonNode digitalSpecimenPatchReqJsonNode; - private JsonNode mediaObjectPostReqJsonNode; - private JsonNode mediaObjectPatchReqJsonNode; + private JsonNode digitalMediaPostReqJsonNode; + private JsonNode digitalMediaPatchReqJsonNode; private JsonNode tombstoneReqJsonNode; private JsonNode annotationPostReqJsonNode; private JsonNode annotationPatchReqJsonNode; @@ -79,8 +79,8 @@ public class JsonSchemaValidator { private JsonSchema doiPatchReqSchema; private JsonSchema digitalSpecimenPostReqSchema; private JsonSchema digitalSpecimenPatchReqSchema; - private JsonSchema mediaObjectPostReqSchema; - private JsonSchema mediaObjectPatchReqSchema; + private JsonSchema digitalMediaPostReqSchema; + private JsonSchema digitalMediaPatchReqSchema; private JsonSchema tombstoneReqSchema; private JsonSchema annotationPostReqSchema; private JsonSchema annotationPatchReqSchema; @@ -105,10 +105,10 @@ private void setPostRequestAttributesJsonNodes() { handlePostReqJsonNode = schemaGenerator.generateSchema(HandleRecordRequest.class); doiPostReqJsonNode = schemaGenerator.generateSchema(DoiRecordRequest.class); digitalSpecimenPostReqJsonNode = schemaGenerator.generateSchema(DigitalSpecimenRequest.class); - mediaObjectPostReqJsonNode = schemaGenerator.generateSchema(MediaObjectRequest.class); + digitalMediaPostReqJsonNode = schemaGenerator.generateSchema(DigitalMediaRequest.class); tombstoneReqJsonNode = schemaGenerator.generateSchema(TombstoneRecordRequest.class); annotationPostReqJsonNode = schemaGenerator.generateSchema(AnnotationRequest.class); - mappingPostReqJsonNode = schemaGenerator.generateSchema(MappingRequest.class); + mappingPostReqJsonNode = schemaGenerator.generateSchema(DataMappingRequest.class); sourceSystemPostReqJsonNode = schemaGenerator.generateSchema(SourceSystemRequest.class); organisationPostReqJsonNode = schemaGenerator.generateSchema(OrganisationRequest.class); masPostReqJsonNode = schemaGenerator.generateSchema(MasRequest.class); @@ -156,9 +156,9 @@ private void setPatchRequestAttributesJsonNodes() { handlePatchReqJsonNode = schemaGenerator.generateSchema(HandleRecordRequest.class); doiPatchReqJsonNode = schemaGenerator.generateSchema(DoiRecordRequest.class); digitalSpecimenPatchReqJsonNode = schemaGenerator.generateSchema(DigitalSpecimenRequest.class); - mediaObjectPatchReqJsonNode = schemaGenerator.generateSchema(MediaObjectRequest.class); + digitalMediaPatchReqJsonNode = schemaGenerator.generateSchema(DigitalMediaRequest.class); annotationPatchReqJsonNode = schemaGenerator.generateSchema(AnnotationRequest.class); - mappingPatchReqJsonNode = schemaGenerator.generateSchema(MappingRequest.class); + mappingPatchReqJsonNode = schemaGenerator.generateSchema(DataMappingRequest.class); sourceSystemPatchReqJsonNode = schemaGenerator.generateSchema(SourceSystemRequest.class); organisationPatchReqJsonNode = schemaGenerator.generateSchema(OrganisationRequest.class); masPatchReqJsonNode = schemaGenerator.generateSchema(MasRequest.class); @@ -232,7 +232,7 @@ private void setJsonSchemas() { handlePostReqSchema = factory.getSchema(handlePostReqJsonNode); doiPostReqSchema = factory.getSchema(doiPostReqJsonNode); digitalSpecimenPostReqSchema = factory.getSchema(digitalSpecimenPostReqJsonNode); - mediaObjectPostReqSchema = factory.getSchema(mediaObjectPostReqJsonNode); + digitalMediaPostReqSchema = factory.getSchema(digitalMediaPostReqJsonNode); annotationPostReqSchema = factory.getSchema(annotationPostReqJsonNode); mappingPostReqSchema = factory.getSchema(mappingPostReqJsonNode); sourceSystemPostReqSchema = factory.getSchema(sourceSystemPostReqJsonNode); @@ -242,7 +242,7 @@ private void setJsonSchemas() { handlePatchReqSchema = factory.getSchema(handlePatchReqJsonNode); doiPatchReqSchema = factory.getSchema(doiPatchReqJsonNode); digitalSpecimenPatchReqSchema = factory.getSchema(digitalSpecimenPatchReqJsonNode); - mediaObjectPatchReqSchema = factory.getSchema(mediaObjectPatchReqJsonNode); + digitalMediaPatchReqSchema = factory.getSchema(digitalMediaPatchReqJsonNode); annotationPatchReqSchema = factory.getSchema(annotationPatchReqJsonNode); mappingPatchReqSchema = factory.getSchema(mappingPatchReqJsonNode); sourceSystemPatchReqSchema = factory.getSchema(sourceSystemPatchReqJsonNode); @@ -266,9 +266,9 @@ public void validatePostRequest(JsonNode requestRoot) throws InvalidRequestExcep case DOI -> validateRequestAttributes(attributes, doiPostReqSchema, type); case DIGITAL_SPECIMEN -> validateRequestAttributes(attributes, digitalSpecimenPostReqSchema, type); - case MEDIA_OBJECT -> validateRequestAttributes(attributes, mediaObjectPostReqSchema, type); + case DIGITAL_MEDIA -> validateRequestAttributes(attributes, digitalMediaPostReqSchema, type); case ANNOTATION -> validateRequestAttributes(attributes, annotationPostReqSchema, type); - case MAPPING -> validateRequestAttributes(attributes, mappingPostReqSchema, type); + case DATA_MAPPING -> validateRequestAttributes(attributes, mappingPostReqSchema, type); case SOURCE_SYSTEM -> validateRequestAttributes(attributes, sourceSystemPostReqSchema, type); case ORGANISATION -> validateRequestAttributes(attributes, organisationPostReqSchema, type); case MAS -> validateRequestAttributes(attributes, masPostReqSchema, type); @@ -290,9 +290,9 @@ public void validatePatchRequest(JsonNode requestRoot) throws InvalidRequestExce case DOI -> validateRequestAttributes(attributes, doiPatchReqSchema, type); case DIGITAL_SPECIMEN -> validateRequestAttributes(attributes, digitalSpecimenPatchReqSchema, type); - case MEDIA_OBJECT -> validateRequestAttributes(attributes, mediaObjectPatchReqSchema, type); + case DIGITAL_MEDIA -> validateRequestAttributes(attributes, digitalMediaPatchReqSchema, type); case ANNOTATION -> validateRequestAttributes(attributes, annotationPatchReqSchema, type); - case MAPPING -> validateRequestAttributes(attributes, mappingPatchReqSchema, type); + case DATA_MAPPING -> validateRequestAttributes(attributes, mappingPatchReqSchema, type); case SOURCE_SYSTEM -> validateRequestAttributes(attributes, sourceSystemPatchReqSchema, type); case ORGANISATION -> validateRequestAttributes(attributes, organisationPatchReqSchema, type); case MAS -> validateRequestAttributes(attributes, masPatchReqSchema, type); diff --git a/src/main/java/eu/dissco/core/handlemanager/service/DoiService.java b/src/main/java/eu/dissco/core/handlemanager/service/DoiService.java index ea1dc889..941c6486 100644 --- a/src/main/java/eu/dissco/core/handlemanager/service/DoiService.java +++ b/src/main/java/eu/dissco/core/handlemanager/service/DoiService.java @@ -1,8 +1,8 @@ package eu.dissco.core.handlemanager.service; +import static eu.dissco.core.handlemanager.domain.fdo.FdoType.DIGITAL_MEDIA; import static eu.dissco.core.handlemanager.domain.fdo.FdoType.DIGITAL_SPECIMEN; -import static eu.dissco.core.handlemanager.domain.fdo.FdoType.MEDIA_OBJECT; import static eu.dissco.core.handlemanager.domain.jsonapi.JsonApiFields.NODE_ATTRIBUTES; import static eu.dissco.core.handlemanager.domain.jsonapi.JsonApiFields.NODE_DATA; @@ -58,7 +58,7 @@ public JsonApiWrapperWrite createRecords(List requests) switch (type) { case DIGITAL_SPECIMEN -> handleAttributes = createDigitalSpecimen(requestAttributes, handles); - case MEDIA_OBJECT -> handleAttributes = createMediaObject(requestAttributes, handles); + case DIGITAL_MEDIA -> handleAttributes = createDigitalMedia(requestAttributes, handles); default -> throw new UnsupportedOperationException( type + " is not an appropriate Type for DOI endpoint."); } @@ -78,7 +78,7 @@ public JsonApiWrapperWrite createRecords(List requests) public JsonApiWrapperWrite updateRecords(List requests, boolean incrementVersion) throws InvalidRequestException, UnprocessableEntityException { var type = getObjectTypeFromJsonNode(requests); - if (!DIGITAL_SPECIMEN.equals(type) && !MEDIA_OBJECT.equals(type)) { + if (!DIGITAL_SPECIMEN.equals(type) && !DIGITAL_MEDIA.equals(type)) { throw new InvalidRequestException(TYPE_ERROR_MESSAGE); } var attributesToUpdate = getAttributesToUpdate(requests); diff --git a/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java b/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java index 6daab967..3c533b2f 100644 --- a/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java +++ b/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java @@ -69,8 +69,8 @@ import static eu.dissco.core.handlemanager.domain.fdo.FdoProfile.TOPIC_DOMAIN; import static eu.dissco.core.handlemanager.domain.fdo.FdoProfile.TOPIC_ORIGIN; import static eu.dissco.core.handlemanager.domain.fdo.FdoProfile.WAS_DERIVED_FROM_ENTITY; +import static eu.dissco.core.handlemanager.domain.fdo.FdoType.DATA_MAPPING; import static eu.dissco.core.handlemanager.domain.fdo.FdoType.DIGITAL_SPECIMEN; -import static eu.dissco.core.handlemanager.domain.fdo.FdoType.MAPPING; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; @@ -80,14 +80,14 @@ import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.TextNode; import eu.dissco.core.handlemanager.domain.fdo.AnnotationRequest; +import eu.dissco.core.handlemanager.domain.fdo.DataMappingRequest; +import eu.dissco.core.handlemanager.domain.fdo.DigitalMediaRequest; import eu.dissco.core.handlemanager.domain.fdo.DigitalSpecimenRequest; import eu.dissco.core.handlemanager.domain.fdo.DoiRecordRequest; import eu.dissco.core.handlemanager.domain.fdo.FdoProfile; import eu.dissco.core.handlemanager.domain.fdo.FdoType; import eu.dissco.core.handlemanager.domain.fdo.HandleRecordRequest; -import eu.dissco.core.handlemanager.domain.fdo.MappingRequest; import eu.dissco.core.handlemanager.domain.fdo.MasRequest; -import eu.dissco.core.handlemanager.domain.fdo.MediaObjectRequest; import eu.dissco.core.handlemanager.domain.fdo.OrganisationRequest; import eu.dissco.core.handlemanager.domain.fdo.SourceSystemRequest; import eu.dissco.core.handlemanager.domain.repsitoryobjects.HandleAttribute; @@ -262,9 +262,9 @@ public List prepareDoiRecordAttributes(DoiRecordRequest request return fdoRecord; } - public List prepareMediaObjectAttributes(MediaObjectRequest request, + public List prepareDigitalMediaAttributes(DigitalMediaRequest request, byte[] handle) throws InvalidRequestException { - var fdoRecord = prepareDoiRecordAttributes(request, handle, FdoType.MEDIA_OBJECT); + var fdoRecord = prepareDoiRecordAttributes(request, handle, FdoType.DIGITAL_MEDIA); fdoRecord.add(new HandleAttribute(MEDIA_HOST, handle, request.getMediaHost())); var mediaHostName = setHostName(request.getMediaHostName(), request.getMediaHost(), handle, @@ -390,9 +390,10 @@ public List prepareOrganisationAttributes(OrganisationRequest r return fdoRecord; } - public List prepareMappingAttributes(MappingRequest request, byte[] handle) + public List prepareDataMappingAttributes(DataMappingRequest request, + byte[] handle) throws InvalidRequestException { - var fdoRecord = prepareHandleRecordAttributes(request, handle, MAPPING); + var fdoRecord = prepareHandleRecordAttributes(request, handle, DATA_MAPPING); // 700 Source Data Standard fdoRecord.add( @@ -688,13 +689,13 @@ private String[] defaultLocations(String handle, FdoType type) { String ui = appProperties.getUiUrl() + "/ds/" + handle; return new String[]{ui, api}; } - case MAPPING -> { + case DATA_MAPPING -> { return new String[]{appProperties.getOrchestrationUrl() + "/mapping/" + handle}; } case SOURCE_SYSTEM -> { return new String[]{appProperties.getOrchestrationUrl() + "/source-system/" + handle}; } - case MEDIA_OBJECT -> { + case DIGITAL_MEDIA -> { String api = appProperties.getApiUrl() + "/digitalMedia/" + handle; String ui = appProperties.getUiUrl() + "/dm/" + handle; return new String[]{ui, api}; diff --git a/src/main/java/eu/dissco/core/handlemanager/service/HandleService.java b/src/main/java/eu/dissco/core/handlemanager/service/HandleService.java index 8d628864..b7fc4bc9 100644 --- a/src/main/java/eu/dissco/core/handlemanager/service/HandleService.java +++ b/src/main/java/eu/dissco/core/handlemanager/service/HandleService.java @@ -10,9 +10,9 @@ import com.fasterxml.jackson.databind.ObjectMapper; import eu.dissco.core.handlemanager.Profiles; import eu.dissco.core.handlemanager.domain.fdo.AnnotationRequest; +import eu.dissco.core.handlemanager.domain.fdo.DataMappingRequest; import eu.dissco.core.handlemanager.domain.fdo.DoiRecordRequest; import eu.dissco.core.handlemanager.domain.fdo.HandleRecordRequest; -import eu.dissco.core.handlemanager.domain.fdo.MappingRequest; import eu.dissco.core.handlemanager.domain.fdo.MasRequest; import eu.dissco.core.handlemanager.domain.fdo.OrganisationRequest; import eu.dissco.core.handlemanager.domain.fdo.SourceSystemRequest; @@ -55,9 +55,9 @@ public JsonApiWrapperWrite createRecords(List requests) throws Invalid handleAttributes = createDigitalSpecimen(requestAttributes, handles); case DOI -> handleAttributes = createDoi(requestAttributes, handles); case HANDLE -> handleAttributes = createHandle(requestAttributes, handles); - case MAPPING -> handleAttributes = createMapping(requestAttributes, handles); + case DATA_MAPPING -> handleAttributes = createMapping(requestAttributes, handles); case MAS -> handleAttributes = createMas(requestAttributes, handles); - case MEDIA_OBJECT -> handleAttributes = createMediaObject(requestAttributes, handles); + case DIGITAL_MEDIA -> handleAttributes = createDigitalMedia(requestAttributes, handles); case ORGANISATION -> handleAttributes = createOrganisation(requestAttributes, handles); case SOURCE_SYSTEM -> handleAttributes = createSourceSystem(requestAttributes, handles); default -> throw new UnsupportedOperationException("Unrecognized type"); @@ -116,8 +116,9 @@ private List createMapping(List requestAttributes, List handleAttributes = new ArrayList<>(); for (var request : requestAttributes) { var thisHandle = handleIterator.next(); - var requestObject = mapper.treeToValue(request, MappingRequest.class); - handleAttributes.addAll(fdoRecordService.prepareMappingAttributes(requestObject, thisHandle)); + var requestObject = mapper.treeToValue(request, DataMappingRequest.class); + handleAttributes.addAll( + fdoRecordService.prepareDataMappingAttributes(requestObject, thisHandle)); } return handleAttributes; } diff --git a/src/main/java/eu/dissco/core/handlemanager/service/PidService.java b/src/main/java/eu/dissco/core/handlemanager/service/PidService.java index 01138a85..7b57be85 100644 --- a/src/main/java/eu/dissco/core/handlemanager/service/PidService.java +++ b/src/main/java/eu/dissco/core/handlemanager/service/PidService.java @@ -8,8 +8,8 @@ import static eu.dissco.core.handlemanager.domain.fdo.FdoProfile.PRIMARY_MEDIA_ID; import static eu.dissco.core.handlemanager.domain.fdo.FdoProfile.PRIMARY_SPECIMEN_OBJECT_ID; import static eu.dissco.core.handlemanager.domain.fdo.FdoType.ANNOTATION; +import static eu.dissco.core.handlemanager.domain.fdo.FdoType.DIGITAL_MEDIA; import static eu.dissco.core.handlemanager.domain.fdo.FdoType.DIGITAL_SPECIMEN; -import static eu.dissco.core.handlemanager.domain.fdo.FdoType.MEDIA_OBJECT; import static eu.dissco.core.handlemanager.domain.jsonapi.JsonApiFields.NODE_ATTRIBUTES; import static eu.dissco.core.handlemanager.domain.jsonapi.JsonApiFields.NODE_DATA; import static eu.dissco.core.handlemanager.domain.jsonapi.JsonApiFields.NODE_ID; @@ -19,9 +19,9 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; +import eu.dissco.core.handlemanager.domain.fdo.DigitalMediaRequest; import eu.dissco.core.handlemanager.domain.fdo.DigitalSpecimenRequest; import eu.dissco.core.handlemanager.domain.fdo.FdoType; -import eu.dissco.core.handlemanager.domain.fdo.MediaObjectRequest; import eu.dissco.core.handlemanager.domain.jsonapi.JsonApiDataLinks; import eu.dissco.core.handlemanager.domain.jsonapi.JsonApiLinks; import eu.dissco.core.handlemanager.domain.jsonapi.JsonApiWrapperRead; @@ -102,7 +102,7 @@ protected List formatCreateRecords(List dbRec case DIGITAL_SPECIMEN -> { return formatCreateRecordsSpecimen(handleMap); } - case MEDIA_OBJECT -> { + case DIGITAL_MEDIA -> { return formatCreateRecordsMedia(handleMap); } default -> { @@ -152,7 +152,8 @@ private List formatCreateRecordsMedia( var rootNode = jsonFormatSingleRecord(subRecord); String pidLink = profileProperties.getDomain() + handleRecord.getKey(); dataLinksList.add( - new JsonApiDataLinks(handleRecord.getKey(), MEDIA_OBJECT.getDigitalObjectType(), rootNode, + new JsonApiDataLinks(handleRecord.getKey(), DIGITAL_MEDIA.getDigitalObjectType(), + rootNode, new JsonApiLinks(pidLink))); } return dataLinksList; @@ -304,15 +305,15 @@ private void verifySpecimensAreNew(List requests) } - protected List createMediaObject(List requestAttributes, + protected List createDigitalMedia(List requestAttributes, Iterator handleIterator) throws JsonProcessingException, InvalidRequestException { List handleAttributes = new ArrayList<>(); for (var request : requestAttributes) { var thisHandle = handleIterator.next(); - var requestObject = mapper.treeToValue(request, MediaObjectRequest.class); + var requestObject = mapper.treeToValue(request, DigitalMediaRequest.class); handleAttributes.addAll( - fdoRecordService.prepareMediaObjectAttributes(requestObject, thisHandle)); + fdoRecordService.prepareDigitalMediaAttributes(requestObject, thisHandle)); } return handleAttributes; } diff --git a/src/test/java/eu/dissco/core/handlemanager/controller/PidControllerTest.java b/src/test/java/eu/dissco/core/handlemanager/controller/PidControllerTest.java index bbc55d7c..6b0cee9d 100644 --- a/src/test/java/eu/dissco/core/handlemanager/controller/PidControllerTest.java +++ b/src/test/java/eu/dissco/core/handlemanager/controller/PidControllerTest.java @@ -15,10 +15,10 @@ import static eu.dissco.core.handlemanager.testUtils.TestUtils.genTombstoneRequest; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genUpdateRequestAltLoc; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenAnnotationRequestObject; +import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenDataMappingRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenDigitalSpecimenRequestObjectNullOptionals; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenDoiRecordRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenHandleRecordRequestObject; -import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenMappingRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenMediaRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenRecordResponseRead; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenRecordResponseReadSingle; @@ -256,13 +256,13 @@ void testCreateDigitalSpecimenRecord() throws Exception { } @Test - void testCreateMediaObjectRecord() throws Exception { + void testCreateDigitalMediaRecord() throws Exception { // Given byte[] handle = HANDLE.getBytes(StandardCharsets.UTF_8); HandleRecordRequest requestObject = givenMediaRequestObject(); - ObjectNode requestNode = genCreateRecordRequest(requestObject, FdoType.MEDIA_OBJECT); + ObjectNode requestNode = genCreateRecordRequest(requestObject, FdoType.DIGITAL_MEDIA); JsonApiWrapperWrite responseExpected = givenRecordResponseWrite(List.of(handle), - FdoType.MEDIA_OBJECT); + FdoType.DIGITAL_MEDIA); given(service.createRecords(List.of(requestNode))).willReturn(responseExpected); @@ -353,7 +353,7 @@ void testCreateMediaRecordBatch() throws Exception { List requests = new ArrayList<>(); for (int i = 0; i < handles.size(); i++) { - requests.add(genCreateRecordRequest(givenMediaRequestObject(), FdoType.MEDIA_OBJECT)); + requests.add(genCreateRecordRequest(givenMediaRequestObject(), FdoType.DIGITAL_MEDIA)); } var responseExpected = givenRecordResponseWrite(handles, FdoType.DOI); @@ -420,9 +420,9 @@ void testCreateMappingBatch() throws Exception { List requests = new ArrayList<>(); handles.forEach(handle -> requests.add( - genCreateRecordRequest(givenMappingRequestObject(), FdoType.MAPPING))); + genCreateRecordRequest(givenDataMappingRequestObject(), FdoType.DATA_MAPPING))); - var responseExpected = givenRecordResponseWrite(handles, FdoType.MAPPING); + var responseExpected = givenRecordResponseWrite(handles, FdoType.DATA_MAPPING); given(service.createRecords(requests)).willReturn(responseExpected); // When diff --git a/src/test/java/eu/dissco/core/handlemanager/domain/JsonSchemaValidatorTest.java b/src/test/java/eu/dissco/core/handlemanager/domain/JsonSchemaValidatorTest.java index cf6b9bad..f3116663 100644 --- a/src/test/java/eu/dissco/core/handlemanager/domain/JsonSchemaValidatorTest.java +++ b/src/test/java/eu/dissco/core/handlemanager/domain/JsonSchemaValidatorTest.java @@ -26,10 +26,10 @@ import static eu.dissco.core.handlemanager.testUtils.TestUtils.genTombstoneRequestBatch; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genUpdateRequestAltLoc; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenAnnotationRequestObject; +import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenDataMappingRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenDigitalSpecimenRequestObjectNullOptionals; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenDoiRecordRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenHandleRecordRequestObject; -import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenMappingRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenMasRecordRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenMediaRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenOrganisationRequestObject; @@ -116,9 +116,9 @@ void testPostDigitalSpecimenRequest() { } @Test - void testPostMediaObjectRequest() throws Exception { + void testPostDigitalMediaRequest() throws Exception { // Given - var request = genCreateRecordRequest(givenMediaRequestObject(), FdoType.MEDIA_OBJECT); + var request = genCreateRecordRequest(givenMediaRequestObject(), FdoType.DIGITAL_MEDIA); // Then assertDoesNotThrow(() -> schemaValidator.validatePostRequest(request)); @@ -162,9 +162,9 @@ void testPostOrganisationNullTypeRequest() { } @Test - void testPostMappingRequest() { + void testPostDataMappingRequest() { // Given - var request = genCreateRecordRequest(givenMappingRequestObject(), FdoType.MAPPING); + var request = genCreateRecordRequest(givenDataMappingRequestObject(), FdoType.DATA_MAPPING); // Then assertDoesNotThrow(() -> schemaValidator.validatePostRequest(request)); @@ -220,9 +220,9 @@ void testDigitalSpecimenPatchRequest() { } @Test - void testMediaObjectPatchRequest() { + void testDigitalMediaPatchRequest() { // Given - var request = givenUpdateRequest(FdoType.MEDIA_OBJECT, MEDIA_HOST.get(), MEDIA_HOST_TESTVAL); + var request = givenUpdateRequest(FdoType.DIGITAL_MEDIA, MEDIA_HOST.get(), MEDIA_HOST_TESTVAL); // Then assertDoesNotThrow(() -> schemaValidator.validatePatchRequest(request)); @@ -248,9 +248,9 @@ void testOrganisationPatchRequest() { } @Test - void testMappingPatchRequest() { + void testDataMappingPatchRequest() { // Given - var request = givenUpdateRequest(FdoType.MAPPING, SOURCE_DATA_STANDARD.get(), "new"); + var request = givenUpdateRequest(FdoType.DATA_MAPPING, SOURCE_DATA_STANDARD.get(), "new"); // Then assertDoesNotThrow(() -> schemaValidator.validatePatchRequest(request)); @@ -384,10 +384,10 @@ void testBadPostDigitalSpecimenRequestUnknownProperty() { } @Test - void testBadPostMediaObjectRequestUnknownProperty() { + void testBadPostDigitalMediaRequestUnknownProperty() { // Given var request = genCreateRecordRequest(givenDigitalSpecimenRequestObjectNullOptionals(), - FdoType.MEDIA_OBJECT); + FdoType.DIGITAL_MEDIA); ((ObjectNode) request.get(NODE_DATA)).put(UNKNOWN_ATTRIBUTE, UNKNOWN_VAL); // Then @@ -398,11 +398,11 @@ void testBadPostMediaObjectRequestUnknownProperty() { } @Test - void testBadPostMediaObjectRequestMissingProperty() { + void testBadPostDigitalMediaRequestMissingProperty() { // Given String missingAttribute = MEDIA_HOST.get(); var request = genCreateRecordRequest(givenDigitalSpecimenRequestObjectNullOptionals(), - FdoType.MEDIA_OBJECT); + FdoType.DIGITAL_MEDIA); ((ObjectNode) request.get(NODE_DATA).get(NODE_ATTRIBUTES)).remove(missingAttribute); // Then @@ -445,7 +445,7 @@ private static Stream provideFdoTypes() { Arguments.of(FdoType.HANDLE), Arguments.of(FdoType.DOI), Arguments.of(FdoType.DIGITAL_SPECIMEN), - Arguments.of(FdoType.MEDIA_OBJECT) + Arguments.of(FdoType.DIGITAL_MEDIA) ); } diff --git a/src/test/java/eu/dissco/core/handlemanager/service/DataCiteServiceTest.java b/src/test/java/eu/dissco/core/handlemanager/service/DataCiteServiceTest.java index 68aec12f..4752f38d 100644 --- a/src/test/java/eu/dissco/core/handlemanager/service/DataCiteServiceTest.java +++ b/src/test/java/eu/dissco/core/handlemanager/service/DataCiteServiceTest.java @@ -34,13 +34,13 @@ void setup() { } @Test - void testPublishMediaObject() throws Exception { + void testPublishDigitalMedia() throws Exception { // Given given(kafkaProperties.getDcMediaTopic()).willReturn(MEDIA_TOPIC); var event = new DataCiteEvent(MAPPER.createObjectNode(), EventType.CREATE); // When - dataCiteService.publishToDataCite(event, FdoType.MEDIA_OBJECT); + dataCiteService.publishToDataCite(event, FdoType.DIGITAL_MEDIA); // Then then(kafkaService).should().sendObjectToQueue(eq(MEDIA_TOPIC), any()); diff --git a/src/test/java/eu/dissco/core/handlemanager/service/DoiServiceTest.java b/src/test/java/eu/dissco/core/handlemanager/service/DoiServiceTest.java index 3aa00f04..a9527d12 100644 --- a/src/test/java/eu/dissco/core/handlemanager/service/DoiServiceTest.java +++ b/src/test/java/eu/dissco/core/handlemanager/service/DoiServiceTest.java @@ -9,7 +9,6 @@ import static eu.dissco.core.handlemanager.testUtils.TestUtils.MAPPER; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genCreateRecordRequest; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genDigitalSpecimenAttributes; -import static eu.dissco.core.handlemanager.testUtils.TestUtils.genMediaObjectAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genObjectNodeAttributeRecord; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genUpdateRecordAttributesAltLoc; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genUpdateRequestBatch; @@ -39,6 +38,7 @@ import eu.dissco.core.handlemanager.exceptions.UnprocessableEntityException; import eu.dissco.core.handlemanager.properties.ProfileProperties; import eu.dissco.core.handlemanager.repository.PidRepository; +import eu.dissco.core.handlemanager.testUtils.TestUtils; import java.nio.charset.StandardCharsets; import java.time.Clock; import java.time.Instant; @@ -123,20 +123,20 @@ void testCreateDigitalSpecimen() throws Exception { } @Test - void testCreateMediaObject() throws Exception { + void testCreateDigitalMedia() throws Exception { // Given byte[] handle = HANDLE.getBytes(StandardCharsets.UTF_8); - var request = genCreateRecordRequest(givenMediaRequestObject(), FdoType.MEDIA_OBJECT); - List mediaObject = genMediaObjectAttributes(handle); - var mediaSublist = mediaObject.stream().filter( + var request = genCreateRecordRequest(givenMediaRequestObject(), FdoType.DIGITAL_MEDIA); + List digitalMedia = TestUtils.genDigitalMediaAttributes(handle); + var mediaSublist = digitalMedia.stream().filter( row -> row.getType().equals(PRIMARY_MEDIA_ID.get()) || row.getType() .equals(LINKED_DO_PID.get())).toList(); var responseExpected = givenRecordResponseWriteSmallResponse(mediaSublist, List.of(handle), - FdoType.MEDIA_OBJECT); - var dataCiteEvent = new DataCiteEvent(genObjectNodeAttributeRecord(mediaObject), + FdoType.DIGITAL_MEDIA); + var dataCiteEvent = new DataCiteEvent(genObjectNodeAttributeRecord(digitalMedia), EventType.CREATE); given(pidNameGeneratorService.genHandleList(1)).willReturn(new ArrayList<>(List.of(handle))); - given(fdoRecordService.prepareMediaObjectAttributes(any(), any())).willReturn(mediaObject); + given(fdoRecordService.prepareDigitalMediaAttributes(any(), any())).willReturn(digitalMedia); given(profileProperties.getDomain()).willReturn(HANDLE_DOMAIN); // When @@ -144,7 +144,7 @@ void testCreateMediaObject() throws Exception { // Then assertThat(responseReceived).isEqualTo(responseExpected); - then(dataCiteService).should().publishToDataCite(dataCiteEvent, FdoType.MEDIA_OBJECT); + then(dataCiteService).should().publishToDataCite(dataCiteEvent, FdoType.DIGITAL_MEDIA); } @Test diff --git a/src/test/java/eu/dissco/core/handlemanager/service/FdoRecordServiceTest.java b/src/test/java/eu/dissco/core/handlemanager/service/FdoRecordServiceTest.java index 433f092d..e946d4c9 100644 --- a/src/test/java/eu/dissco/core/handlemanager/service/FdoRecordServiceTest.java +++ b/src/test/java/eu/dissco/core/handlemanager/service/FdoRecordServiceTest.java @@ -35,12 +35,12 @@ import static eu.dissco.core.handlemanager.testUtils.TestUtils.TRANSFORMER_FACTORY; import static eu.dissco.core.handlemanager.testUtils.TestUtils.UI_URL; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genAnnotationAttributes; +import static eu.dissco.core.handlemanager.testUtils.TestUtils.genDataMappingAttributes; +import static eu.dissco.core.handlemanager.testUtils.TestUtils.genDigitalMediaAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genDigitalSpecimenAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genDoiRecordAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genHandleRecordAttributes; -import static eu.dissco.core.handlemanager.testUtils.TestUtils.genMappingAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genMasAttributes; -import static eu.dissco.core.handlemanager.testUtils.TestUtils.genMediaObjectAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genOrganisationAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genSourceSystemAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genTombstoneRecordRequestAttributes; @@ -48,10 +48,10 @@ import static eu.dissco.core.handlemanager.testUtils.TestUtils.genUpdateRecordAttributesAltLoc; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genUpdateRequestAltLoc; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenAnnotationRequestObject; +import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenDataMappingRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenDigitalSpecimenRequestObjectNullOptionals; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenDoiRecordRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenHandleRecordRequestObject; -import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenMappingRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenMasRecordRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenMediaRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenOrganisationRequestObject; @@ -70,11 +70,11 @@ import com.fasterxml.jackson.databind.JsonNode; import eu.dissco.core.handlemanager.Profiles; import eu.dissco.core.handlemanager.domain.fdo.AnnotationRequest; +import eu.dissco.core.handlemanager.domain.fdo.DigitalMediaRequest; import eu.dissco.core.handlemanager.domain.fdo.DigitalSpecimenRequest; import eu.dissco.core.handlemanager.domain.fdo.FdoProfile; import eu.dissco.core.handlemanager.domain.fdo.FdoType; import eu.dissco.core.handlemanager.domain.fdo.HandleRecordRequest; -import eu.dissco.core.handlemanager.domain.fdo.MediaObjectRequest; import eu.dissco.core.handlemanager.domain.fdo.vocabulary.media.DcTermsType; import eu.dissco.core.handlemanager.domain.fdo.vocabulary.media.MediaFormat; import eu.dissco.core.handlemanager.domain.fdo.vocabulary.specimen.BaseTypeOfSpecimen; @@ -94,6 +94,7 @@ import eu.dissco.core.handlemanager.properties.ApplicationProperties; import eu.dissco.core.handlemanager.properties.ProfileProperties; import eu.dissco.core.handlemanager.repository.PidRepository; +import eu.dissco.core.handlemanager.testUtils.TestUtils; import eu.dissco.core.handlemanager.web.PidResolver; import java.nio.charset.StandardCharsets; import java.time.Clock; @@ -219,29 +220,29 @@ void testPrepareDoiRecordAttributesDoiProfile() throws Exception { } @Test - void testPrepareMediaObjectAttributesMandatory() throws Exception { + void testPrepareDigitalMediaAttributesMandatory() throws Exception { // Given given(pidResolver.getObjectName(any())).willReturn(PID_ISSUER_TESTVAL_OTHER) .willReturn(ISSUED_FOR_AGENT_TESTVAL); given(profileProperties.getDomain()).willReturn(HANDLE_DOMAIN); var request = givenMediaRequestObject(); - var expected = genMediaObjectAttributes(handle); + var expected = TestUtils.genDigitalMediaAttributes(handle); expected.add(ADMIN_HANDLE); // When - var result = fdoRecordService.prepareMediaObjectAttributes(request, handle); + var result = fdoRecordService.prepareDigitalMediaAttributes(request, handle); // Then assertThat(result).hasSameElementsAs(expected).hasSameSizeAs(expected); } @Test - void testPrepareMediaObjectAttributesOptional() throws Exception { + void testPrepareDigitalMediaAttributesOptional() throws Exception { // Given given(pidResolver.getObjectName(any())).willReturn(PID_ISSUER_TESTVAL_OTHER) .willReturn(ISSUED_FOR_AGENT_TESTVAL).willReturn(MEDIA_HOST_NAME_TESTVAL); given(profileProperties.getDomain()).willReturn(HANDLE_DOMAIN); - var request = new MediaObjectRequest(ISSUED_FOR_AGENT_TESTVAL, PID_ISSUER_TESTVAL_OTHER, + var request = new DigitalMediaRequest(ISSUED_FOR_AGENT_TESTVAL, PID_ISSUER_TESTVAL_OTHER, LOC_TESTVAL, REFERENT_NAME_TESTVAL, PRIMARY_REFERENT_TYPE_TESTVAL, MEDIA_HOST_TESTVAL, null, MediaFormat.TEXT, Boolean.TRUE, LINKED_DO_PID_TESTVAL, @@ -249,23 +250,23 @@ void testPrepareMediaObjectAttributesOptional() throws Exception { "a", HANDLE, PrimarySpecimenObjectIdType.RESOLVABLE, "b", DcTermsType.IMAGE, "jpeg", "c", "license", "license", "c", "d", null, "e"); - var expected = genMediaObjectAttributes(handle, request); + var expected = genDigitalMediaAttributes(handle, request); expected.add(ADMIN_HANDLE); // When - var result = fdoRecordService.prepareMediaObjectAttributes(request, handle); + var result = fdoRecordService.prepareDigitalMediaAttributes(request, handle); // Then assertThat(result).hasSameElementsAs(expected).hasSameSizeAs(expected); } @Test - void testPrepareMediaObjectFullAttributes() throws Exception { + void testPrepareDigitalMediaFullAttributes() throws Exception { // Given given(pidResolver.getObjectName(any())).willReturn(PID_ISSUER_TESTVAL_OTHER) .willReturn(ISSUED_FOR_AGENT_TESTVAL).willReturn(MEDIA_HOST_NAME_TESTVAL); given(profileProperties.getDomain()).willReturn(HANDLE_DOMAIN); - var request = new MediaObjectRequest(ISSUED_FOR_AGENT_TESTVAL, PID_ISSUER_TESTVAL_OTHER, + var request = new DigitalMediaRequest(ISSUED_FOR_AGENT_TESTVAL, PID_ISSUER_TESTVAL_OTHER, LOC_TESTVAL, REFERENT_NAME_TESTVAL, PRIMARY_REFERENT_TYPE_TESTVAL, MEDIA_HOST_TESTVAL, MEDIA_HOST_NAME_TESTVAL, MediaFormat.TEXT, Boolean.TRUE, LINKED_DO_PID_TESTVAL, @@ -273,11 +274,11 @@ void testPrepareMediaObjectFullAttributes() throws Exception { "d", DcTermsType.IMAGE, "e", "f", LICENSE_NAME_TESTVAL, "g", "h", "i", PrimarySpecimenObjectIdType.LOCAL, "j"); - var expected = genMediaObjectAttributes(handle, request); + var expected = genDigitalMediaAttributes(handle, request); expected.add(ADMIN_HANDLE); // When - var result = fdoRecordService.prepareMediaObjectAttributes(request, handle); + var result = fdoRecordService.prepareDigitalMediaAttributes(request, handle); // Then assertThat(result).hasSameElementsAs(expected).hasSameSizeAs(expected); @@ -413,17 +414,17 @@ void testPrepareMasRecordAttributes() throws Exception { } @Test - void testPrepareMappingAttributes() throws Exception { + void testPrepareDataMappingAttributes() throws Exception { // Given given(pidResolver.getObjectName(any())).willReturn(PID_ISSUER_TESTVAL_OTHER) .willReturn(ISSUED_FOR_AGENT_TESTVAL); given(profileProperties.getDomain()).willReturn(HANDLE_DOMAIN); - var request = givenMappingRequestObject(); - var expected = genMappingAttributes(handle); + var request = givenDataMappingRequestObject(); + var expected = genDataMappingAttributes(handle); expected.add(ADMIN_HANDLE); // When - var result = fdoRecordService.prepareMappingAttributes(request, handle); + var result = fdoRecordService.prepareDataMappingAttributes(request, handle); // Then assertThat(result).hasSameElementsAs(expected).hasSameSizeAs(expected); diff --git a/src/test/java/eu/dissco/core/handlemanager/service/HandleServiceTest.java b/src/test/java/eu/dissco/core/handlemanager/service/HandleServiceTest.java index b3753b5b..b1110d29 100644 --- a/src/test/java/eu/dissco/core/handlemanager/service/HandleServiceTest.java +++ b/src/test/java/eu/dissco/core/handlemanager/service/HandleServiceTest.java @@ -16,12 +16,11 @@ import static eu.dissco.core.handlemanager.testUtils.TestUtils.UI_URL; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genAnnotationAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genCreateRecordRequest; +import static eu.dissco.core.handlemanager.testUtils.TestUtils.genDataMappingAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genDigitalSpecimenAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genDoiRecordAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genHandleRecordAttributes; -import static eu.dissco.core.handlemanager.testUtils.TestUtils.genMappingAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genMasAttributes; -import static eu.dissco.core.handlemanager.testUtils.TestUtils.genMediaObjectAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genObjectNodeAttributeRecord; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genOrganisationAttributes; import static eu.dissco.core.handlemanager.testUtils.TestUtils.genSourceSystemAttributes; @@ -32,10 +31,10 @@ import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenAnnotationRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenAnnotationRequestObjectNoHash; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenAnnotationResponseWrite; +import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenDataMappingRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenDigitalSpecimenRequestObjectNullOptionals; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenDoiRecordRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenHandleRecordRequestObject; -import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenMappingRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenMediaRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenOrganisationRequestObject; import static eu.dissco.core.handlemanager.testUtils.TestUtils.givenRecordResponseNullAttributes; @@ -63,6 +62,7 @@ import eu.dissco.core.handlemanager.exceptions.PidResolutionException; import eu.dissco.core.handlemanager.properties.ProfileProperties; import eu.dissco.core.handlemanager.repository.PidRepository; +import eu.dissco.core.handlemanager.testUtils.TestUtils; import java.nio.charset.StandardCharsets; import java.time.Clock; import java.time.Instant; @@ -348,20 +348,20 @@ void testCreateDigitalSpecimenSpecimenAlreadyExists() { } @Test - void testCreateMediaObjectRecord() throws Exception { + void testCreateDigitalMediaRecord() throws Exception { // Given byte[] handle = handles.get(0); - var request = genCreateRecordRequest(givenMediaRequestObject(), FdoType.MEDIA_OBJECT); - var handleRecord = genMediaObjectAttributes(handle); + var request = genCreateRecordRequest(givenMediaRequestObject(), FdoType.DIGITAL_MEDIA); + var handleRecord = TestUtils.genDigitalMediaAttributes(handle); var handleRecordSublist = handleRecord.stream().filter( row -> row.getType().equals(PRIMARY_MEDIA_ID.get()) || row.getType() .equals(LINKED_DO_PID.get())).toList(); var responseExpected = givenRecordResponseWriteSmallResponse(handleRecordSublist, - List.of(handle), FdoType.MEDIA_OBJECT); + List.of(handle), FdoType.DIGITAL_MEDIA); given(pidNameGeneratorService.genHandleList(1)).willReturn(new ArrayList<>(List.of(handle))); - given(fdoRecordService.prepareMediaObjectAttributes(any(), any())).willReturn( + given(fdoRecordService.prepareDigitalMediaAttributes(any(), any())).willReturn( handleRecordSublist); given(profileProperties.getDomain()).willReturn(HANDLE_DOMAIN); @@ -522,13 +522,14 @@ void testCreateMappingBatch() throws Exception { // Given List requests = new ArrayList<>(); for (int i = 0; i < handles.size(); i++) { - requests.add(genCreateRecordRequest(givenMappingRequestObject(), FdoType.MAPPING)); + requests.add(genCreateRecordRequest(givenDataMappingRequestObject(), FdoType.DATA_MAPPING)); } - var responseExpected = givenRecordResponseWrite(handles, FdoType.MAPPING); + var responseExpected = givenRecordResponseWrite(handles, FdoType.DATA_MAPPING); given(pidNameGeneratorService.genHandleList(handles.size())).willReturn(handles); - given(fdoRecordService.prepareMappingAttributes(any(), any())).willReturn( - genMappingAttributes(handles.get(0))).willReturn(genMappingAttributes(handles.get(1))); + given(fdoRecordService.prepareDataMappingAttributes(any(), any())).willReturn( + genDataMappingAttributes(handles.get(0))) + .willReturn(genDataMappingAttributes(handles.get(1))); given(profileProperties.getDomain()).willReturn(HANDLE_DOMAIN); // When @@ -586,24 +587,25 @@ void testCreateOrganisationBatch() throws Exception { } @Test - void testCreateMediaObjectBatch() throws Exception { + void testCreateDigitalMediaBatch() throws Exception { // Given List requests = new ArrayList<>(); for (int i = 0; i < handles.size(); i++) { - requests.add(genCreateRecordRequest(givenMediaRequestObject(), FdoType.MEDIA_OBJECT)); + requests.add(genCreateRecordRequest(givenMediaRequestObject(), FdoType.DIGITAL_MEDIA)); } - var sublist = Stream.concat(genMediaObjectAttributes(handles.get(0)).stream().filter( - row -> row.getType().equals(PRIMARY_MEDIA_ID.get()) || row.getType() - .equals(LINKED_DO_PID.get())), genMediaObjectAttributes(handles.get(1)).stream().filter( - row -> row.getType().equals(PRIMARY_MEDIA_ID.get()) || row.getType() - .equals(LINKED_DO_PID.get()))).toList(); + var sublist = Stream.concat(TestUtils.genDigitalMediaAttributes(handles.get(0)).stream().filter( + row -> row.getType().equals(PRIMARY_MEDIA_ID.get()) || row.getType() + .equals(LINKED_DO_PID.get())), + TestUtils.genDigitalMediaAttributes(handles.get(1)).stream().filter( + row -> row.getType().equals(PRIMARY_MEDIA_ID.get()) || row.getType() + .equals(LINKED_DO_PID.get()))).toList(); var responseExpected = givenRecordResponseWriteSmallResponse(sublist, handles, - FdoType.MEDIA_OBJECT); + FdoType.DIGITAL_MEDIA); given(pidNameGeneratorService.genHandleList(handles.size())).willReturn(handles); - given(fdoRecordService.prepareMediaObjectAttributes(any(), any())).willReturn( - genMediaObjectAttributes(handles.get(0))) - .willReturn(genMediaObjectAttributes(handles.get(1))); + given(fdoRecordService.prepareDigitalMediaAttributes(any(), any())).willReturn( + TestUtils.genDigitalMediaAttributes(handles.get(0))) + .willReturn(TestUtils.genDigitalMediaAttributes(handles.get(1))); given(profileProperties.getDomain()).willReturn(HANDLE_DOMAIN); // When diff --git a/src/test/java/eu/dissco/core/handlemanager/testUtils/TestUtils.java b/src/test/java/eu/dissco/core/handlemanager/testUtils/TestUtils.java index 45c46235..3c97ac91 100644 --- a/src/test/java/eu/dissco/core/handlemanager/testUtils/TestUtils.java +++ b/src/test/java/eu/dissco/core/handlemanager/testUtils/TestUtils.java @@ -79,13 +79,13 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; import eu.dissco.core.handlemanager.domain.fdo.AnnotationRequest; +import eu.dissco.core.handlemanager.domain.fdo.DataMappingRequest; +import eu.dissco.core.handlemanager.domain.fdo.DigitalMediaRequest; import eu.dissco.core.handlemanager.domain.fdo.DigitalSpecimenRequest; import eu.dissco.core.handlemanager.domain.fdo.DoiRecordRequest; import eu.dissco.core.handlemanager.domain.fdo.FdoType; import eu.dissco.core.handlemanager.domain.fdo.HandleRecordRequest; -import eu.dissco.core.handlemanager.domain.fdo.MappingRequest; import eu.dissco.core.handlemanager.domain.fdo.MasRequest; -import eu.dissco.core.handlemanager.domain.fdo.MediaObjectRequest; import eu.dissco.core.handlemanager.domain.fdo.OrganisationRequest; import eu.dissco.core.handlemanager.domain.fdo.SourceSystemRequest; import eu.dissco.core.handlemanager.domain.fdo.TombstoneRecordRequest; @@ -525,15 +525,15 @@ public static List genDigitalSpecimenAttributes(byte[] handle) return genDigitalSpecimenAttributes(handle, request); } - public static List genMediaObjectAttributes(byte[] handle) + public static List genDigitalMediaAttributes(byte[] handle) throws Exception { var request = givenMediaRequestObject(); - return genMediaObjectAttributes(handle, request); + return genDigitalMediaAttributes(handle, request); } - public static List genMediaObjectAttributes(byte[] handle, - MediaObjectRequest request) throws Exception { - List fdoRecord = genDoiRecordAttributes(handle, FdoType.MEDIA_OBJECT); + public static List genDigitalMediaAttributes(byte[] handle, + DigitalMediaRequest request) throws Exception { + List fdoRecord = genDoiRecordAttributes(handle, FdoType.DIGITAL_MEDIA); fdoRecord.add(new HandleAttribute(MEDIA_HOST, handle, request.getMediaHost())); if (request.getMediaHostName() == null) { fdoRecord.add(new HandleAttribute(MEDIA_HOST_NAME, handle, MEDIA_HOST_NAME_TESTVAL)); @@ -650,9 +650,9 @@ public static List genMasAttributes(byte[] handle) return fdoRecord; } - public static List genMappingAttributes(byte[] handle) + public static List genDataMappingAttributes(byte[] handle) throws Exception { - var fdoRecord = genHandleRecordAttributes(handle, FdoType.MAPPING); + var fdoRecord = genHandleRecordAttributes(handle, FdoType.DATA_MAPPING); // 500 subjectDigitalObjectId fdoRecord.add(new HandleAttribute(SOURCE_DATA_STANDARD.index(), handle, @@ -736,7 +736,7 @@ public static DoiRecordRequest givenDoiRecordRequestObject() { STRUCTURAL_TYPE_TESTVAL, LOC_TESTVAL, REFERENT_NAME_TESTVAL, - FdoType.MEDIA_OBJECT.getDigitalObjectName(), + FdoType.DIGITAL_MEDIA.getDigitalObjectName(), PRIMARY_REFERENT_TYPE_TESTVAL ); } @@ -768,8 +768,8 @@ public static DigitalSpecimenRequest givenDigitalSpecimenRequestObjectNullOption } } - public static MediaObjectRequest givenMediaRequestObject() throws InvalidRequestException { - return new MediaObjectRequest( + public static DigitalMediaRequest givenMediaRequestObject() throws InvalidRequestException { + return new DigitalMediaRequest( ISSUED_FOR_AGENT_TESTVAL, PID_ISSUER_TESTVAL_OTHER, LOC_TESTVAL, @@ -807,8 +807,8 @@ public static AnnotationRequest givenAnnotationRequestObjectNoHash() { ); } - public static MappingRequest givenMappingRequestObject() { - return new MappingRequest( + public static DataMappingRequest givenDataMappingRequestObject() { + return new DataMappingRequest( ISSUED_FOR_AGENT_TESTVAL, PID_ISSUER_TESTVAL_OTHER, LOC_TESTVAL, @@ -1028,14 +1028,14 @@ public static List genAttributes(FdoType recordType, byte[] han case DIGITAL_SPECIMEN -> { return genDigitalSpecimenAttributes(handle); } - case MEDIA_OBJECT -> { - return genMediaObjectAttributes(handle); + case DIGITAL_MEDIA -> { + return genDigitalMediaAttributes(handle); } case ANNOTATION -> { return genAnnotationAttributes(handle, false); } - case MAPPING -> { - return genMappingAttributes(handle); + case DATA_MAPPING -> { + return genDataMappingAttributes(handle); } case SOURCE_SYSTEM -> { return genSourceSystemAttributes(handle); @@ -1182,13 +1182,13 @@ private static String[] defaultLocations(String handle, FdoType type) { String ui = UI_URL + "/ds/" + handle; return new String[]{ui, api}; } - case MAPPING -> { + case DATA_MAPPING -> { return new String[]{ORCHESTRATION_URL + "/mapping/" + handle}; } case SOURCE_SYSTEM -> { return new String[]{ORCHESTRATION_URL + "/source-system/" + handle}; } - case MEDIA_OBJECT -> { + case DIGITAL_MEDIA -> { String api = API_URL + "/digitalMedia/" + handle; String ui = UI_URL + "/dm/" + handle; return new String[]{ui, api};