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 bb7622e91b341c6feb902eb2f9740db4fb344220..c96e00f5e815a8deb5f3f74cf350beb49caee877 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 755ebfb56e28f0c6ef0e2c7b799a7216683cc021..7a53b456e794bbad452c3edba87eb635ad626c9e 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