Commit a4800fec authored by Kumar Gauraw's avatar Kumar Gauraw
Browse files

Merge branch 'release-3.6.0' into question-api

parents ca9b36a3 acfccbfc
schema-updates 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 knowlg-friday knowlg-oneclick local-setup-fix local-setup-kube m-4.2.0 master master-data org-target-enhancement patch-1 patch-2 patch-3 poc_bulk_upload qs-schema rahul_bulk_upload_postgres 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 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 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
No related merge requests found
Showing with 28 additions and 33 deletions
+28 -33
......@@ -30,12 +30,6 @@ class TestAssetActor extends BaseSpec with MockFactory {
(graphDB.getNodeByUniqueId(_: String, _: String, _: Boolean, _: Request)).expects(*, *, *, *).returns(Future(getNode()))
(graphDB.addNode(_: String, _: Node)).expects(*, *).returns(Future(node))
(graphDB.readExternalProps(_: Request, _: List[String])).expects(*, *).returns(Future(new Response())).anyNumberOfTimes()
(graphDB.getNodeByUniqueIds(_: String, _: SearchCriteria)).expects(*, *).returns(Future(new util.ArrayList[Node]() {
{
add(getBoardNode())
add(getFrameworkNode())
}
}))
implicit val ss = mock[StorageService]
val request = getContentRequest()
request.getContext.put("identifier","do_1234")
......
......@@ -45,17 +45,16 @@ class TestContentActor extends BaseSpec with MockFactory {
implicit val oec: OntologyEngineContext = mock[OntologyEngineContext]
val graphDB = mock[GraphService]
(oec.graphService _).expects().returns(graphDB).anyNumberOfTimes()
// (graphDB.readExternalProps(_: Request, _: List[String])).expects(*, *).returns(Future(new Response()))
// Uncomment below line if running individual file in local.
//(graphDB.readExternalProps(_: Request, _: List[String])).expects(*, *).returns(Future(new Response()))
(graphDB.addNode(_: String, _: Node)).expects(*, *).returns(Future(getValidNode()))
(graphDB.getNodeByUniqueIds(_: String, _: SearchCriteria)).expects(*, *).returns(Future(new util.ArrayList[Node]() {
{
add(getBoardNode())
add(getFrameworkNode())
}
}))
val request = getContentRequest()
request.getRequest.putAll( mapAsJavaMap(Map("channel"-> "in.ekstep","name" -> "New Content", "code" -> "1234", "mimeType"-> "application/vnd.ekstep.content-collection", "contentType" -> "Course", "primaryCategory" -> "Learning Resource", "channel" -> "in.ekstep",
"framework" -> "NCF", "organisationBoardIds" -> new util.ArrayList[String](){{add("ncf_board_cbse")}})))
request.getRequest.putAll( mapAsJavaMap(Map("channel"-> "in.ekstep","name" -> "New Content", "code" -> "1234", "mimeType"-> "application/vnd.ekstep.content-collection", "contentType" -> "Course", "primaryCategory" -> "Learning Resource", "channel" -> "in.ekstep", "targetBoardIds" -> new util.ArrayList[String](){{add("ncf_board_cbse")}})))
request.setOperation("createContent")
val response = callActor(request, Props(new ContentActor()))
assert(response.get("identifier") != null)
......@@ -69,15 +68,8 @@ class TestContentActor extends BaseSpec with MockFactory {
(oec.graphService _).expects().returns(graphDB).anyNumberOfTimes()
(graphDB.getNodeByUniqueId(_: String, _: String, _: Boolean, _: Request)).expects(*, *, *, *).returns(Future(getDefinitionNode())).anyNumberOfTimes()
(graphDB.addNode(_: String, _: Node)).expects(*, *).returns(Future(getValidNode()))
(graphDB.getNodeByUniqueIds(_: String, _: SearchCriteria)).expects(*, *).returns(Future(new util.ArrayList[Node]() {
{
add(getBoardNode())
add(getFrameworkNode())
}
}))
val request = getContentRequest()
request.getRequest.putAll( mapAsJavaMap(Map("name" -> "New Content", "code" -> "1234", "mimeType"-> "application/vnd.ekstep.plugin-archive", "contentType" -> "Course", "primaryCategory" -> "Learning Resource", "channel" -> "in.ekstep",
"framework" -> "NCF", "organisationBoardIds" -> new util.ArrayList[String](){{add("ncf_board_cbse")}})))
request.getRequest.putAll( mapAsJavaMap(Map("name" -> "New Content", "code" -> "1234", "mimeType"-> "application/vnd.ekstep.plugin-archive", "contentType" -> "Course", "primaryCategory" -> "Learning Resource", "channel" -> "in.ekstep", "framework"-> "NCF", "organisationBoardIds" -> new util.ArrayList[String](){{add("ncf_board_cbse")}})))
request.setOperation("createContent")
val response = callActor(request, Props(new ContentActor()))
assert(response.get("identifier") != null)
......@@ -311,12 +303,6 @@ class TestContentActor extends BaseSpec with MockFactory {
(graphDB.getNodeByUniqueId(_: String, _: String, _: Boolean, _: Request)).expects(*, *, *, *).returns(Future(node)).anyNumberOfTimes()
(graphDB.addNode(_: String, _: Node)).expects(*, *).returns(Future(node))
(graphDB.readExternalProps(_: Request, _: List[String])).expects(*, *).returns(Future(new Response()))
(graphDB.getNodeByUniqueIds(_: String, _: SearchCriteria)).expects(*, *).returns(Future(new util.ArrayList[Node]() {
{
add(getBoardNode())
add(getFrameworkNode())
}
}))
implicit val ss = mock[StorageService]
val request = getContentRequest()
request.getContext.put("identifier","do1234")
......
......@@ -17,13 +17,12 @@ import scala.concurrent.{ExecutionContext, Future}
trait FrameworkValidator extends IDefinition {
val ORGANISATIONAL_FRAMEWORK_TERMS = List("framework", "boardIds", "gradeLevelIds", "subjectIds", "mediumIds", "topicsIds")
val TARGET_FRAMEWORK_TERMS = List("targetFWIds", "targetBoardIds", "targetGradeLevelIds", "targetSubjectIds", "targetMediumIds", "targetTopicIds")
@throws[Exception]
abstract override def validate(node: Node, operation: String, setDefaultValue: Boolean)(implicit ec: ExecutionContext, oec: OntologyEngineContext): Future[Node] = {
val fwCategories: List[String] = schemaValidator.getConfig.getStringList("frameworkCategories").asScala.toList
validateAndSetMultiFrameworks(node).map(_ => {
val orgFwTerms: List[String] = schemaValidator.getConfig.getStringList("orgFrameworkTerms").asScala.toList
val targetFwTerms: List[String] = schemaValidator.getConfig.getStringList("targetFrameworkTerms").asScala.toList
validateAndSetMultiFrameworks(node, orgFwTerms, targetFwTerms).map(_ => {
val framework: String = node.getMetadata.getOrDefault("framework", "").asInstanceOf[String]
if (null != fwCategories && fwCategories.nonEmpty && framework.nonEmpty) {
//prepare data for validation
......@@ -59,10 +58,8 @@ trait FrameworkValidator extends IDefinition {
}).flatMap(f => f)
}
private def validateAndSetMultiFrameworks(node: Node)(implicit ec: ExecutionContext, oec: OntologyEngineContext): Future[Map[String, AnyRef]] = {
getValidatedTerms(node, ORGANISATIONAL_FRAMEWORK_TERMS).map(orgTermMap => {
// if (StringUtils.isNotBlank(node.getMetadata.get("organisationFrameworkId").asInstanceOf[String]))
// node.getMetadata.putIfAbsent("framework", node.getMetadata.get("organisationFrameworkId").asInstanceOf[String])
private def validateAndSetMultiFrameworks(node: Node, orgFwTerms: List[String], targetFwTerms: List[String])(implicit ec: ExecutionContext, oec: OntologyEngineContext): Future[Map[String, AnyRef]] = {
getValidatedTerms(node, orgFwTerms).map(orgTermMap => {
val boardIds = getList("boardIds", node)
if (CollectionUtils.isNotEmpty(boardIds))
node.getMetadata.putIfAbsent("board", orgTermMap(boardIds.get(0)))
......@@ -78,7 +75,7 @@ trait FrameworkValidator extends IDefinition {
val topicIds = getList("topicsIds", node)
if (CollectionUtils.isNotEmpty(topicIds))
node.getMetadata.putIfAbsent("topics", topicIds.asScala.map(id => orgTermMap(id)).toList.asJava)
getValidatedTerms(node, TARGET_FRAMEWORK_TERMS)
getValidatedTerms(node, targetFwTerms)
}).flatMap(f => f)
}
......
......@@ -49,6 +49,8 @@
"version": "disable",
"versionCheckMode": "ON",
"frameworkCategories": ["board","medium","subject","gradeLevel","difficultyLevel","topic", "subDomains", "subjectCodes"],
"orgFrameworkTerms": ["boardIds", "gradeLevelIds", "subjectIds", "mediumIds", "topicsIds"],
"targetFrameworkTerms": ["targetFWIds", "targetBoardIds", "targetGradeLevelIds", "targetSubjectIds", "targetMediumIds", "targetTopicIds"],
"edge": {
"properties": {
"license": "License"
......
......@@ -3,6 +3,8 @@
"version": "disable",
"versionCheckMode": "OFF",
"frameworkCategories": [],
"orgFrameworkTerms": [],
"targetFrameworkTerms": [],
"restrictProps": {
"create" : [
"status"
......
......@@ -9,6 +9,8 @@
},
"objectType": "Channel",
"frameworkCategories": [],
"orgFrameworkTerms": [],
"targetFrameworkTerms": [],
"relations": {
"categories": {
"type": "hasSequenceMember",
......
......@@ -43,6 +43,8 @@
},
"version": "enable",
"frameworkCategories": ["board","medium","subject","gradeLevel","difficultyLevel","topic", "subDomains", "subjectCodes"],
"orgFrameworkTerms": ["boardIds", "gradeLevelIds", "subjectIds", "mediumIds", "topicsIds"],
"targetFrameworkTerms": ["targetFWIds", "targetBoardIds", "targetGradeLevelIds", "targetSubjectIds", "targetMediumIds", "targetTopicIds"],
"edge": {
"properties": {
"license": "License"
......
......@@ -73,6 +73,8 @@
"version": "enable",
"versionCheckMode": "ON",
"frameworkCategories": ["board","medium","subject","gradeLevel","difficultyLevel","topic", "subDomains", "subjectCodes"],
"orgFrameworkTerms": ["boardIds", "gradeLevelIds", "subjectIds", "mediumIds", "topicsIds"],
"targetFrameworkTerms": ["targetFWIds", "targetBoardIds", "targetGradeLevelIds", "targetSubjectIds", "targetMediumIds", "targetTopicIds"],
"edge": {
"properties": {
"license": "License"
......
......@@ -10,5 +10,7 @@
"version": "disable",
"versionCheckMode": "OFF",
"frameworkCategories": ["board","medium","subject","gradeLevel","topic"],
"orgFrameworkTerms": ["boardIds", "gradeLevelIds", "subjectIds", "mediumIds", "topicsIds"],
"targetFrameworkTerms": ["targetFWIds", "targetBoardIds", "targetGradeLevelIds", "targetSubjectIds", "targetMediumIds", "targetTopicIds"],
"cacheEnabled": false
}
\ No newline at end of file
......@@ -3,6 +3,8 @@
"version": "disable",
"versionCheckMode": "OFF",
"frameworkCategories": [],
"orgFrameworkTerms": [],
"targetFrameworkTerms": [],
"edge": {
"key": "name"
},
......
......@@ -3,6 +3,8 @@
"version": "disable",
"versionCheckMode": "OFF",
"frameworkCategories": [],
"orgFrameworkTerms": [],
"targetFrameworkTerms": [],
"restrictProps": {
"create" : [
......
......@@ -3,6 +3,8 @@
"version": "disable",
"versionCheckMode": "OFF",
"frameworkCategories": [],
"orgFrameworkTerms": [],
"targetFrameworkTerms": [],
"schema_restrict_api": true,
"external": {
"tableName": "category_definition_data",
......
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