|
1 | 1 | package org.brapi.test.BrAPITestServer.service.pheno; |
2 | 2 |
|
3 | 3 | import io.swagger.model.Metadata; |
| 4 | +import io.swagger.model.Pagination; |
4 | 5 | import io.swagger.model.pheno.*; |
5 | 6 | import jakarta.validation.Valid; |
6 | 7 | import org.brapi.test.BrAPITestServer.exceptions.BrAPIServerDbIdNotFoundException; |
|
22 | 23 | import org.springframework.http.HttpStatus; |
23 | 24 | import org.springframework.stereotype.Service; |
24 | 25 |
|
25 | | -import java.util.ArrayList; |
26 | | -import java.util.List; |
27 | | -import java.util.Map; |
| 26 | +import java.util.*; |
28 | 27 | import java.util.Map.Entry; |
29 | | -import java.util.Optional; |
30 | 28 | import java.util.stream.Collectors; |
31 | 29 |
|
32 | 30 | @Service |
@@ -137,27 +135,30 @@ public ObservationTable findObservationsTable(String observationUnitDbId, String |
137 | 135 | String observationUnitLevelOrder, String observationUnitLevelCode, |
138 | 136 | String observationUnitLevelRelationshipName, String observationUnitLevelRelationshipOrder, |
139 | 137 | String observationUnitLevelRelationshipCode, String observationUnitLevelRelationshipDbId, |
140 | | - String observationTimeStampRangeStart, String observationTimeStampRangeEnd, String searchResultsDbId) |
| 138 | + String observationTimeStampRangeStart, String observationTimeStampRangeEnd, String searchResultsDbId, Metadata metadata) |
141 | 139 | throws BrAPIServerException { |
142 | 140 | ObservationSearchRequest obsRequest = buildObservationsSearchRequest(null, observationUnitDbId, germplasmDbId, |
143 | 141 | observationVariableDbId, studyDbId, locationDbId, trialDbId, programDbId, seasonDbId, |
144 | 142 | observationUnitLevelName, observationUnitLevelOrder, observationUnitLevelCode, |
145 | 143 | observationTimeStampRangeStart, observationTimeStampRangeEnd, observationUnitLevelRelationshipName, |
146 | 144 | observationUnitLevelRelationshipOrder, observationUnitLevelRelationshipCode, |
147 | 145 | observationUnitLevelRelationshipDbId, null, null, null, null); |
148 | | - return findObservationsTable(obsRequest); |
| 146 | + return findObservationsTable(obsRequest, metadata); |
149 | 147 | } |
150 | 148 |
|
151 | | - public ObservationTable findObservationsTable(ObservationSearchRequest obsRequest) { |
152 | | - Page<ObservationEntity> observations = findObservationEntities(obsRequest, null); |
| 149 | + public ObservationTable findObservationsTable(ObservationSearchRequest obsRequest, Metadata metadata) { |
| 150 | + Page<ObservationEntity> page = findObservationEntities(obsRequest, metadata); |
| 151 | + log.debug("converting "+page.getSize()+" entities"); |
153 | 152 |
|
154 | | - List<ObservationVariableEntity> variables = observations.stream().map(obs -> obs.getObservationVariable()) |
155 | | - .filter(vid -> vid != null).distinct().collect(Collectors.toList()); |
| 153 | + List<ObservationVariableEntity> variables = page.stream().map(ObservationEntity::getObservationVariable) |
| 154 | + .filter(Objects::nonNull).distinct().collect(Collectors.toList()); |
156 | 155 |
|
157 | 156 | ObservationTable table = new ObservationTable(); |
158 | | - table.setData(buildDataMatrix(observations, variables)); |
| 157 | + table.setData(buildDataMatrix(page, variables)); |
159 | 158 | table.setHeaderRow(buildHeaderRow()); |
160 | 159 | table.setObservationVariables(variables.stream().map(this::convertVariables).collect(Collectors.toList())); |
| 160 | + log.debug("done converting entities"); |
| 161 | + PagingUtility.calculateMetaData(metadata, page); |
161 | 162 | return table; |
162 | 163 | } |
163 | 164 |
|
|
0 commit comments