Commit 08783dda authored by Mahesh Kumar Gangula's avatar Mahesh Kumar Gangula
Browse files

Issue #SB-18415 fix: code refactoring.

parent c460460b
taxonomy-api 3.9.0-prod-fix 4.1.0_fixes AmiableAnil-patch-1 Gcloud_copy Gcloud_fix Remove_unwantedCode_Gcloud_fix actors-test bulk-upload-comptenecy-mapping bulk-upload-excelsheet bulk-upload-test_excel bulk_upload code-cleanup csp-migration dependabot/maven/platform-core/platform-telemetry/ch.qos.logback-logback-core-1.2.9 dependabot/maven/search-api/search-core/org.apache.httpcomponents-httpclient-4.5.13 flag-api ft-spike knowlg-friday knowlg-oneclick loadtest-release-2.10 local-setup-fix local-setup-kube m-4.2.0 master master-data neo4j-3.4.9 neo4j-4-code new_objecttype org-target-enhancement patch-1 patch-2 patch-3 poc_bulk_upload qs-schema rahul_bulk_upload_postgres release-2.10.0 release-2.9.0 release-3.0.0 release-3.0.1 release-3.1.0 release-3.2.0 release-3.3.0 release-3.4.0 release-3.5.0 release-3.6.0 release-3.6.0.1 release-3.7.0 release-3.8.0 release-3.9.0 release-4.0.0 release-4.1.0 release-4.10.0 release-4.10.1 release-4.2.0 release-4.3.0 release-4.4.0 release-4.5.0 release-4.6.0 release-4.7.0 release-4.7.0-debug release-4.8.0 release-4.8.0-debug release-4.9.0 release-4.9.1 release-5.0.0 release-5.0.1 release-5.1.0 release-5.1.0-content release-5.2.0 release-5.3.0 retire-api revert-718-visiblity-private-api revert-719-assessment-private-read-api revert-720-visiblity-public-search-api revert-721-visiblity-private-search-api review-4.1.0 s-debug schema-update-4.0 schema-updates release-5.2.0_RC2 release-5.2.0_RC1 release-5.1.0_RC1 release-5.0.0_RC2 release-5.0.0_RC1 release-4.10.0_RC2 release-4.10.0_RC1 release-4.9.1_RC1 release-4.9.0_RC8 release-4.9.0_RC7 release-4.9.0_RC6 release-4.9.0_RC5 release-4.9.0_RC4 release-4.9.0_RC3 release-4.9.0_RC2 release-4.9.0_RC1 release-4.8.0_RC5 release-4.8.0_RC4 release-4.8.0_RC3 release-4.8.0_RC2 release-4.8.0_RC1 release-4.7.0_RC6 release-4.7.0_RC5 release-4.7.0_RC4 release-4.7.0_RC3 release-4.7.0_RC2 release-4.7.0_RC1 release-4.6.0_RC2 release-4.6.0_RC1 release-4.5.0_RC2 release-4.5.0_RC1 release-4.4.0_RC6 release-4.4.0_RC5 release-4.4.0_RC4 release-4.4.0_RC3 release-4.4.0_RC2 release-4.4.0_RC1 release-4.3.0_RC10 release-4.3.0_RC9 release-4.3.0_RC8 release-4.3.0_RC7 release-4.3.0_RC6 release-4.3.0_RC5 release-4.3.0_RC4 release-4.3.0_RC3 release-4.3.0_RC2 release-4.3.0_RC1 release-4.2.0_RC13 release-4.2.0_RC12 release-4.2.0_RC11 release-4.2.0_RC10 release-4.2.0_RC9 release-4.2.0_RC8 release-4.2.0_RC7 release-4.2.0_RC6 release-4.2.0_RC5 release-4.2.0_RC4 release-4.2.0_RC3 release-4.2.0_RC2 release-4.2.0_RC1 release-4.1.0_RC13 release-4.1.0_RC12 release-4.1.0_RC11 release-4.1.0_RC10 release-4.1.0_RC9 release-4.1.0_RC8 release-4.1.0_RC7 release-4.1.0_RC6 release-4.1.0_RC5 release-4.1.0_RC4 release-4.1.0_RC3 release-4.1.0_RC2 release-4.1.0_RC1 release-4.0.0_RC9 release-4.0.0_RC8 release-4.0.0_RC7 release-4.0.0_RC6 release-4.0.0_RC5 release-4.0.0_RC4 release-4.0.0_RC3 release-4.0.0_RC2 release-4.0.0_RC1 release-3.9.0_RC12 release-3.9.0_RC11 release-3.9.0_RC10 release-3.9.0_RC9 release-3.9.0_RC8 release-3.9.0_RC7 release-3.9.0_RC6 release-3.9.0_RC5 release-3.9.0_RC4 release-3.9.0_RC3 release-3.9.0_RC2 release-3.9.0_RC1 release-3.8.0_RC9 release-3.8.0_RC8 release-3.8.0_RC7 release-3.8.0_RC6 release-3.8.0_RC5 release-3.8.0_RC4 release-3.8.0_RC3 release-3.8.0_RC2 release-3.8.0_RC1 release-3.7.0_RC1 release-3.6.0_RC5 release-3.6.0_RC4 release-3.6.0_RC3 release-3.6.0_RC2 release-3.6.0_RC1 release-3.5.0 release-3.5.0_RC2 release-3.5.0_RC1 release-3.4.0 release-3.4.0_RC2 release-3.4.0_RC1 release-3.3.0_RC10 release-3.3.0_RC9 release-3.3.0_RC8 release-3.3.0_RC7 release-3.3.0_RC6 release-3.3.0_RC5 release-3.3.0_RC4 release-3.3.0_RC3 release-3.3.0_RC2 release-3.3.0_RC1 release-3.2.0_RC9 release-3.2.0_RC8 release-3.2.0_RC7 release-3.2.0_RC6 release-3.2.0_RC5 release-3.2.0_RC4 release-3.2.0_RC3 release-3.2.0_RC2 release-3.2.0_RC1 release-3.1.0 release-3.1.0_RC8 release-3.1.0_RC7 release-3.1.0_RC6 release-3.1.0_RC5 release-3.1.0_RC4 release-3.1.0_RC3 release-3.1.0_RC2 release-3.1.0_RC1 release-3.0.1_RC3 release-3.0.1_RC2 release-3.0.1_RC1 release-3.0.0 release-3.0.0_RC11 release-3.0.0_RC10 release-3.0.0_RC9 release-3.0.0_RC8 release-3.0.0_RC7 release-3.0.0_RC6 release-3.0.0_RC5 release-3.0.0_RC4 release-3.0.0_RC3 release-3.0.0_RC2 release-3.0.0_RC1 release-2.10.0 release-2.10.0_RC19 release-2.10.0_RC18 release-2.10.0_RC17 release-2.10.0_RC16 release-2.10.0_RC15 release-2.10.0_RC14 release-2.10.0_RC13 release-2.10.0_RC12 release-2.10.0_RC11 release-2.10.0_RC10 release-2.10.0_RC9 release-2.10.0_RC8 release-2.10.0_RC7 release-2.10.0_RC6 release-2.10.0_RC5 release-2.10.0_RC4 release-2.10.0_RC3 release-2.10.0_RC2 release-2.10.0_RC1 release-2.9.0_RC9 release-2.9.0_RC8
No related merge requests found
Showing with 42 additions and 37 deletions
+42 -37
......@@ -19,7 +19,7 @@ import scala.collection.JavaConverters
import scala.concurrent.{ExecutionContext, Future}
import com.mashape.unirest.http.HttpResponse
import com.mashape.unirest.http.Unirest
import org.apache.commons.collections4.CollectionUtils
import org.apache.commons.collections4.{CollectionUtils, MapUtils}
import org.sunbird.graph.OntologyEngineContext
import org.sunbird.utils.{HierarchyConstants, HierarchyErrorCodes}
......@@ -60,10 +60,9 @@ object HierarchyManager {
val updateResponse = updateHierarchy(unitId, hierarchy, leafNodes, node, request, "add")
updateResponse.map(response => {
if(!ResponseHandler.checkError(response)) {
val resp: Response = ResponseHandler.OK
resp.put("rootId", node.getIdentifier.replaceAll(imgSuffix, ""))
resp.put(unitId, request.get("children"))
resp
ResponseHandler.OK
.put("rootId", node.getIdentifier.replaceAll(imgSuffix, ""))
.put(unitId, request.get("children"))
}else {
response
}
......@@ -96,9 +95,7 @@ object HierarchyManager {
val updateResponse = updateHierarchy(unitId, hierarchy, null, node, request, "remove")
updateResponse.map(response => {
if(!ResponseHandler.checkError(response)) {
val resp: Response = ResponseHandler.OK
resp.put("rootId", node.getIdentifier.replaceAll(imgSuffix, ""))
resp
ResponseHandler.OK.put("rootId", node.getIdentifier.replaceAll(imgSuffix, ""))
} else {
response
}
......@@ -122,7 +119,6 @@ object HierarchyManager {
@throws[Exception]
def getUnPublishedHierarchy(request: Request)(implicit oec: OntologyEngineContext, ec: ExecutionContext): Future[Response] = {
val rootNodeFuture = getRootNode(request)
val response: Response = ResponseHandler.OK
rootNodeFuture.map(rootNode => {
if (StringUtils.equalsIgnoreCase("Retired", rootNode.getMetadata.getOrDefault("status", "").asInstanceOf[String])) {
Future(ResponseHandler.ERROR(ResponseCode.RESOURCE_NOT_FOUND, ResponseCode.RESOURCE_NOT_FOUND.name(), "rootId " + request.get("rootId") + " does not exist"))
......@@ -136,9 +132,12 @@ object HierarchyManager {
metadata.put("children", hierarchy.getOrDefault("children", new util.ArrayList[java.util.Map[String, AnyRef]]).asInstanceOf[util.ArrayList[java.util.Map[String, AnyRef]]])
metadata.put("identifier", request.get("rootId"))
if(StringUtils.isNotEmpty(bookmarkId))
metadata = filterBookmarkHierarchy(metadata.get("children").asInstanceOf[util.List[util.HashMap[String, AnyRef]]], bookmarkId)
response.put("content", metadata)
response
metadata = filterBookmarkHierarchy(metadata.get("children").asInstanceOf[util.List[util.Map[String, AnyRef]]], bookmarkId)
if (MapUtils.isEmpty(metadata)) {
ResponseHandler.ERROR(ResponseCode.RESOURCE_NOT_FOUND, ResponseCode.RESOURCE_NOT_FOUND.name(), "bookmarkId " + bookmarkId + " does not exist")
} else {
ResponseHandler.OK.put("content", metadata)
}
})
}).flatMap(f => f) recoverWith { case e: ResourceNotFoundException => {
val searchResponse = searchRootIdInElasticSearch(request.get("rootId").asInstanceOf[String])
......@@ -147,8 +146,7 @@ object HierarchyManager {
val unPublishedBookmarkHierarchy = getUnpublishedBookmarkHierarchy(request, rootHierarchy.asInstanceOf[util.HashMap[String, AnyRef]].get("identifier").asInstanceOf[String])
unPublishedBookmarkHierarchy.map(hierarchy => {
if (!hierarchy.isEmpty) {
response.put("content", hierarchy)
response
ResponseHandler.OK.put("content", hierarchy)
} else
ResponseHandler.ERROR(ResponseCode.RESOURCE_NOT_FOUND, ResponseCode.RESOURCE_NOT_FOUND.name(), "rootId " + request.get("rootId") + " does not exist")
})
......@@ -163,21 +161,27 @@ object HierarchyManager {
@throws[Exception]
def getPublishedHierarchy(request: Request)(implicit ec: ExecutionContext): Future[Response] = {
val redisHierarchy = RedisCache.get(hierarchyPrefix + request.get("rootId"))
val response: Response = ResponseHandler.OK
if (StringUtils.isNotEmpty(redisHierarchy)) {
response.put("content", mapAsJavaMap(JsonUtils.deserialize(redisHierarchy, classOf[java.util.Map[String, AnyRef]]).toMap))
Future(response)
} else {
val rootHierarchy = getCassandraHierarchy(request)
rootHierarchy.map(rootMap => {
if (!rootMap.isEmpty) {
response.put("content", rootMap.get("content"))
response
val hierarchyFuture = if (StringUtils.isNotEmpty(redisHierarchy)) {
Future(mapAsJavaMap(Map("content" -> mapAsJavaMap(JsonUtils.deserialize(redisHierarchy, classOf[java.util.Map[String, AnyRef]]).toMap))))
} else getCassandraHierarchy(request)
hierarchyFuture.map(result => {
if (!result.isEmpty) {
val bookmarkId = request.get("bookmarkId").asInstanceOf[String]
val rootHierarchy = result.get("content").asInstanceOf[Map[String, AnyRef]]
if (StringUtils.isEmpty(bookmarkId)) {
ResponseHandler.OK.put("content", rootHierarchy)
} else {
val children = rootHierarchy.getOrElse("children", new util.ArrayList[util.Map[String, AnyRef]]()).asInstanceOf[util.List[util.Map[String, AnyRef]]]
val bookmarkHierarchy = filterBookmarkHierarchy(children, bookmarkId)
if (MapUtils.isEmpty(bookmarkHierarchy)) {
ResponseHandler.ERROR(ResponseCode.RESOURCE_NOT_FOUND, ResponseCode.RESOURCE_NOT_FOUND.name(), "bookmarkId " + bookmarkId + " does not exist")
} else {
ResponseHandler.OK.put("content", bookmarkHierarchy)
}
}
else
ResponseHandler.ERROR(ResponseCode.RESOURCE_NOT_FOUND, ResponseCode.RESOURCE_NOT_FOUND.name(), "rootId " + request.get("rootId") + " does not exist")
})
}
} else
ResponseHandler.ERROR(ResponseCode.RESOURCE_NOT_FOUND, ResponseCode.RESOURCE_NOT_FOUND.name(), "rootId " + request.get("rootId") + " does not exist")
})
}
def validateRequest(request: Request)(implicit ec: ExecutionContext) = {
......@@ -385,7 +389,7 @@ object HierarchyManager {
parentHierarchy.map(hierarchy => {
if (!hierarchy.isEmpty) {
if (StringUtils.isNoneEmpty(hierarchy.getOrDefault("status", "").asInstanceOf[String]) && statusList.contains(hierarchy.getOrDefault("status", "").asInstanceOf[String]) && CollectionUtils.isNotEmpty(mapAsJavaMap(hierarchy).get("children").asInstanceOf[util.ArrayList[util.HashMap[String, AnyRef]]])) {
val bookmarkHierarchy = filterBookmarkHierarchy(mapAsJavaMap(hierarchy).get("children").asInstanceOf[util.ArrayList[util.HashMap[String, AnyRef]]], request.get("rootId").asInstanceOf[String])
val bookmarkHierarchy = filterBookmarkHierarchy(mapAsJavaMap(hierarchy).get("children").asInstanceOf[util.ArrayList[util.Map[String, AnyRef]]], request.get("rootId").asInstanceOf[String])
if (!bookmarkHierarchy.isEmpty) {
rootHierarchy.put("content", hierarchy)
RedisCache.set(hierarchyPrefix + request.get("rootId"), JsonUtils.serialize(new util.HashMap[String, AnyRef](bookmarkHierarchy)))
......@@ -445,16 +449,16 @@ object HierarchyManager {
}
}
def filterBookmarkHierarchy(children: util.List[util.HashMap[String, AnyRef]], bookmarkId: String)(implicit ec: ExecutionContext): util.HashMap[String, AnyRef] = {
def filterBookmarkHierarchy(children: util.List[util.Map[String, AnyRef]], bookmarkId: String)(implicit ec: ExecutionContext): util.Map[String, AnyRef] = {
if (CollectionUtils.isNotEmpty(children)) {
val response = children.filter(_.get("identifier") == bookmarkId).toList
if (CollectionUtils.isNotEmpty(response)) {
response.get(0)
} else {
val nextChildren = bufferAsJavaList(children.flatMap(child => {
if (!child.isEmpty && CollectionUtils.isNotEmpty(child.get("children").asInstanceOf[util.ArrayList[util.HashMap[String, AnyRef]]]))
child.get("children").asInstanceOf[util.ArrayList[util.HashMap[String, AnyRef]]]
else new util.ArrayList[util.HashMap[String, AnyRef]]
if (!child.isEmpty && CollectionUtils.isNotEmpty(child.get("children").asInstanceOf[util.List[util.Map[String, AnyRef]]]))
child.get("children").asInstanceOf[util.List[util.Map[String, AnyRef]]]
else new util.ArrayList[util.Map[String, AnyRef]]
}))
filterBookmarkHierarchy(nextChildren, bookmarkId)
}
......@@ -463,12 +467,12 @@ object HierarchyManager {
}
}
def getUnpublishedBookmarkHierarchy(request: Request, identifier: String)(implicit ec: ExecutionContext): Future[util.HashMap[String, AnyRef]] = {
def getUnpublishedBookmarkHierarchy(request: Request, identifier: String)(implicit ec: ExecutionContext): Future[util.Map[String, AnyRef]] = {
if (StringUtils.isNotEmpty(identifier)) {
val parentHierarchy = fetchHierarchy(request, identifier + imgSuffix)
parentHierarchy.map(hierarchy => {
if (!hierarchy.isEmpty && CollectionUtils.isNotEmpty(mapAsJavaMap(hierarchy).get("children").asInstanceOf[util.ArrayList[util.HashMap[String, AnyRef]]])) {
val bookmarkHierarchy = filterBookmarkHierarchy(mapAsJavaMap(hierarchy).get("children").asInstanceOf[util.ArrayList[util.HashMap[String, AnyRef]]], request.get("rootId").asInstanceOf[String])
if (!hierarchy.isEmpty && CollectionUtils.isNotEmpty(mapAsJavaMap(hierarchy).get("children").asInstanceOf[util.ArrayList[util.Map[String, AnyRef]]])) {
val bookmarkHierarchy = filterBookmarkHierarchy(mapAsJavaMap(hierarchy).get("children").asInstanceOf[util.ArrayList[util.Map[String, AnyRef]]], request.get("rootId").asInstanceOf[String])
if (!bookmarkHierarchy.isEmpty) {
bookmarkHierarchy
} else {
......
......@@ -62,8 +62,9 @@ public class Response implements Serializable {
return result.get(key);
}
public void put(String key, Object vo) {
public Response put(String key, Object vo) {
result.put(key, vo);
return this;
}
public void putAll(Map<String, Object> resultMap) {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment