Skip to content

Commit 39428ec

Browse files
refactor delete
1 parent c5cd021 commit 39428ec

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

src/services/ChallengeService.js

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2281,22 +2281,20 @@ function sanitizeData(data, challenge) {
22812281
* @returns {Object} the deleted challenge
22822282
*/
22832283
async function deleteChallenge(currentUser, challengeId) {
2284-
const challenge = await challengeDomain.lookup(getLookupCriteria("id", challengeId));
2284+
const { items } = await challengeDomain.scan({
2285+
criteria: getScanCriteria({ id: challengeId, status: constants.challengeStatuses.New }),
2286+
});
2287+
const challenge = _.first(items);
22852288
if (!challenge) {
2286-
throw new errors.NotFoundError(`Challenge with id: ${challengeId} doesn't exist`);
2287-
}
2288-
if (challenge.status !== constants.challengeStatuses.New) {
2289-
throw new errors.BadRequestError(
2290-
`Challenge with status other than "${constants.challengeStatuses.New}" cannot be removed`
2291-
);
2289+
throw new errors.NotFoundError(`Challenge with id: ${challengeId} doesn't exist or is not in New status`);
22922290
}
22932291
// check groups authorization
22942292
await ensureAccessibleByGroupsAccess(currentUser, challenge);
22952293
// check if user are allowed to delete the challenge
22962294
await ensureAccessibleForChallenge(currentUser, challenge);
22972295
// delete DB record
2298-
const { items } = await challengeDomain.delete(getLookupCriteria("id", challengeId));
2299-
if (!_.find(items, { id: challengeId })) {
2296+
const { items: deletedItems } = await challengeDomain.delete(getLookupCriteria("id", challengeId));
2297+
if (!_.find(deletedItems, { id: challengeId })) {
23002298
throw new errors.Internal(`There was an error deleting the challenge with id: ${challengeId} from dynamo`);
23012299
}
23022300
// delete ES document

0 commit comments

Comments
 (0)