X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fcrud%2Futil%2FCrudServiceUtil.java;h=5eeb38ed5420361346fa85d6db693a4d941d90a1;hb=3bc6a702f2d3d8710c7aaa94cdc8c0ccf3deb759;hp=ed5fe535323f2f8ed66400478dca2821f67d8642;hpb=d10a218c76633374f083f7a2802c198e93a6abae;p=aai%2Fgizmo.git diff --git a/src/main/java/org/onap/crud/util/CrudServiceUtil.java b/src/main/java/org/onap/crud/util/CrudServiceUtil.java index ed5fe53..5eeb38e 100644 --- a/src/main/java/org/onap/crud/util/CrudServiceUtil.java +++ b/src/main/java/org/onap/crud/util/CrudServiceUtil.java @@ -31,8 +31,12 @@ import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response.Status; import org.onap.aai.db.props.AAIProperties; import org.onap.crud.exception.CrudException; +import org.onap.crud.parser.EdgePayload; +import org.onap.crud.parser.util.EdgePayloadUtil; import org.onap.schema.EdgeRulesLoader; import org.onap.schema.OxmModelLoader; +import org.onap.schema.RelationshipSchema; + import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonPrimitive; @@ -138,4 +142,25 @@ public class CrudServiceUtil { return entityTag; } + public static String determineEdgeType(EdgePayload payload, String version) throws CrudException { + RelationshipSchema schema = EdgeRulesLoader.getSchemaForVersion(version); + + if (payload.getSource() == null || payload.getTarget() == null) { + throw new CrudException("Source/Target not specified", Status.BAD_REQUEST); + } + + Set edgeTypes = schema.getValidRelationTypes(EdgePayloadUtil.getVertexNodeType(payload.getSource()), + EdgePayloadUtil.getVertexNodeType(payload.getTarget())); + + if (edgeTypes.size() == 0) { + throw new CrudException("No valid relationship types from " + payload.getSource() + " to " + payload.getTarget(), Status.BAD_REQUEST); + } + + if (edgeTypes.size() > 1) { + throw new CrudException("Multiple possible relationship types from " + payload.getSource() + " to " + payload.getTarget(), Status.BAD_REQUEST); + } + + return edgeTypes.iterator().next(); + } + }