Skip to content

Commit

Permalink
Merge pull request #489 from NASA-PDS/edunn-develop
Browse files Browse the repository at this point in the history
RegistrySearchRequestBuilder redesign
  • Loading branch information
alexdunnjpl committed Jul 12, 2024
2 parents d3edf80 + d29c557 commit 4427ca7
Show file tree
Hide file tree
Showing 2 changed files with 153 additions and 190 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ public class ProductsController implements ProductsApi {
private static final Logger log = LoggerFactory.getLogger(ProductsController.class);

private final ConnectionContext connectionContext;
private final RegistrySearchRequestBuilder registrySearchRequestBuilder;
private final ErrorMessageFactory errorMessageFactory;
private final ObjectMapper objectMapper;
private OpenSearchClient openSearchClient;
Expand Down Expand Up @@ -80,14 +79,9 @@ static Map<String, Class<? extends ProductBusinessLogic>> getFormatters() {
public ProductsController(ConnectionContext connectionContext,
ErrorMessageFactory errorMessageFactory, ObjectMapper objectMapper) {

this.connectionContext = connectionContext;
this.errorMessageFactory = errorMessageFactory;
this.objectMapper = objectMapper;


this.registrySearchRequestBuilder = new RegistrySearchRequestBuilder(connectionContext);


this.connectionContext = connectionContext;
this.openSearchClient = this.connectionContext.getOpenSearchClient();

}
Expand Down Expand Up @@ -242,14 +236,14 @@ public ResponseEntity<Object> selectByLidvidAll(String identifier, List<String>
@Override
public ResponseEntity<Object> productList(List<String> fields, List<String> keywords,
Integer limit, String q, List<String> sort, List<String> searchAfter) throws Exception {
RawMultipleProductResponse response;


RegistrySearchRequestBuilder registrySearchRequestBuilder =
new RegistrySearchRequestBuilder(this.registrySearchRequestBuilder);

SearchRequest searchRequest = registrySearchRequestBuilder.addQParam(q)
.addKeywordsParam(keywords).fields(fields).paginates(limit, sort, searchAfter).onlyLatest().build();
SearchRequest searchRequest = new RegistrySearchRequestBuilder(this.connectionContext)
.constrainByQueryString(q)
.addKeywordsParam(keywords)
.fieldsFromStrings(fields)
.paginate(limit, sort, searchAfter)
.onlyLatest()
.build();

SearchResponse<HashMap> searchResponse =
this.openSearchClient.search(searchRequest, HashMap.class);
Expand All @@ -267,12 +261,10 @@ public ResponseEntity<Object> productList(List<String> fields, List<String> keyw
private HashMap<String, Object> getLidVid(PdsProductIdentifier identifier, List<String> fields)
throws OpenSearchException, IOException, NotFoundException {

RegistrySearchRequestBuilder registrySearchRequestBuilder =
new RegistrySearchRequestBuilder(this.registrySearchRequestBuilder);


SearchRequest searchRequest =
registrySearchRequestBuilder.addLidvidMatch(identifier).fields(fields).build();
SearchRequest searchRequest = new RegistrySearchRequestBuilder(this.connectionContext)
.matchLidvid(identifier)
.fieldsFromStrings(fields)
.build();

// useless to detail here that the HashMap is parameterized <String, Object>
// because of compilation features, see
Expand All @@ -293,11 +285,11 @@ private HashMap<String, Object> getLidVid(PdsProductIdentifier identifier, List<
private HashMap<String, Object> getLatestLidVid(PdsProductIdentifier identifier,
List<String> fields) throws OpenSearchException, IOException, NotFoundException {

RegistrySearchRequestBuilder registrySearchRequestBuilder =
new RegistrySearchRequestBuilder(this.registrySearchRequestBuilder);

SearchRequest searchRequest =
registrySearchRequestBuilder.addLidMatch(identifier).onlyLatest().fields(fields).build();
SearchRequest searchRequest = new RegistrySearchRequestBuilder(this.connectionContext)
.matchLid(identifier)
.fieldsFromStrings(fields)
.onlyLatest()
.build();

// useless to detail here that the HashMap is parameterized <String, Object>
// because of compilation features, see
Expand All @@ -320,16 +312,10 @@ private RawMultipleProductResponse getAllLidVid(PdsProductIdentifier identifier,
List<String> fields, Integer limit, List<String> sort, List<String> searchAfter)
throws OpenSearchException, IOException, NotFoundException, SortSearchAfterMismatchException {

RegistrySearchRequestBuilder registrySearchRequestBuilder =
new RegistrySearchRequestBuilder(this.registrySearchRequestBuilder);

registrySearchRequestBuilder =
registrySearchRequestBuilder.addLidMatch(identifier).fields(fields);

registrySearchRequestBuilder = registrySearchRequestBuilder.paginates(limit, sort, searchAfter);


SearchRequest searchRequest = registrySearchRequestBuilder.build();
SearchRequest searchRequest = new RegistrySearchRequestBuilder(this.connectionContext)
.matchLid(identifier).fieldsFromStrings(fields)
.paginate(limit, sort, searchAfter)
.build();

// useless to detail here that the HashMap is parameterized <String, Object>
// because of compilation features, see
Expand Down
Loading

0 comments on commit 4427ca7

Please sign in to comment.