Skip to content

Commit

Permalink
Extract logic to update VS metadata fields into a method
Browse files Browse the repository at this point in the history
  • Loading branch information
forus committed Jun 27, 2024
1 parent 2bd3ac0 commit 57c31d8
Showing 1 changed file with 16 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.server.ResponseStatusException;

import java.util.List;
import java.util.Set;
Expand Down Expand Up @@ -69,18 +68,7 @@ public ResponseEntity<VirtualStudy> publishVirtualStudyData(
) {
ensureProvidedPublisherApiKeyCorrect(providedPublisherApiKey);
VirtualStudyData virtualStudyDataToPublish = makeCopyForPublishing(virtualStudyData);
if (typeOfCancerId != null) {
try {
cancerTypeService.getCancerType(typeOfCancerId);
virtualStudyDataToPublish.setTypeOfCancerId(typeOfCancerId);
} catch (CancerTypeNotFoundException e) {
LOG.error("No cancer type with id={} were found.", typeOfCancerId);
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "The cancer type is not valid.", e);
}
}
if (pmid != null) {
virtualStudyDataToPublish.setPmid(pmid);
}
updateStudyMetadataFieldsIfSpecified(virtualStudyDataToPublish, typeOfCancerId, pmid);
VirtualStudy virtualStudy = sessionServiceRequestHandler.createVirtualStudy(virtualStudyDataToPublish);

return new ResponseEntity<>(virtualStudy, HttpStatus.OK);
Expand Down Expand Up @@ -117,6 +105,21 @@ private void ensureProvidedPublisherApiKeyCorrect(String providedPublisherApiKey
}
}

private void updateStudyMetadataFieldsIfSpecified(VirtualStudyData virtualStudyData, String typeOfCancerId, String pmid) {
if (typeOfCancerId != null) {
try {
cancerTypeService.getCancerType(typeOfCancerId);
virtualStudyData.setTypeOfCancerId(typeOfCancerId);
} catch (CancerTypeNotFoundException e) {
LOG.error("No cancer type with id={} were found.", typeOfCancerId);
throw new IllegalArgumentException( "The cancer type is not valid: " + typeOfCancerId);
}
}
if (pmid != null) {
virtualStudyData.setPmid(pmid);
}
}

private VirtualStudyData makeCopyForPublishing(VirtualStudyData virtualStudyData) {
VirtualStudyData virtualStudyDataToPublish = new VirtualStudyData();
virtualStudyDataToPublish.setName(virtualStudyData.getName());
Expand Down

0 comments on commit 57c31d8

Please sign in to comment.