Skip to content

Commit

Permalink
Added regex check for reference entity
Browse files Browse the repository at this point in the history
  • Loading branch information
Sreejit-K committed Jan 29, 2024
1 parent 7301280 commit ed33b27
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -497,7 +497,9 @@ public JsonNode readInternal(Vertex rootVertex) throws Exception {

private void expandReferenceNodes(ObjectNode rootNode) {
rootNode.fields().forEachRemaining(entry -> {
if(entry.getValue().isValueNode() && entry.getValue().asText().startsWith(DID_TYPE)) {
// Regex pattern to check for a DID
String pattern = "^"+ DID_TYPE+":[^:]+:[^:]+";
if(entry.getValue().isValueNode() && entry.getValue().asText().matches(pattern)) {
String[] dids = entry.getValue().asText().split(":");
String osid = RecordIdentifier.parse(dids[2]).getUuid();
Iterator<Vertex> vertexIterator = graph.traversal().clone().V().hasLabel(dids[1]).has(uuidPropertyName, osid);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import dev.sunbirdrc.registry.middleware.util.Constants;
import dev.sunbirdrc.registry.util.RecordIdentifier;

import static dev.sunbirdrc.registry.middleware.util.Constants.DID_TYPE;
import static dev.sunbirdrc.registry.middleware.util.Constants.ENTITY_TYPE;

/**
Expand Down Expand Up @@ -126,7 +127,8 @@ private ArrayNode expandReference(JsonNode searchedNode) {
for (JsonNode node : arrayNode) {
ObjectNode objectNode = (ObjectNode) node;
objectNode.fields().forEachRemaining(objectField -> {
if(objectField.getValue().asText().startsWith("did:")) {
String pattern = "^"+ DID_TYPE+":[^:]+:[^:]+";
if(objectField.getValue().asText().matches(pattern)) {
String[] referenceStrSplit = objectField.getValue().asText().split(":");
String indexName = referenceStrSplit[1].toLowerCase();
String osid = referenceStrSplit[2];
Expand Down Expand Up @@ -185,7 +187,7 @@ private SearchQuery getSearchQuery(String entityName, String osid) throws JsonPr
private SearchQuery getSearchQuery(String entityName, List<String> osids) throws JsonProcessingException {
ArrayNode osidsArrayNode = JsonNodeFactory.instance.arrayNode();
for (String osid: osids) {
osidsArrayNode.add(osid);
osidsArrayNode.add("1-"+osid);
}
ObjectNode objectNode = JsonNodeFactory.instance.objectNode();
ObjectNode conditionNode = JsonNodeFactory.instance.objectNode();
Expand Down

0 comments on commit ed33b27

Please sign in to comment.