From 0634fe389535d21625e72068c54ca5e8fbcf96ba Mon Sep 17 00:00:00 2001
From: Shishir Suman <shishir.suman@tarento.com>
Date: Mon, 20 Feb 2023 23:48:09 +0530
Subject: [PATCH] test code committed for mapping data

---
 .../scala/org/sunbird/actors/QuestionActor.scala     |  5 +++++
 .../org/sunbird/managers/AssessmentManager.scala     |  5 +++++
 .../app/controllers/v4/QuestionController.scala      | 12 ++++++++++++
 .../assessment-service/app/utils/ApiId.scala         |  1 +
 .../app/utils/QuestionOperations.scala               |  2 +-
 assessment-api/assessment-service/conf/routes        |  1 +
 6 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/assessment-api/assessment-actors/src/main/scala/org/sunbird/actors/QuestionActor.scala b/assessment-api/assessment-actors/src/main/scala/org/sunbird/actors/QuestionActor.scala
index 2dd9080f7..87134b065 100644
--- a/assessment-api/assessment-actors/src/main/scala/org/sunbird/actors/QuestionActor.scala
+++ b/assessment-api/assessment-actors/src/main/scala/org/sunbird/actors/QuestionActor.scala
@@ -38,6 +38,7 @@ class QuestionActor @Inject()(implicit oec: OntologyEngineContext) extends BaseA
 		case "rejectQuestion" => reject(request)
 		case "copyQuestion" => copy(request)
 		case "bulkUploadQuestion" => bulkUpload(request)
+		case "bulkUploadFrameworkMapping" => bulkUploadFrameworkMapping(request)
 		case _ => ERROR(request.getOperation)
 	}
 
@@ -142,4 +143,8 @@ class QuestionActor @Inject()(implicit oec: OntologyEngineContext) extends BaseA
 	def bulkUpload(request: Request): Future[Response] = {
 		AssessmentManager.create(request, "ERR_QUESTION_CREATE")
 	}
+
+	def bulkUploadFrameworkMapping(request: Request): Future[Response] = {
+		AssessmentManager.createMapping(request, "ERR_QUESTION_CREATE")
+	}
 }
diff --git a/assessment-api/assessment-actors/src/main/scala/org/sunbird/managers/AssessmentManager.scala b/assessment-api/assessment-actors/src/main/scala/org/sunbird/managers/AssessmentManager.scala
index d5a9e0204..12e4b9ae0 100644
--- a/assessment-api/assessment-actors/src/main/scala/org/sunbird/managers/AssessmentManager.scala
+++ b/assessment-api/assessment-actors/src/main/scala/org/sunbird/managers/AssessmentManager.scala
@@ -221,4 +221,9 @@ object AssessmentManager {
 			}}
 		(actor, context, objData, eData)
 	}
+
+	def createMapping(request: Request, str: String)(implicit oec: OntologyEngineContext, ec: ExecutionContext): Future[Response] = {
+
+		oec.graphService.saveExternalProps(request)
+	}
 }
diff --git a/assessment-api/assessment-service/app/controllers/v4/QuestionController.scala b/assessment-api/assessment-service/app/controllers/v4/QuestionController.scala
index 5fd17d92a..c27f41b06 100644
--- a/assessment-api/assessment-service/app/controllers/v4/QuestionController.scala
+++ b/assessment-api/assessment-service/app/controllers/v4/QuestionController.scala
@@ -180,4 +180,16 @@ class QuestionController @Inject()(@Named(ActorNames.QUESTION_ACTOR) questionAct
 		logger.info("in Future sequence")
 		Await.result(f, Duration.apply("30s"))
 	}
+
+	def createFrameworkMappingData() = Action.async { implicit request =>
+		val headers = commonHeaders()
+		val body = requestBody()
+		val question = body.getOrDefault("question", new java.util.HashMap()).asInstanceOf[java.util.Map[String, AnyRef]]
+		question.putAll(headers)
+		val questionRequest = getRequest(question, headers, QuestionOperations.createFrameworkMapping.toString)
+		setRequestContext(questionRequest, version, "competency", "competency")
+		getResult(ApiId.FRAMEWORK_COMPETENCY_QUESTION, questionActor, questionRequest)
+	}
+
+
 }
diff --git a/assessment-api/assessment-service/app/utils/ApiId.scala b/assessment-api/assessment-service/app/utils/ApiId.scala
index daf20fc48..732320437 100644
--- a/assessment-api/assessment-service/app/utils/ApiId.scala
+++ b/assessment-api/assessment-service/app/utils/ApiId.scala
@@ -26,6 +26,7 @@ object ApiId {
 	val REJECT_QUESTION = "api.question.reject"
 	val COPY_QUESTION = "api.question.copy"
 	val BULK_UPLOAD_QUESTION = "api.question.bulk.upload"
+	val FRAMEWORK_COMPETENCY_QUESTION = "api.question.mapping"
 	//QuestionSet APIs
 	val CREATE_QUESTION_SET = "api.questionset.create"
 	val READ_QUESTION_SET = "api.questionset.read"
diff --git a/assessment-api/assessment-service/app/utils/QuestionOperations.scala b/assessment-api/assessment-service/app/utils/QuestionOperations.scala
index 8d71d88e1..71327f493 100644
--- a/assessment-api/assessment-service/app/utils/QuestionOperations.scala
+++ b/assessment-api/assessment-service/app/utils/QuestionOperations.scala
@@ -1,5 +1,5 @@
 package utils
 
 object QuestionOperations extends Enumeration {
-  val createQuestion, readQuestion, readPrivateQuestion, updateQuestion, reviewQuestion, publishQuestion, retireQuestion, importQuestion, systemUpdateQuestion, listQuestions, rejectQuestion, copyQuestion = Value
+  val createQuestion, readQuestion, readPrivateQuestion, updateQuestion, reviewQuestion, publishQuestion, retireQuestion, importQuestion, systemUpdateQuestion, listQuestions, rejectQuestion, copyQuestion, createFrameworkMapping = Value
 }
diff --git a/assessment-api/assessment-service/conf/routes b/assessment-api/assessment-service/conf/routes
index 3202b944d..f9c36b069 100644
--- a/assessment-api/assessment-service/conf/routes
+++ b/assessment-api/assessment-service/conf/routes
@@ -25,6 +25,7 @@ POST      /question/v4/list                       controllers.v4.QuestionControl
 POST      /question/v4/reject/:identifier         controllers.v4.QuestionController.reject(identifier:String)
 POST      /question/v4/copy/:identifier           controllers.v4.QuestionController.copy(identifier:String, mode:Option[String])
 POST      /question/v4/bulk/upload                controllers.v4.QuestionController.uploadExcel
+POST      /question/v4/bulk/upload/mapping        controllers.v4.QuestionController.createFrameworkMappingData
 
 # QuestionSet API's
 POST      /questionset/v4/create                     controllers.v4.QuestionSetController.create
-- 
GitLab