Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ class ItemSetActor @Inject() (implicit oec: OntologyEngineContext) extends Abstr
ResponseHandler.OK.put("identifier", node.getIdentifier)
}))
futureList
}).flatMap(f => f).map(f => f.get(1))
}).flatten.map(f => f.get(1))
}

def retire(request: Request): Future[Response] = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ object CopyManager {
response.put(AssessmentConstants.VERSION_KEY, copiedNode.getMetadata.get(AssessmentConstants.VERSION_KEY))
response
})
}).flatMap(f => f) recoverWith { case e: CompletionException => throw e.getCause }
}).flatten recoverWith { case e: CompletionException => throw e.getCause }
}

def validateExistingNode(request: Request, node: Node) = {
Expand Down Expand Up @@ -81,8 +81,8 @@ object CopyManager {
case AssessmentConstants.COPY_TYPE_SHALLOW => updateShallowHierarchy(request, node, originNode, originHierarchy)
case _ => updateHierarchy(request, node, originNode, originHierarchy, copyType)
}
}).flatMap(f => f)
}).flatMap(f => f) recoverWith { case e: CompletionException => throw e.getCause }
}).flatten
}).flatten recoverWith { case e: CompletionException => throw e.getCause }
}


Expand All @@ -91,8 +91,8 @@ object CopyManager {
copyCreateReq.map(req => {
DataNode.create(req).map(copiedNode => {
Future(copiedNode)
}).flatMap(f => f)
}).flatMap(f => f)
}).flatten
}).flatten
}

def updateHierarchy(request: Request, node: Node, originNode: Node, originHierarchy: util.Map[String, AnyRef], copyType: String)(implicit ec: ExecutionContext, oec: OntologyEngineContext): Future[Node] = {
Expand Down Expand Up @@ -121,8 +121,8 @@ object CopyManager {
}
})
} else Future(node)
}).flatMap(f => f)
}).flatMap(f => f)
}).flatten
}).flatten
}

def prepareHierarchyRequest(originHierarchy: util.Map[String, AnyRef], originNode: Node, node: Node, copyType: String, request: Request)(implicit ec: ExecutionContext, oec: OntologyEngineContext): Future[util.Map[String, AnyRef]] = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ import org.sunbird.v5.managers.AssessmentV5Manager

import java.util
import javax.inject.Inject
import scala.collection.JavaConverters
import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
import scala.concurrent.{ExecutionContext, Future}

class QuestionActor @Inject()(implicit oec: OntologyEngineContext) extends AbstractActor {
Expand Down Expand Up @@ -46,7 +45,7 @@ class QuestionActor @Inject()(implicit oec: OntologyEngineContext) extends Abstr
}

def read(request: Request)(implicit oec: OntologyEngineContext, ec: ExecutionContext): Future[Response] = {
val fields: util.List[String] = JavaConverters.seqAsJavaListConverter(request.get("fields").asInstanceOf[String].split(",").filter(field => StringUtils.isNotBlank(field) && !StringUtils.equalsIgnoreCase(field, "null"))).asJava
val fields: util.List[String] = request.get("fields").asInstanceOf[String].split(",").filter(field => StringUtils.isNotBlank(field) && !StringUtils.equalsIgnoreCase(field, "null")).toList.asJava
val extPropNameList:util.List[String] = DefinitionNode.getExternalProps(request.getContext.get("graph_id").asInstanceOf[String], request.getContext.get("version").asInstanceOf[String], request.getContext.get("schemaName").asInstanceOf[String]).asJava
request.getRequest.put("fields", extPropNameList)
DataNode.read(request).map(node => {
Expand All @@ -72,12 +71,12 @@ class QuestionActor @Inject()(implicit oec: OntologyEngineContext) extends Abstr
DataNode.update(request).map(node => {
ResponseHandler.OK.putAll(Map("identifier" -> node.getIdentifier.replace(".img", ""), "versionKey" -> node.getMetadata.get("versionKey")).asJava)
})
}).flatMap(f => f)
}).flatten
}

def listQuestions(request: Request): Future[Response] = {
RequestUtil.validateListRequest(request)
val fields: util.List[String] = JavaConverters.seqAsJavaListConverter(request.get("fields").asInstanceOf[String].split(",").filter(field => StringUtils.isNotBlank(field) && !StringUtils.equalsIgnoreCase(field, "null"))).asJava
val fields: util.List[String] = request.get("fields").asInstanceOf[String].split(",").filter(field => StringUtils.isNotBlank(field) && !StringUtils.equalsIgnoreCase(field, "null")).toList.asJava
request.getRequest.put("fields", fields)
DataNode.search(request).map(nodeList => {
val questionList = nodeList.map(node => AssessmentV5Manager.getQuestionMetadata(node, fields, List().asJava)).asJava
Expand All @@ -86,7 +85,7 @@ class QuestionActor @Inject()(implicit oec: OntologyEngineContext) extends Abstr
}

def privateRead(request: Request)(implicit oec: OntologyEngineContext, ec: ExecutionContext): Future[Response] = {
val fields: util.List[String] = JavaConverters.seqAsJavaListConverter(request.get("fields").asInstanceOf[String].split(",").filter(field => StringUtils.isNotBlank(field) && !StringUtils.equalsIgnoreCase(field, "null"))).asJava
val fields: util.List[String] = request.get("fields").asInstanceOf[String].split(",").filter(field => StringUtils.isNotBlank(field) && !StringUtils.equalsIgnoreCase(field, "null")).toList.asJava
val extPropNameList:util.List[String] = DefinitionNode.getExternalProps(request.getContext.get("graph_id").asInstanceOf[String], request.getContext.get("version").asInstanceOf[String], request.getContext.get("schemaName").asInstanceOf[String]).asJava
request.getRequest.put("fields", extPropNameList)
if (StringUtils.isBlank(request.getRequest.getOrDefault("channel", "").asInstanceOf[String]))
Expand Down Expand Up @@ -118,7 +117,7 @@ class QuestionActor @Inject()(implicit oec: OntologyEngineContext) extends Abstr
DataNode.update(updateRequest).map(node => {
ResponseHandler.OK.putAll(Map("identifier" -> node.getIdentifier.replace(".img", ""), "versionKey" -> node.getMetadata.get("versionKey")).asJava)
})
}).flatMap(f => f)
}).flatten
}

def reject(request: Request): Future[Response] = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ import org.sunbird.v5.managers.AssessmentV5Manager

import java.util
import javax.inject.Inject
import scala.collection.JavaConverters
import scala.collection.JavaConverters._
import scala.jdk.CollectionConverters._
import scala.concurrent.{ExecutionContext, Future}

class QuestionSetActor @Inject()(implicit oec: OntologyEngineContext) extends AbstractActor {
Expand Down Expand Up @@ -54,7 +53,7 @@ class QuestionSetActor @Inject()(implicit oec: OntologyEngineContext) extends Ab
}

def read(request: Request)(implicit oec: OntologyEngineContext, ec: ExecutionContext): Future[Response] = {
val fields: util.List[String] = JavaConverters.seqAsJavaListConverter(request.get("fields").asInstanceOf[String].split(",").filter(field => StringUtils.isNotBlank(field) && !StringUtils.equalsIgnoreCase(field, "null"))).asJava
val fields: util.List[String] = request.get("fields").asInstanceOf[String].split(",").filter(field => StringUtils.isNotBlank(field) && !StringUtils.equalsIgnoreCase(field, "null")).toList.asJava
request.getRequest.put("fields", fields)
DataNode.read(request).map(node => {
if (StringUtils.equalsIgnoreCase(node.getMetadata.get("visibility").asInstanceOf[String], "Private"))
Expand All @@ -64,7 +63,7 @@ class QuestionSetActor @Inject()(implicit oec: OntologyEngineContext) extends Ab
}

def privateRead(request: Request)(implicit oec: OntologyEngineContext, ec: ExecutionContext): Future[Response] = {
val fields: util.List[String] = JavaConverters.seqAsJavaListConverter(request.get("fields").asInstanceOf[String].split(",").filter(field => StringUtils.isNotBlank(field) && !StringUtils.equalsIgnoreCase(field, "null"))).asJava
val fields: util.List[String] = request.get("fields").asInstanceOf[String].split(",").filter(field => StringUtils.isNotBlank(field) && !StringUtils.equalsIgnoreCase(field, "null")).toList.asJava
request.getRequest.put("fields", fields)
if (StringUtils.isBlank(request.getRequest.getOrDefault("channel", "").asInstanceOf[String])) throw new ClientException("ERR_INVALID_CHANNEL", "Please Provide Channel!")
DataNode.read(request).map(node => {
Expand Down Expand Up @@ -119,7 +118,7 @@ class QuestionSetActor @Inject()(implicit oec: OntologyEngineContext) extends Ab
val date = DateUtils.formatCurrentDate
updateReq.putAll(Map("identifiers" -> nodeIds, "metadata" -> Map("status" -> "Review", "prevStatus" -> node.getMetadata.get("status"), "lastStatusChangedOn" -> date, "lastUpdatedOn" -> date).asJava).asJava)
updateHierarchyNodes(updateReq, node, Map("status" -> "Review", "hierarchy" -> updatedHierarchy), nodeIds)
}).flatMap(f => f)
}).flatten
}

def reject(request: Request): Future[Response] = {
Expand Down Expand Up @@ -195,7 +194,7 @@ class QuestionSetActor @Inject()(implicit oec: OntologyEngineContext) extends Ab
DataNode.update(request).map(node => {
ResponseHandler.OK.putAll(Map("identifier" -> node.getIdentifier.replace(".img", ""), "versionKey" -> node.getMetadata.get("versionKey")).asJava)
})
}).flatMap(f => f)
}).flatten
}

def importQuestionSet(request: Request): Future[Response] = importMgr.importObject(request)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,12 @@ object HierarchyManager {
throw new ClientException("ERR_OBJECT_VALIDATION", s"Children with identifier ${filteredChildNodes.map(node => node.getIdentifier.replace(".img", "")).asJava} can't be added because they don't have data in QuML ${rootNodeQumlVer} format.")
}
updateHierarchyData(unitId, hierarchy, leafNodes, rootNode, request, "add").map(node => ResponseHandler.OK.put("rootId", node.getIdentifier.replaceAll(imgSuffix, "")))
}).flatMap(f => f)
}).flatten
}
}).flatMap(f => f)
}).flatten
}
}
}).flatMap(f => f) recoverWith {case e: CompletionException => throw e.getCause}
}).flatten recoverWith {case e: CompletionException => throw e.getCause}
}

@throws[Exception]
Expand All @@ -104,10 +104,10 @@ object HierarchyManager {
if(hierarchy.isEmpty){
Future{ResponseHandler.ERROR(ResponseCode.SERVER_ERROR, ResponseCode.SERVER_ERROR.name(), "hierarchy is empty")}
} else updateHierarchyData(unitId, hierarchy, null, rootNode, request, "remove").map(node => ResponseHandler.OK.put("rootId", node.getIdentifier.replaceAll(imgSuffix, "")))
}).flatMap(f => f)
}).flatten
}
}
}).flatMap(f => f) recoverWith {case e: CompletionException => throw e.getCause}
}).flatten recoverWith {case e: CompletionException => throw e.getCause}
}

def attachLeafToRootNode(request: Request, rootNode: Node, operation: String)(implicit oec: OntologyEngineContext, ec: ExecutionContext): Future[Response] = {
Expand Down Expand Up @@ -149,10 +149,10 @@ object HierarchyManager {
.put("children", request.get("children"))
} else response
})
}).flatMap(f => f)
}).flatMap(f => f)
}).flatten
}).flatten
}
}).flatMap(f => f)
}).flatten
}

def updateRootHierarchy(hierarchy: java.util.Map[String, AnyRef], leafNodes: List[Node], rootNode: Node, request: Request, operation: String)(implicit oec: OntologyEngineContext, ec: ExecutionContext) = {
Expand Down Expand Up @@ -212,8 +212,8 @@ object HierarchyManager {
ResponseHandler.OK.put("questionSet", metadata)
}
})
}).flatMap(f => f)
}).flatMap(f => f) recoverWith { case e: ResourceNotFoundException => {
}).flatten
}).flatten recoverWith { case e: ResourceNotFoundException => {
val searchResponse = searchRootIdInElasticSearch(request.get("rootId").asInstanceOf[String])
searchResponse.map(rootHierarchy => {
if(!rootHierarchy.isEmpty && StringUtils.isNotEmpty(rootHierarchy.asInstanceOf[util.HashMap[String, AnyRef]].get("identifier").asInstanceOf[String])){
Expand All @@ -230,11 +230,11 @@ object HierarchyManager {
})
} else
Future(ResponseHandler.ERROR(ResponseCode.RESOURCE_NOT_FOUND, ResponseCode.RESOURCE_NOT_FOUND.name(), "rootId " + request.get("rootId") + " does not exist"))
}).flatMap(f => f)
}).flatten
} else {
Future(ResponseHandler.ERROR(ResponseCode.RESOURCE_NOT_FOUND, ResponseCode.RESOURCE_NOT_FOUND.name(), "rootId " + request.get("rootId") + " does not exist"))
}
}).flatMap(f => f)
}).flatten
}
}
}
Expand Down Expand Up @@ -511,7 +511,7 @@ object HierarchyManager {
Future(Map[String, AnyRef]())
else
throw new ServerException("ERR_WHILE_FETCHING_HIERARCHY_FROM_CASSANDRA", "Error while fetching hierarchy from cassandra")
}).flatMap(f => f) recoverWith { case e: CompletionException => throw e.getCause }
}).flatten recoverWith { case e: CompletionException => throw e.getCause }
}

def getCassandraHierarchy(request: Request)(implicit ec: ExecutionContext, oec: OntologyEngineContext): Future[util.Map[String, AnyRef]] = {
Expand Down Expand Up @@ -557,9 +557,9 @@ object HierarchyManager {
} else {
Future(new util.HashMap[String, AnyRef]())
}
}).flatMap(f => f)
}).flatten
}
}).flatMap(f => f) recoverWith { case e: CompletionException => throw e.getCause }
}).flatten recoverWith { case e: CompletionException => throw e.getCause }
}

def searchRootIdInElasticSearch(rootId: String)(implicit ec: ExecutionContext): Future[util.Map[String, AnyRef]] = {
Expand Down Expand Up @@ -683,7 +683,7 @@ object HierarchyManager {
val updatedMap = leafNodeMap ++ imageLeafNodeMap
updatedMap.asJava
})
}).flatMap(f => f)
}).flatten
} else {
Future{new util.HashMap[String, AnyRef]()}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ object UpdateHierarchyManager {
val existingChildren = existingHierarchy.getOrElse(HierarchyConstants.CHILDREN, new java.util.ArrayList[java.util.HashMap[String, AnyRef]]()).asInstanceOf[java.util.List[java.util.Map[String, AnyRef]]]
val nodes = List(node)
addChildNodesInNodeList(existingChildren, request, nodes).map(list => (existingHierarchy, list))
}).flatMap(f => f)
}).flatten
.map(result => {
val nodes = result._2
TelemetryManager.info("NodeList final size: " + nodes.size)
Expand All @@ -54,11 +54,11 @@ object UpdateHierarchyManager {
if (request.getContext.getOrDefault("shouldImageDelete", false.asInstanceOf[AnyRef]).asInstanceOf[Boolean])
deleteHierarchy(request)
Future(response)
}).flatMap(f => f)
}).flatMap(f => f)
}).flatMap(f => f)
}).flatten
}).flatten
}).flatten
})
}).flatMap(f => f).flatMap(f => f) recoverWith { case e: CompletionException => throw e.getCause }
}).flatten.flatten recoverWith { case e: CompletionException => throw e.getCause }
}

private def validateRequest(request: Request)(implicit ec: ExecutionContext): (java.util.HashMap[String, AnyRef], java.util.HashMap[String, AnyRef]) = {
Expand Down Expand Up @@ -142,7 +142,7 @@ object UpdateHierarchyManager {
}) recover { case e: ResourceNotFoundException => TelemetryManager.log("No hierarchy is present in cassandra for identifier:" + rootNode.getIdentifier) }
}
} else Future(response.getResult.toMap.getOrElse(HierarchyConstants.HIERARCHY, "").asInstanceOf[String])
}).flatMap(f => f)
}).flatten
}

private def addChildNodesInNodeList(childrenMaps: java.util.List[java.util.Map[String, AnyRef]], request: Request, nodes: scala.collection.immutable.List[Node])(implicit oec: OntologyEngineContext, ec: ExecutionContext): Future[scala.collection.immutable.List[Node]] = {
Expand All @@ -153,7 +153,7 @@ object UpdateHierarchyManager {
addChildNodesInNodeList(child.get(HierarchyConstants.CHILDREN).asInstanceOf[java.util.List[java.util.Map[String, AnyRef]]], request, modifiedList)
} else
Future(modifiedList)
}).flatMap(f => f)
}).flatten
}).toList
Future.sequence(futures).map(f => f.flatten.distinct)
} else {
Expand Down Expand Up @@ -394,7 +394,7 @@ object UpdateHierarchyManager {
put(HierarchyConstants.CHILD_NODES, new java.util.ArrayList[String](childNodeIds))
})
validateNodes(finalEnrichedNodeList, rootId, request).map(result => HierarchyManager.convertNodeToMap(finalEnrichedNodeList))
}).flatMap(f => f)
}).flatten
} else {
updateNodeList(nodeList, rootId, new java.util.HashMap[String, AnyRef]() {
{
Expand Down Expand Up @@ -441,7 +441,7 @@ object UpdateHierarchyManager {
updateHierarchyRelatedData(request, hierarchyStructure.getOrDefault(id, Map[String, Int]()), node.getMetadata.get(HierarchyConstants.DEPTH).asInstanceOf[Int] + 1, id, nodeList, hierarchyStructure, nxtEnrichedNodeList)
} else
Future(nxtEnrichedNodeList)
}).flatMap(f => f) recoverWith { case e: CompletionException => throw e.getCause }
}).flatten recoverWith { case e: CompletionException => throw e.getCause }
}
})
if (CollectionUtils.isNotEmpty(futures)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ import scala.concurrent.ExecutionContext
.one().getString("hierarchy")
assert(StringUtils.isNotEmpty(hierarchy))
})
}).flatMap(f => f)
}).flatten
}

"updateHierarchy with section without children" should "update the hierarchy structure for questionset" in {
Expand Down Expand Up @@ -172,7 +172,7 @@ import scala.concurrent.ExecutionContext
.one().getString("hierarchy")
assert(StringUtils.isNotEmpty(hierarchy))
})
}).flatMap(f => f)
}).flatten
}

}*/
Loading