diff --git a/src/service/contentService.js b/src/service/contentService.js index 9dd0170..5cbd613 100644 --- a/src/service/contentService.js +++ b/src/service/contentService.js @@ -29,6 +29,7 @@ var contentMessage = messageUtils.CONTENT var compositeMessage = messageUtils.COMPOSITE var responseCode = messageUtils.RESPONSE_CODE var reqMsg = messageUtils.REQUEST +var reqMsgRetire = messageUtils.DOMAIN /** * This function helps to generate code for create course @@ -993,7 +994,7 @@ function retireContentAPI (req, response) { function (res, CBW) { var createdByOfContents = _.uniq(_.pluck(res.result.content, 'createdBy')) if (createdByOfContents.length === 1 && createdByOfContents[0] === userId) { - CBW() + CBW(null, res) } else { rspObj.errCode = reqMsg.TOKEN.INVALID_CODE rspObj.errMsg = reqMsg.TOKEN.INVALID_MESSAGE @@ -1002,6 +1003,18 @@ function retireContentAPI (req, response) { } }, + function (res, CBW) { + var status = _.uniq(_.pluck(res.result.content, 'status')) + if (status.length === 1 && status[0] === 'Draft') { + CBW() + } else { + rspObj.errCode = reqMsgRetire.RETIRE_OBJECT_TYPE.RETIRE_ONLY_DRAFT_CODE + rspObj.errMsg = reqMsgRetire.RETIRE_OBJECT_TYPE.RETIRE_ONLY_DRAFT_MESSAGE + rspObj.responseCode = responseCode.CLIENT_ERROR + return response.status(400).send(respUtil.errorResponse(rspObj)) + } + }, + function (CBW) { async.each(data.request.contentIds, function (contentId, CBE) { logger.debug({ diff --git a/src/service/messageUtil.js b/src/service/messageUtil.js index 75adefc..1f8c7a0 100644 --- a/src/service/messageUtil.js +++ b/src/service/messageUtil.js @@ -406,7 +406,9 @@ exports.DOMAIN = { MISSING_CODE: 'ERR_RETIRE_OBJECT_TYPE_FIELDS_MISSING', MISSING_MESSAGE: 'Required fields for retire object type are missing', FAILED_CODE: 'ERR_RETIRE_OBJECT_TYPE_FAILED', - FAILED_MESSAGE: 'Retire object type failed' + FAILED_MESSAGE: 'Retire object type failed', + RETIRE_ONLY_DRAFT_CODE: 'ERR_RETIRE_OBJECT_FAILED_DRAFT', + RETIRE_ONLY_DRAFT_MESSAGE: 'Status should be draft to retire' } }