Skip to content
This repository was archived by the owner on Aug 1, 2025. It is now read-only.

Commit 93dcd05

Browse files
Merge branch 'plantbreeding:brapi-server-v2' into brapi-server-v2
2 parents 3341f0a + 55aa9e7 commit 93dcd05

File tree

12 files changed

+90
-58
lines changed

12 files changed

+90
-58
lines changed

src/main/java/org/brapi/test/BrAPITestServer/model/entity/pheno/ObservationUnitPositionEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public class ObservationUnitPositionEntity extends BrAPIBaseEntity {
2828
private ObservationUnitHierarchyLevelEnum levelName;
2929
@Column
3030
private Integer levelOrder;
31-
@OneToMany(mappedBy = "position")
31+
@OneToMany(mappedBy = "position", cascade = CascadeType.ALL)
3232
private List<ObservationUnitLevelRelationshipEntity> observationLevelRelationships;
3333
@Column
3434
private String positionCoordinateX;

src/main/java/org/brapi/test/BrAPITestServer/service/GeoJSONUtility.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,10 @@ public static GeoJSONEntity convertToEntity(GeoJSON geojson) {
2727
entity.setType(POLYGON);
2828
// Only handles single polygons, most plots are rectangles
2929
Polygon polygon = ((PolygonGeometry) geojson.getGeometry()).getCoordinates();
30-
if (polygon.size() == 1) {
31-
LinearRing ring = polygon.get(0);
32-
for (Position point : ring) {
33-
CoordinateEntity pointEntity = convertToEntiy(entity, point);
34-
entity.addCoordinate(pointEntity);
35-
}
30+
LinearRing ring = polygon.get(0);
31+
for (Position point : ring) {
32+
CoordinateEntity pointEntity = convertToEntiy(entity, point);
33+
entity.addCoordinate(pointEntity);
3634
}
3735
}
3836
return entity;

src/main/java/org/brapi/test/BrAPITestServer/service/SearchQueryBuilder.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public Map<String, Object> getParams() {
4040
public Class<T> getClazz() {
4141
return clazz;
4242
}
43-
43+
4444
public SearchQueryBuilder<T> appendList(List<String> list, String columnName) {
4545
String paramName = paramFilter(columnName);
4646
if (list != null && !list.isEmpty()) {
@@ -156,6 +156,21 @@ public SearchQueryBuilder<T> appendNumberRange(BigDecimal min, BigDecimal max, S
156156
return this;
157157
}
158158

159+
public SearchQueryBuilder<T> appendPersonNamesList(List<String> list, String columnFirst, String columnMiddle, String columnLast) {
160+
if (list != null && !list.isEmpty()) {
161+
this.params.put("namesList", list);
162+
this.query += "AND (" + entityPrefix(columnFirst) + " in :namesList ";
163+
this.query += "OR " + entityPrefix(columnMiddle) + " in :namesList ";
164+
this.query += "OR " + entityPrefix(columnLast) + " in :namesList ";
165+
this.query += "OR concat(" + entityPrefix(columnFirst) + ", ' ', " + entityPrefix(columnMiddle) + ") in :namesList ";
166+
this.query += "OR concat(" + entityPrefix(columnFirst) + ", ' ', " + entityPrefix(columnLast) + ") in :namesList ";
167+
this.query += "OR concat(" + entityPrefix(columnMiddle) + ", ' ', " + entityPrefix(columnLast) + ") in :namesList ";
168+
this.query += "OR concat(" + entityPrefix(columnFirst) + ", ' ', " + entityPrefix(columnMiddle) + ", ' ', " + entityPrefix(columnLast) + ") in :namesList ";
169+
this.query += ") ";
170+
}
171+
return this;
172+
}
173+
159174
public SearchQueryBuilder<T> appendGeoJSONArea(GeoJSONSearchArea area) {
160175
// if (single != null && !single.isEmpty()) {
161176
// this.query += "AND " + entityPrefix(columnName) + " = :" + columnName + " ";

src/main/java/org/brapi/test/BrAPITestServer/service/core/LocationService.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,19 +49,23 @@ public List<Location> findLocations(String locationDbId, String locationType, St
4949

5050
public List<Location> findLocations(LocationSearchRequest request, Metadata metadata) {
5151
Pageable pageReq = PagingUtility.getPageRequest(metadata);
52-
SearchQueryBuilder<LocationEntity> searchQuery = new SearchQueryBuilder<LocationEntity>(LocationEntity.class)
53-
.withExRefs(request.getExternalReferenceIDs(), request.getExternalReferenceSources())
54-
.appendList(request.getAbbreviations(), "abbreviaion")
55-
.appendList(request.getCountryCodes(), "countrycode")
56-
.appendList(request.getCountryNames(), "countryname")
57-
.appendList(request.getInstituteAddresses(), "instituteaddress")
58-
.appendList(request.getInstituteNames(), "institutename")
52+
SearchQueryBuilder<LocationEntity> searchQuery = new SearchQueryBuilder<LocationEntity>(LocationEntity.class);
53+
54+
if (request.getAltitudeMin() != null || request.getAltitudeMax() != null || request.getCoordinates() != null) {
55+
searchQuery = searchQuery.join("coordinates.coordinates", "coordinates");
56+
searchQuery = searchQuery.appendNumberRange(request.getAltitudeMin(), request.getAltitudeMax(), "*coordinates.altitude")
57+
.appendGeoJSONArea(request.getCoordinates());
58+
}
59+
searchQuery = searchQuery.withExRefs(request.getExternalReferenceIDs(), request.getExternalReferenceSources())
60+
.appendList(request.getAbbreviations(), "abbreviation")
61+
.appendList(request.getCountryCodes(), "countryCode")
62+
.appendList(request.getCountryNames(), "countryName")
63+
.appendList(request.getInstituteAddresses(), "instituteAddress")
64+
.appendList(request.getInstituteNames(), "instituteName")
5965
.appendList(request.getLocationDbIds(), "id")
6066
.appendList(request.getLocationNames(), "locationName")
61-
.appendList(request.getLocationTypes(), "locationType")
62-
.appendNumberRange(request.getAltitudeMin(), request.getAltitudeMax(), "altitude")
63-
.appendGeoJSONArea(request.getCoordinates());
64-
67+
.appendList(request.getLocationTypes(), "locationType");
68+
6569
Page<LocationEntity> entityPage = locationRepository.findAllBySearch(searchQuery, pageReq);
6670

6771
List<Location> data = entityPage.map(this::convertFromEntity).getContent();

src/main/java/org/brapi/test/BrAPITestServer/service/core/ProgramService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public List<Program> findPrograms(ProgramSearchRequest request, Metadata metadat
6464
.appendList(request.getAbbreviations(), "abbreviation")
6565
.appendList(request.getCommonCropNames(), "crop.cropName")
6666
.appendList(request.getLeadPersonDbIds(), "leadPerson.id")
67-
.appendList(request.getLeadPersonNames(), "leadPerson.lastName")
67+
.appendPersonNamesList(request.getLeadPersonNames(), "leadPerson.firstName", "leadPerson.middleName", "leadPerson.lastName")
6868
.appendList(request.getObjectives(), "objective").appendList(request.getProgramDbIds(), "id")
6969
.appendList(request.getProgramNames(), "name");
7070

src/main/java/org/brapi/test/BrAPITestServer/service/core/StudyService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ public List<Study> findStudies(StudySearchRequest request, Metadata metaData) {
125125
searchQuery = searchQuery.join("observationUnits", "obsunit");
126126
}
127127
if (request.getObservationVariableDbIds() != null || request.getObservationVariableNames() != null) {
128-
searchQuery = searchQuery.join("*ou.observations", "observation");
128+
searchQuery = searchQuery.join("*obsunit.observations", "observation");
129129
}
130130

131131
searchQuery = searchQuery.withExRefs(request.getExternalReferenceIDs(), request.getExternalReferenceSources())
@@ -141,7 +141,7 @@ public List<Study> findStudies(StudySearchRequest request, Metadata metaData) {
141141
.appendList(request.getSeasonDbIds(), "*season.id").appendList(request.getStudyCodes(), "studyCode")
142142
.appendList(request.getStudyDbIds(), "id").appendList(request.getStudyNames(), "studyName")
143143
.appendList(request.getStudyPUIs(), "studyPUI").appendList(request.getStudyTypes(), "studyType")
144-
.appendList(request.getTrialDbIds(), "trial.id").appendList(request.getTrialNames(), "trial.name")
144+
.appendList(request.getTrialDbIds(), "trial.id").appendList(request.getTrialNames(), "trial.trialName")
145145
.withSort(getSortByField(request.getSortBy()), request.getSortOrder());
146146

147147
Page<StudyEntity> studiesPage = studyRepository.findAllBySearch(searchQuery, pageReq);

src/main/java/org/brapi/test/BrAPITestServer/service/geno/CallSetService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public List<CallSetEntity> findCallSetEntities(CallSetsSearchRequest request, Me
6262
.appendList(request.getGermplasmDbIds(), "sample.germplasm.id")
6363
.appendList(request.getGermplasmNames(), "sample.germplasm.germplasmName")
6464
.appendList(request.getSampleDbIds(), "sample.id")
65-
.appendList(request.getSampleNames(), "sample.name");
65+
.appendList(request.getSampleNames(), "sample.sampleName");
6666

6767
Page<CallSetEntity> page = callSetRepository.findAllBySearch(searchQuery, pageReq);
6868
PagingUtility.calculateMetaData(metadata, page);

src/main/java/org/brapi/test/BrAPITestServer/service/geno/SampleService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,11 @@ public List<Sample> findSamples(@Valid SampleSearchRequest request, Metadata met
6767
SearchQueryBuilder<SampleEntity> searchQuery = new SearchQueryBuilder<SampleEntity>(SampleEntity.class)
6868
.withExRefs(request.getExternalReferenceIDs(), request.getExternalReferenceSources())
6969
.appendList(request.getGermplasmDbIds(), "germplasm.id")
70-
.appendList(request.getGermplasmNames(), "germplasm.name")
70+
.appendList(request.getGermplasmNames(), "germplasm.germplasmName")
7171
.appendList(request.getObservationUnitDbIds(), "observationUnit.id")
7272
.appendList(request.getPlateDbIds(), "plate.id").appendList(request.getSampleDbIds(), "id")
7373
.appendList(request.getStudyDbIds(), "observationUnit.study.id")
74-
.appendList(request.getStudyNames(), "observationUnit.study.name");
74+
.appendList(request.getStudyNames(), "observationUnit.study.studyName");
7575

7676
Page<SampleEntity> page = sampleRepository.findAllBySearch(searchQuery, pageReq);
7777
List<Sample> samples = page.map(this::convertFromEntity).getContent();

src/main/java/org/brapi/test/BrAPITestServer/service/germ/GermplasmAttributeValueService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public List<GermplasmAttributeValue> findGermplasmAttributeValues(
7373
.appendList(request.getTraitClasses(), "attribute.trait.traitClass")
7474
.appendList(request.getTraitDbIds(), "attribute.trait.id")
7575
.appendList(request.getGermplasmDbIds(), "germplasm.id")
76-
.appendList(request.getGermplasmNames(), "germplasm.name");
76+
.appendList(request.getGermplasmNames(), "germplasm.germplasmName");
7777

7878
Page<GermplasmAttributeValueEntity> page = attributeValueRepository.findAllBySearch(searchQuery, pageReq);
7979
List<GermplasmAttributeValue> attributeValues = page.map(this::convertFromEntity).getContent();

src/main/java/org/brapi/test/BrAPITestServer/service/germ/GermplasmService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ public List<Germplasm> findGermplasm(@Valid GermplasmSearchRequest request, Meta
129129
if (request.getStudyDbIds() != null || request.getStudyNames() != null) {
130130
searchQuery = searchQuery.join("observationUnits", "obsunit")
131131
.appendList(request.getStudyDbIds(), "*obsunit.study.id")
132-
.appendList(request.getStudyNames(), "*obsunit.study.name");
132+
.appendList(request.getStudyNames(), "*obsunit.study.studyName");
133133
}
134134
if (request.getSynonyms() != null) {
135135
searchQuery = searchQuery.join("synonyms", "synonym")

0 commit comments

Comments
 (0)