Moving Historical Queries to spring boot
[aai/data-router.git] / src / main / java / org / onap / aai / datarouter / query / ChameleonResponseBuiler.java
index f74e742..502fbf2 100644 (file)
@@ -24,7 +24,10 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
+import javax.ws.rs.core.Response.Status;
+
 import org.apache.camel.Exchange;
+import org.onap.aai.datarouter.exception.DataRouterException;
 
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
@@ -32,32 +35,32 @@ import com.google.gson.JsonParser;
 
 public class ChameleonResponseBuiler  {
 
-  public static void buildEntity(Exchange exchange, String ID){
-    String response = exchange.getIn().getBody().toString();
+  private static final String SOURCE = "source";
+  private static final String TARGET = "target";
+  private static final String TYPE = "type";
+
+  public static String buildEntity(String chameleonResponse, String id) throws DataRouterException{
+    
     JsonParser parser = new JsonParser();
-    JsonObject root = parser.parse(response).getAsJsonObject();
+    JsonObject root = parser.parse(chameleonResponse).getAsJsonObject();
     JsonObject champResponse = new JsonObject();
-    if (!root.has("type")) {
-      exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, 400);
-      return ;
+    if (!root.has(TYPE)) {
+      throw new DataRouterException("Chameloen response does not have type : "+chameleonResponse , Status.BAD_REQUEST);
     }
-    champResponse.addProperty("key", ID);
-    champResponse.addProperty("type", root.get("type").getAsString());
-    if (root.has("source")) {
-      champResponse.add("source", root.get("source"));
+    champResponse.addProperty("key", id);
+    champResponse.addProperty(TYPE, root.get(TYPE).getAsString());
+    if (root.has(SOURCE)) {
+      champResponse.add(SOURCE, root.get(SOURCE));
     }
-    if (root.has("target")) {
-      champResponse.add("target", root.get("target"));
+    if (root.has(TARGET)) {
+      champResponse.add(TARGET, root.get(TARGET));
     }
 
     JsonObject props = new JsonObject();
     List<Map.Entry<String, JsonElement>> entries = new ArrayList<Map.Entry<String, JsonElement>>(
         root.getAsJsonObject().entrySet());
     for (Map.Entry<String, JsonElement> e : entries) {
-      if (!e.getKey().equals("type") && !e.getKey().equals("source") && !e.getKey().equals("target")) {
-        if (e.getKey().equals("source")) {
-
-        }
+      if (!TYPE.equals(e.getKey()) && !SOURCE.equals(e.getKey()) && !TARGET.equals(e.getKey())) {
         props.addProperty(e.getKey(), e.getValue().getAsString());
       }
 
@@ -65,16 +68,19 @@ public class ChameleonResponseBuiler  {
     
     champResponse.add("properties", props);
 
-    exchange.getIn().setBody(champResponse.toString());
+    return champResponse.toString();
     
   }
   
  
-  public static void buildObjectRelationship(Exchange exchange, String ID){
+  public static String buildObjectRelationship(String chameleonResponse, String id){
     //TODO: implement when chameleon supports this query     
+    return "[]";
   }
-  public static void buildCollection(Exchange exchange){
+  public static String buildCollection(String chameleonResponse){
     //TODO: implement when chameleon supports this query   
+    return "[]";
+    
   }