Repository navigation
[BI-3082] Implement generalized list item search endpoint, targeting DeltaBreed germplasm use case - #33
Open
jloux-brapi wants to merge 16 commits into
Open
[BI-3082] Implement generalized list item search endpoint, targeting DeltaBreed germplasm use case#33jloux-brapi wants to merge 16 commits into
jloux-brapi wants to merge 16 commits into
Conversation
- Addtional changes to processGermplasmForDisplay that was not occuring before. This was breaking features in the Lists tab
jloux-brapi
marked this pull request as ready for review
October 19, 2026 21:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Story: BI-3082
Supporting changes:
New Lists API endpoint
/search/lists/{listDbId}/itemsadded to allow list type entity search requests. In particular, this search request will be used bybi-apito support the requirement of sorting, filtering, and paginating germplasm data that belongs in lists. Previously issues were found with the cache-removal implementation of germplasm lists, and this body should work should address all of these issues. To support a generalized approach to this endpoint, the following features were implemented:ListItemSearchRequestHandlerfor all ListTypeSearchRequests to implement. Only Germplasm implements this right now, if BrAPI wants to support all list types we (or them) can implement the rest at that timeListItemWithFullItem<T>responses added. In particular, this new model object providesListIteminformation, as well as the full BrAPI model object that is represented by . In the case of DeltaBreed, this isgermplasm, but if other list types are implemented, this generalized approach will allow for different models to use this object.EntityColumnNameAndTypetoSortAndFilterEntityColumnInfoafter new support requirements caused more attributes to be added to this model. These new attributes, supplied on creation, tell theSearchQueryBuilderabout special use cases that were previously being overwritten or ignored with existing features. These new attributes make this more explicit.BrAPIRepositry/Implsupport to search on multiple entities which is required for this new endpoint's use case. This code has been generalized to support any such use case.SearchQueryBuildersupport for multiple entity search requestsBrAPIGermplasmService.buildGermplasmSearchQuery()to prevent fetching thesynonymscollection in the initial query. This was seen as a problem for using on the list query in general because it would have required the usage ofBrAPIRespository.findAllBySearchPaginatingWithFetches(), which utilizes a difficult to edit subquery. It was found through these changes in fact that this method can likely be removed in favor of simply not fetching the first collection, then iterating through all the collections you need to fetch to populate before conversion. It's the subject of this new ticketDependencies
Testing
Testing for this bi-api PR is sufficient for the testing of this ticket.
Supplemental testing can be done on the new
/search/lists/{listDbId}/itemsendpoint as well to test corner cases as well, but not required.Checklist: