Upgrade to mongoose 7 (#14971)

* remove some unused dependencies

* update mongoose version

* make common tests pass

* Make unit tests pass

* make api v3 integration tests pass

* fix lint issues

* fix issue with package-lock

* fix(lint): we don't need no .js

* fix(lint): update to latest config-habitrpg

* chore(npm): update package locks

* fix(test): replace deprecated fn

* chore(package): update eslint-habitrpg again

* fix(lint): server linting

* fix(lint): client linting

* fix(client): correct mangled common imports

* chore(npm): update package-locks

* fix(lint): punctuation, module

---------

Co-authored-by: SabreCat <sabrecat@gmail.com>
Co-authored-by: SabreCat <sabe@habitica.com>
This commit is contained in:
Phillip Thelen
2024-01-16 22:18:47 +01:00
committed by GitHub
parent d0e4b533e3
commit f8d315ff6e
189 changed files with 2645 additions and 1423 deletions

View File

@@ -119,7 +119,7 @@ schema.methods.addToUser = async function addChallengeToUser (user) {
{ $push: { challenges: this._id } },
).exec();
return !!result.nModified;
return !!result.modifiedCount;
};
// Returns true if user can view the challenge
@@ -339,7 +339,7 @@ schema.methods.unlinkTasks = async function challengeUnlinkTasks (user, keep, sa
removeFromArray(user.tasksOrder[`${task.type}s`], task._id);
}
return task.remove();
return task.deleteOne();
});
user.markModified('tasksOrder');
taskPromises.push(this.save());
@@ -361,7 +361,7 @@ schema.methods.closeChal = async function closeChal (broken = {}) {
const brokenReason = broken.broken;
// Delete the challenge
await this.model('Challenge').remove({ _id: challenge._id }).exec();
await this.model('Challenge').deleteOne({ _id: challenge._id }).exec();
// Refund the leader if the challenge is deleted (no winner chosen)
if (brokenReason === 'CHALLENGE_DELETED') {
@@ -403,19 +403,21 @@ schema.methods.closeChal = async function closeChal (broken = {}) {
]);
}
if (savedWinner.preferences.pushNotifications.wonChallenge !== false) {
sendPushNotification(savedWinner,
sendPushNotification(
savedWinner,
{
title: challenge.name,
message: shared.i18n.t('wonChallenge', savedWinner.preferences.language),
identifier: 'wonChallenge',
});
},
);
}
}
// Run some operations in the background without blocking the thread
const backgroundTasks = [
// And it's tasks
Tasks.Task.remove({ 'challenge.id': challenge._id, userId: { $exists: false } }).exec(),
Tasks.Task.deleteMany({ 'challenge.id': challenge._id, userId: { $exists: false } }).exec(),
// Set the challenge tag to non-challenge status
// and remove the challenge from the user's challenges
User.updateMany({