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 61bfee6b27477723b3ccdd463454db78716a7b6f..b5d3eada454241d42bfb2e9e4e230ecc0832c55b 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 @@ -279,12 +279,11 @@ object DIALManager { validateContentForReserveAndReleaseDialcodes(contentMetadata) validateCountForReservingAndReleasingDialCode(request.getRequest.get(DIALConstants.DIALCODES).asInstanceOf[util.Map[String, AnyRef]]) - if(operation.nonEmpty && operation.equalsIgnoreCase(ContentConstants.RESERVE)) { - reserve(request, channelId, contentId, rootNode, contentMetadata) - } else if(operation.nonEmpty && operation.equalsIgnoreCase(ContentConstants.RELEASE)) { - release(request, contentId, rootNode, contentMetadata) - } else throw new ClientException(DIALErrors.ERR_INVALID_OPERATION, DIALErrors.ERR_INVALID_OPERATION_MSG) - + operation match { + case ContentConstants.RESERVE => reserve(request, channelId, contentId, rootNode, contentMetadata) + case ContentConstants.RELEASE => release(request, contentId, rootNode, contentMetadata) + case _ => throw new ClientException(DIALErrors.ERR_INVALID_OPERATION, DIALErrors.ERR_INVALID_OPERATION_MSG) + } }) } @@ -403,8 +402,8 @@ object DIALManager { val validMimeType = if (Platform.config.hasPath("reserve_dialcode.mimeType")) Platform.config.getStringList("reserve_dialcode.mimeType") else util.Arrays.asList(ContentConstants.COLLECTION_MIME_TYPE) if (!validMimeType.contains(metaData.get(ContentConstants.MIME_TYPE))) throw new ClientException(DIALErrors.ERR_CONTENT_MIMETYPE, DIALErrors.ERR_CONTENT_MIMETYPE_MSG) - if(metaData.get(ContentConstants.STATUS).asInstanceOf[String].equalsIgnoreCase("Retired")) - throw new ClientException(DIALErrors.ERR_CONTENT_RETIRED_OBJECT_ID, DIALErrors.ERR_CONTENT_RETIRED_OBJECT_ID_MSG) + val validContentStatus = if (Platform.config.hasPath("reserve_dialcode.valid_content_status")) Platform.config.getStringList("reserve_dialcode.valid_content_status") else util.Arrays.asList(ContentConstants.DRAFT) + if(!validContentStatus.contains(metaData.get(ContentConstants.STATUS).asInstanceOf[String])) throw new ClientException(DIALErrors.ERR_CONTENT_RETIRED_OBJECT_ID, DIALErrors.ERR_CONTENT_RETIRED_OBJECT_ID_MSG) } def validateCountForReservingAndReleasingDialCode(requestDIALCodesMap: util.Map[String, AnyRef]): Unit = { diff --git a/content-api/content-actors/src/main/scala/org/sunbird/content/util/ContentConstants.scala b/content-api/content-actors/src/main/scala/org/sunbird/content/util/ContentConstants.scala index aa199a48195983c7633a58d626cdcd21a03c4408..8ae26a27a4498e776f3e898b4106aa6b4f97eb2d 100644 --- a/content-api/content-actors/src/main/scala/org/sunbird/content/util/ContentConstants.scala +++ b/content-api/content-actors/src/main/scala/org/sunbird/content/util/ContentConstants.scala @@ -77,4 +77,5 @@ object ContentConstants { val PROCESSING: String = "Processing" val RESERVE: String = "reserve" val RELEASE: String = "release" + val DRAFT: String = "Draft" } diff --git a/content-api/content-service/conf/application.conf b/content-api/content-service/conf/application.conf index 910dd940662dc220ae3346e7d71ca69436faa62e..5a77be1c5df483e209fa511755fff0262200a9b3 100644 --- a/content-api/content-service/conf/application.conf +++ b/content-api/content-service/conf/application.conf @@ -612,6 +612,7 @@ dial_service { reserve_dialcode { mimeType = ["application/vnd.ekstep.content-collection"] max_count = 250 + valid_content_status = ["Draft","Live"] } content.link_dialcode.validation=true