Skip to content

Commit c5cd021

Browse files
check if challenge exists before trying to delete
1 parent e9b50a7 commit c5cd021

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/services/ChallengeService.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2282,6 +2282,9 @@ function sanitizeData(data, challenge) {
22822282
*/
22832283
async function deleteChallenge(currentUser, challengeId) {
22842284
const challenge = await challengeDomain.lookup(getLookupCriteria("id", challengeId));
2285+
if (!challenge) {
2286+
throw new errors.NotFoundError(`Challenge with id: ${challengeId} doesn't exist`);
2287+
}
22852288
if (challenge.status !== constants.challengeStatuses.New) {
22862289
throw new errors.BadRequestError(
22872290
`Challenge with status other than "${constants.challengeStatuses.New}" cannot be removed`
@@ -2292,7 +2295,10 @@ async function deleteChallenge(currentUser, challengeId) {
22922295
// check if user are allowed to delete the challenge
22932296
await ensureAccessibleForChallenge(currentUser, challenge);
22942297
// delete DB record
2295-
await challengeDomain.delete(getLookupCriteria("id", challengeId));
2298+
const { items } = await challengeDomain.delete(getLookupCriteria("id", challengeId));
2299+
if (!_.find(items, { id: challengeId })) {
2300+
throw new errors.Internal(`There was an error deleting the challenge with id: ${challengeId} from dynamo`);
2301+
}
22962302
// delete ES document
22972303
await esClient.delete({
22982304
index: config.get("ES.ES_INDEX"),

0 commit comments

Comments
 (0)