From b7d1722a3e5428996de8ddd4ff93cfeac5d8672b Mon Sep 17 00:00:00 2001
From: Jayaprakash8887 <Jayaprakash.narayanaswamy@tarento.com>
Date: Wed, 7 Sep 2022 17:09:58 +0530
Subject: [PATCH] Issue #KN-257 feat: Content Release DIAL codes API refactor.

---
 .../src/main/scala/org/sunbird/content/dial/DIALErrors.scala  | 2 ++
 .../src/main/scala/org/sunbird/content/dial/DIALManager.scala | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/content-api/content-actors/src/main/scala/org/sunbird/content/dial/DIALErrors.scala b/content-api/content-actors/src/main/scala/org/sunbird/content/dial/DIALErrors.scala
index bb7622e91..c96e00f5e 100644
--- a/content-api/content-actors/src/main/scala/org/sunbird/content/dial/DIALErrors.scala
+++ b/content-api/content-actors/src/main/scala/org/sunbird/content/dial/DIALErrors.scala
@@ -17,6 +17,7 @@ object DIALErrors {
 	val ERR_CONTENT_MISSING_RESERVED_DIAL_CODES: String = "ERR_CONTENT_MISSING_RESERVED_DIAL_CODES"
 	val ERR_ALL_DIALCODES_UTILIZED: String = "ERR_ALL_DIALCODES_UTILIZED"
 	val ERR_INVALID_OPERATION: String = "ERR_INVALID_OPERATION"
+	val ERR_COUNT_GREATER_THAN_RESERVED_DIAL_CODES: String = "ERR_COUNT_GREATER_THAN_RESERVED_DIAL_CODES"
 
 	//Error Messages
 	val ERR_INVALID_REQ_MSG: String = "Invalid Request! Please Provide Valid Request."
@@ -40,4 +41,5 @@ object DIALErrors {
 	val ERR_CONTENT_MISSING_RESERVED_DIAL_CODES_MSG: String = "Invalid Request. Content does not have reserved DIAL codes."
 	val ERR_ALL_DIALCODES_UTILIZED_MSG: String = "Error! All Reserved DIAL Codes are Utilized."
 	val ERR_INVALID_OPERATION_MSG: String = "Invalid operation request!"
+	val ERR_COUNT_GREATER_THAN_RESERVED_DIAL_CODES_MSG: String = "Invalid Request. Count greater than reserved DIAL codes."
 }
diff --git a/content-api/content-actors/src/main/scala/org/sunbird/content/dial/DIALManager.scala b/content-api/content-actors/src/main/scala/org/sunbird/content/dial/DIALManager.scala
index 755ebfb56..7a53b456e 100644
--- a/content-api/content-actors/src/main/scala/org/sunbird/content/dial/DIALManager.scala
+++ b/content-api/content-actors/src/main/scala/org/sunbird/content/dial/DIALManager.scala
@@ -313,6 +313,10 @@ object DIALManager {
 		val reservedDialCodes = if(contentMetadata.containsKey(DIALConstants.RESERVED_DIALCODES)) ScalaJsonUtils.deserialize[Map[String, Integer]](contentMetadata.get(DIALConstants.RESERVED_DIALCODES).asInstanceOf[String])
 		else throw new ClientException(DIALErrors.ERR_CONTENT_MISSING_RESERVED_DIAL_CODES, DIALErrors.ERR_CONTENT_MISSING_RESERVED_DIAL_CODES_MSG)
 
+		val countInRequest = request.get(DIALConstants.COUNT).asInstanceOf[Integer]
+		if(reservedDialCodes.keySet.size < countInRequest)
+			throw new ClientException(DIALErrors.ERR_COUNT_GREATER_THAN_RESERVED_DIAL_CODES, DIALErrors.ERR_COUNT_GREATER_THAN_RESERVED_DIAL_CODES_MSG)
+
 		populateAssignedDialCodes(contentId, contentMetadata, request).map(assignedDialCodes => {
 			val toReleaseDIALCodes = reservedDialCodes.keySet -- assignedDialCodes.toSet
 
-- 
GitLab