enable suggestions to use search data service
[aai/sparky-be.git] / src / main / java / org / onap / aai / sparky / aggregatevnf / search / AggregateSummaryProcessor.java
index 12443e4..e98ffd5 100644 (file)
@@ -48,32 +48,37 @@ import org.restlet.data.Status;
 
 public class AggregateSummaryProcessor {
 
-  private static final Logger LOG = LoggerFactory.getInstance().getLogger(AggregateSummaryProcessor.class);
+  private static final Logger LOG =
+      LoggerFactory.getInstance().getLogger(AggregateSummaryProcessor.class);
 
   private static final String KEY_FILTERS = "filters";
 
   private ElasticSearchAdapter elasticSearchAdapter = null;
-  
+
   private String vnfAggregationIndexName;
   private FiltersConfig filtersConfig;
-  
-  public AggregateSummaryProcessor(ElasticSearchAdapter elasticSearchAdapter, FiltersConfig filtersConfig) {
+
+  public AggregateSummaryProcessor(ElasticSearchAdapter elasticSearchAdapter,
+      FiltersConfig filtersConfig) {
     this.elasticSearchAdapter = elasticSearchAdapter;
     this.filtersConfig = filtersConfig;
   }
-  
+
   public void setVnfAggregationIndexName(String vnfAggregationIndexName) {
     this.vnfAggregationIndexName = vnfAggregationIndexName;
   }
-  
+
   public void getFilteredAggregation(Exchange exchange) {
-    
-    Response response = exchange.getIn().getHeader(RestletConstants.RESTLET_RESPONSE, Response.class);
+
+    Response response =
+        exchange.getIn().getHeader(RestletConstants.RESTLET_RESPONSE, Response.class);
 
     Request request = exchange.getIn().getHeader(RestletConstants.RESTLET_REQUEST, Request.class);
 
-    /* Disables automatic Apache Camel Restlet component logging which prints out an undesirable log entry
-       which includes client (e.g. browser) information */
+    /*
+     * Disables automatic Apache Camel Restlet component logging which prints out an undesirable log
+     * entry which includes client (e.g. browser) information
+     */
     request.setLoggable(false);
 
     try {
@@ -95,29 +100,29 @@ public class AggregateSummaryProcessor {
         if (parameters.has(KEY_FILTERS)) {
           requestFilters = parameters.getJSONArray(KEY_FILTERS);
         } else {
-          
+
           JSONObject zeroResponsePayload = new JSONObject();
           zeroResponsePayload.put("count", 0);
           response.setStatus(Status.SUCCESS_OK);
           response.setEntity(zeroResponsePayload.toString(), MediaType.APPLICATION_JSON);
           exchange.getOut().setBody(response);
-          
+
           LOG.error(AaiUiMsgs.ERROR_FILTERS_NOT_FOUND);
           return;
         }
-      
+
         if (requestFilters != null && requestFilters.length() > 0) {
           List<JSONObject> filtersToQuery = new ArrayList<JSONObject>();
-          for(int i = 0; i < requestFilters.length(); i++) {
+          for (int i = 0; i < requestFilters.length(); i++) {
             JSONObject filterEntry = requestFilters.getJSONObject(i);
             filtersToQuery.add(filterEntry);
           }
-          
+
           String jsonResponsePayload = getVnfFilterAggregations(filtersToQuery);
           response.setStatus(Status.SUCCESS_OK);
           response.setEntity(jsonResponsePayload, MediaType.APPLICATION_JSON);
           exchange.getOut().setBody(response);
-          
+
         } else {
           String emptyResponse = getEmptyAggResponse();
           response.setStatus(Status.SUCCESS_OK);
@@ -127,10 +132,11 @@ public class AggregateSummaryProcessor {
         }
       }
     } catch (Exception exc) {
-      LOG.error(AaiUiMsgs.ERROR_GENERIC, "FilterProcessor failed to get filter list due to error = " + exc.getMessage());
+      LOG.error(AaiUiMsgs.ERROR_GENERIC,
+          "FilterProcessor failed to get filter list due to error = " + exc.getMessage());
     }
   }
-  
+
   private String getEmptyAggResponse() {
     JSONObject aggPayload = new JSONObject();
     aggPayload.put("totalChartHits", 0);
@@ -139,66 +145,65 @@ public class AggregateSummaryProcessor {
     payload.append("groupby_aggregation", aggPayload);
 
     return payload.toString();
-  }  
-  
+  }
+
   private static final String FILTER_ID_KEY = "filterId";
   private static final String FILTER_VALUE_KEY = "filterValue";
   private static final int DEFAULT_SHOULD_MATCH_SCORE = 1;
   private static final String VNF_FILTER_AGGREGATION = "vnfFilterAggregation";
 
-  
   private String getVnfFilterAggregations(List<JSONObject> filtersToQuery) throws IOException {
-    
+
     List<SearchFilter> searchFilters = new ArrayList<SearchFilter>();
-    for(JSONObject filterEntry : filtersToQuery) {
-      
+    for (JSONObject filterEntry : filtersToQuery) {
+
       String filterId = filterEntry.getString(FILTER_ID_KEY);
-      if(filterId != null) {
+      if (filterId != null) {
         SearchFilter filter = new SearchFilter();
         filter.setFilterId(filterId);
-        
-        if(filterEntry.has(FILTER_VALUE_KEY)) {
+
+        if (filterEntry.has(FILTER_VALUE_KEY)) {
           String filterValue = filterEntry.getString(FILTER_VALUE_KEY);
           filter.addValue(filterValue);
         }
-        
+
         searchFilters.add(filter);
       }
     }
-    
+
     // Create query for summary by entity type
-    JsonObject vnfSearch = FilterQueryBuilder.createCombinedBoolAndAggQuery(filtersConfig, searchFilters, DEFAULT_SHOULD_MATCH_SCORE);
+    JsonObject vnfSearch = FilterQueryBuilder.createCombinedBoolAndAggQuery(filtersConfig,
+        searchFilters, DEFAULT_SHOULD_MATCH_SCORE);
 
     // Parse response for summary by entity type query
     OperationResult opResult = elasticSearchAdapter.doPost(
         elasticSearchAdapter.buildElasticSearchUrlForApi(vnfAggregationIndexName,
             SparkyConstants.ES_SEARCH_API),
         vnfSearch.toString(), javax.ws.rs.core.MediaType.APPLICATION_JSON_TYPE);
-    
+
     return buildAggregateVnfResponseJson(opResult.getResult());
-    
+
   }
-  
+
   private String buildAggregateVnfResponseJson(String responseJsonStr) {
-    
+
     JSONObject finalOutputToFe = new JSONObject();
     JSONObject responseJson = new JSONObject(responseJsonStr);
-    
-    
+
     JSONObject hits = responseJson.getJSONObject("hits");
     int totalHits = hits.getInt("total");
     finalOutputToFe.put("total", totalHits);
-    
+
     JSONObject aggregations = responseJson.getJSONObject("aggregations");
     String[] aggKeys = JSONObject.getNames(aggregations);
     JSONObject aggregationsList = new JSONObject();
-    
-    for(String aggName : aggKeys) {
+
+    for (String aggName : aggKeys) {
       JSONObject aggregation = aggregations.getJSONObject(aggName);
       JSONArray buckets = aggregation.getJSONArray("buckets");
       aggregationsList.put(aggName, buckets);
     }
-    
+
     finalOutputToFe.put("aggregations", aggregationsList);
 
     return finalOutputToFe.toString();