From 3235aaf78141af9809abc8b58ad40ea1651573a4 Mon Sep 17 00:00:00 2001 From: To-om Date: Mon, 1 Mar 2021 15:01:23 +0100 Subject: [PATCH] #1670 Refactor tagSrv.getOrCreate --- ScalliGraph | 2 +- .../app/org/thp/thehive/services/TagSrv.scala | 19 ++++++------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/ScalliGraph b/ScalliGraph index fa08700e3a..7f0ebe2a95 160000 --- a/ScalliGraph +++ b/ScalliGraph @@ -1 +1 @@ -Subproject commit fa08700e3aabd46b03206309807ffb776001918d +Subproject commit 7f0ebe2a95f0f5005efe4dd41218faa4f9818e03 diff --git a/thehive/app/org/thp/thehive/services/TagSrv.scala b/thehive/app/org/thp/thehive/services/TagSrv.scala index c8050f84b7..d6eac6b71a 100644 --- a/thehive/app/org/thp/thehive/services/TagSrv.scala +++ b/thehive/app/org/thp/thehive/services/TagSrv.scala @@ -57,23 +57,16 @@ class TagSrv @Inject() ( def getTag(tag: Tag)(implicit graph: Graph): Traversal.V[Tag] = startTraversal.getTag(tag) def getOrCreate(tagName: String)(implicit graph: Graph, authContext: AuthContext): Try[Tag with Entity] = - fromString(tagName) match { - case Some((ns, pred, v)) => - startTraversal - .getByName(ns, pred, v) - .getOrFail("Tag") - .orElse( - startTraversal - .getByName(freeTagNamespace, tagName, None) - .getOrFail("Tag") - .orElse(create(freeTag(tagName))) - ) - case None => + fromString(tagName) + .flatMap { + case (ns, pred, v) => startTraversal.getByName(ns, pred, v).headOption + } + .fold { startTraversal .getByName(freeTagNamespace, tagName, None) .getOrFail("Tag") .orElse(create(freeTag(tagName))) - } + }(Success(_)) def create(tag: Tag)(implicit graph: Graph, authContext: AuthContext): Try[Tag with Entity] = { integrityCheckActor ! EntityAdded("Tag")