diff --git a/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIGermplasmDAO.java b/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIGermplasmDAO.java index 478c99bcf..58910396b 100644 --- a/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIGermplasmDAO.java +++ b/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIGermplasmDAO.java @@ -204,8 +204,7 @@ private Map processGermplasmForDisplay(List processGermplasmForDisplay(List - private String processBreedbasePedigree(String pedigree) { - - if (pedigree != null) { - if (pedigree.equals("NA/NA")) { - return ""; - } - - // Technically processGermplasmForDisplay should handle ok without stripping these NAs but will strip anyways - // for consistency. - // We only allow the /NA case for single parent as we require a female parent in the pedigree - // keep the leading slash, will be handled by processGermplasmForDisplay - if (pedigree.endsWith("/NA")) { - return pedigree.substring(0, pedigree.length()-2); - } - - // shouldn't have this case in our data but just in case - if (pedigree.startsWith("NA/")) { - return pedigree.substring(2); - } - } - return pedigree; - } - public List createBrAPIGermplasm(List postBrAPIGermplasmList, UUID programId, ImportUpload upload) { GermplasmApi api = brAPIEndpointProvider.get(programDAO.getCoreClient(programId), GermplasmApi.class); var program = programDAO.fetchOneById(programId); diff --git a/src/main/java/org/breedinginsight/brapi/v2/services/BrAPIGermplasmService.java b/src/main/java/org/breedinginsight/brapi/v2/services/BrAPIGermplasmService.java index 47131c8ae..cecf277d8 100644 --- a/src/main/java/org/breedinginsight/brapi/v2/services/BrAPIGermplasmService.java +++ b/src/main/java/org/breedinginsight/brapi/v2/services/BrAPIGermplasmService.java @@ -177,6 +177,12 @@ public List> processListData(List germplasm, row.put("Synonyms", joinedSynonyms); } + // Pedigrees + if (germplasmEntry.getAdditionalInfo().get(BrAPIAdditionalInfoFields.GERMPLASM_PEDIGREE_BY_NAME) != null) { + String pedigreeString = germplasmEntry.getAdditionalInfo().get(BrAPIAdditionalInfoFields.GERMPLASM_PEDIGREE_BY_NAME).getAsString(); + row.put("Pedigree", pedigreeString); + } + processedData.add(row); } return processedData; diff --git a/src/main/java/org/breedinginsight/services/parsers/germplasm/GermplasmFileColumns.java b/src/main/java/org/breedinginsight/services/parsers/germplasm/GermplasmFileColumns.java index 613cfdf6a..6a87ccd1b 100644 --- a/src/main/java/org/breedinginsight/services/parsers/germplasm/GermplasmFileColumns.java +++ b/src/main/java/org/breedinginsight/services/parsers/germplasm/GermplasmFileColumns.java @@ -28,6 +28,7 @@ public enum GermplasmFileColumns { NAME("Germplasm Name", Column.ColumnDataType.STRING), BREEDING_METHOD("Breeding Method", Column.ColumnDataType.STRING), SOURCE("Source", Column.ColumnDataType.STRING), + PEDIGREE("Pedigree", Column.ColumnDataType.STRING), FEMALE_PARENT_GID("Female Parent GID", Column.ColumnDataType.INTEGER), MALE_PARENT_GID("Male Parent GID", Column.ColumnDataType.INTEGER), ENTRY_NO("Entry No", Column.ColumnDataType.INTEGER), diff --git a/src/test/java/org/breedinginsight/services/BrAPIGermplasmServiceUnitTest.java b/src/test/java/org/breedinginsight/services/BrAPIGermplasmServiceUnitTest.java index fc9f907a3..54710fb49 100644 --- a/src/test/java/org/breedinginsight/services/BrAPIGermplasmServiceUnitTest.java +++ b/src/test/java/org/breedinginsight/services/BrAPIGermplasmServiceUnitTest.java @@ -171,8 +171,11 @@ public void getGermplasmListExport() { assertEquals(2, resultTable.rowCount(), "Wrong number of rows were exported"); assertEquals("Germplasm A", resultTable.get(0, 1), "Incorrect data exported"); // Check that "GID" column matches "Entry No" for both (https://breedinginsight.atlassian.net/browse/BI-2266). - assertEquals(resultTable.get(0, 0), resultTable.get(0, 6), "Incorrect data exported"); - assertEquals(resultTable.get(1, 0), resultTable.get(1, 6), "Incorrect data exported"); + assertEquals(resultTable.get(0, 0), resultTable.get(0, 7), "Incorrect data exported"); + assertEquals(resultTable.get(1, 0), resultTable.get(1, 7), "Incorrect data exported"); + //Assert "Pedigree" column contains properly formatted data + assertEquals(resultTable.get(0, 4), "", "Incorrect data exported"); + assertEquals(resultTable.get(1, 4), "Germplasm A", "Incorrect data exported"); } @Test