diff --git a/server/db/models/Question.js b/server/db/models/Question.js index 8ed6289..af65876 100644 --- a/server/db/models/Question.js +++ b/server/db/models/Question.js @@ -8,7 +8,7 @@ const Question = mongoose.Schema( createdAt: { type: Date, required: true, default: Date.now }, creator: { type: String, required: true }, downvotes: { type: Number, required: true, default: 0 }, - hasAccepted: { type: Boolean, required: true, default: false }, + hasAcceptedAnswer: { type: Boolean, required: true, default: false }, lastAnswerFetch: { type: Date, default: new Date(0) }, lastCommentFetch: { type: Date, default: new Date(0) }, protect: [String], diff --git a/server/routes/question/EditAnswerAccepted.js b/server/routes/question/EditAnswerAccepted.js index a889772..9b08f2f 100644 --- a/server/routes/question/EditAnswerAccepted.js +++ b/server/routes/question/EditAnswerAccepted.js @@ -1,5 +1,7 @@ const config = require('server/config.json'); const Answer = require('server/db/models/Answer'); +const Question = require('server/db/models/Question'); +const User = require('server/db/models/User'); const { getQuestion, refreshQuestion } = require('server/utils/question'); const createRequest = require('server/utils/api'); @@ -12,10 +14,7 @@ async function EditAnswerAccepted(req, res) { if (!question) return res.status(404).send(config.errorNotFound); // Verify user owns question and question does not already have an accepted answer - if ( - question.creator !== user.username || - question.hasAccepted - ) + if (question.creator !== user.username || question.hasAccepted) return res.status(403).send(config.errorForbidden); // Patch question with BDPA server @@ -30,16 +29,22 @@ async function EditAnswerAccepted(req, res) { } const cachedAnswer = await Answer.findByIdAndDelete(answer_id); - //update hasAcceptedAnswer + + // Update hasAcceptedAnswer await createRequest('patch', `/questions/${question_id}`, { - hasAcceptedAnswer: true + hasAcceptedAnswer: true, }); + await Question.findByIdAndUpdate(question_id, { hasAcceptedAnswer: true }); // Increment points of answer creator await createRequest('patch', `/users/${cachedAnswer.creator}/points`, { operation: 'increment', amount: 15, }); + await User.findByOneAndUpdate( + { username: cachedAnswer.creator }, + { $inc: { points: 15 } } + ); return res.sendStatus(200); }