mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 15:17:25 +01:00
fix several busg with tasks and challenges
This commit is contained in:
@@ -77,9 +77,15 @@ api.createChallenge = {
|
|||||||
req.body.official = user.contributor.admin && req.body.official;
|
req.body.official = user.contributor.admin && req.body.official;
|
||||||
let challenge = new Challenge(Challenge.sanitize(req.body));
|
let challenge = new Challenge(Challenge.sanitize(req.body));
|
||||||
|
|
||||||
let results = await Q.all(challenge.save(), group.save());
|
// First validate challenge so we don't save group if it's invalid (only runs sync validators)
|
||||||
let savedChal = results[0];
|
let challengeValidationErrors = challenge.validateSync();
|
||||||
|
if (challengeValidationErrors) throw challengeValidationErrors;
|
||||||
|
|
||||||
|
let results = await Q.all([challenge.save({
|
||||||
|
validateBeforeSave: false, // already validate
|
||||||
|
}), group.save()]);
|
||||||
|
|
||||||
|
let savedChal = results[0];
|
||||||
await savedChal.syncToUser(user); // (it also saves the user)
|
await savedChal.syncToUser(user); // (it also saves the user)
|
||||||
res.respond(201, savedChal);
|
res.respond(201, savedChal);
|
||||||
},
|
},
|
||||||
@@ -140,7 +146,7 @@ api.getChallenge = {
|
|||||||
let validationErrors = req.validationErrors();
|
let validationErrors = req.validationErrors();
|
||||||
if (validationErrors) throw validationErrors;
|
if (validationErrors) throw validationErrors;
|
||||||
|
|
||||||
let user = res.local.user;
|
let user = res.locals.user;
|
||||||
let challengeId = req.params.challengeId;
|
let challengeId = req.params.challengeId;
|
||||||
|
|
||||||
let challenge = await Challenge.findById(challengeId).exec();
|
let challenge = await Challenge.findById(challengeId).exec();
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ api.createChallengeTasks = {
|
|||||||
let reqValidationErrors = req.validationErrors();
|
let reqValidationErrors = req.validationErrors();
|
||||||
if (reqValidationErrors) throw reqValidationErrors;
|
if (reqValidationErrors) throw reqValidationErrors;
|
||||||
|
|
||||||
let user = res.local.user;
|
let user = res.locals.user;
|
||||||
let challengeId = req.params.challengeId;
|
let challengeId = req.params.challengeId;
|
||||||
|
|
||||||
let challenge = await Challenge.findOne({_id: challengeId}).exec();
|
let challenge = await Challenge.findOne({_id: challengeId}).exec();
|
||||||
@@ -194,7 +194,7 @@ api.getChallengeTasks = {
|
|||||||
let validationErrors = req.validationErrors();
|
let validationErrors = req.validationErrors();
|
||||||
if (validationErrors) throw validationErrors;
|
if (validationErrors) throw validationErrors;
|
||||||
|
|
||||||
let user = res.local.user;
|
let user = res.locals.user;
|
||||||
let challengeId = req.params.challengeId;
|
let challengeId = req.params.challengeId;
|
||||||
|
|
||||||
let challenge = await Challenge.findOne({_id: challengeId}).select('leader').exec();
|
let challenge = await Challenge.findOne({_id: challengeId}).select('leader').exec();
|
||||||
|
|||||||
Reference in New Issue
Block a user