mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 15:17:25 +01:00
Merge branch 'release' into develop
This commit is contained in:
@@ -312,7 +312,7 @@ api.leaveChallenge = {
|
||||
if (!challenge.isMember(user)) throw new NotAuthorized(res.t('challengeMemberNotFound'));
|
||||
|
||||
// Unlink challenge's tasks from user's tasks and save the challenge
|
||||
await Promise.all([challenge.unlinkTasks(user, keep), challenge.save()]);
|
||||
await challenge.unlinkTasks(user, keep);
|
||||
|
||||
res.analytics.track('challenge leave', {
|
||||
uuid: user._id,
|
||||
|
||||
@@ -28,7 +28,7 @@ async function buyGemGift (data) {
|
||||
|
||||
const senderMsg = getGiftMessage(data, byUsername, gemAmount, languages[0]);
|
||||
const receiverMsg = getGiftMessage(data, byUsername, gemAmount, languages[1]);
|
||||
data.user.sendMessage(data.gift.member, { receiverMsg, senderMsg });
|
||||
data.user.sendMessage(data.gift.member, { receiverMsg, senderMsg, save: false });
|
||||
|
||||
if (data.gift.member.preferences.emailNotifications.giftedGems !== false) {
|
||||
txnEmail(data.gift.member, 'gifted-gems', [
|
||||
|
||||
@@ -185,7 +185,7 @@ async function createSubscription (data) {
|
||||
senderMsg += ` ${data.gift.message}`;
|
||||
}
|
||||
|
||||
data.user.sendMessage(data.gift.member, { receiverMsg, senderMsg });
|
||||
data.user.sendMessage(data.gift.member, { receiverMsg, senderMsg, save: false });
|
||||
|
||||
if (data.gift.member.preferences.emailNotifications.giftedSubscription !== false) {
|
||||
txnEmail(data.gift.member, 'gifted-subscription', [
|
||||
@@ -208,12 +208,8 @@ async function createSubscription (data) {
|
||||
}
|
||||
}
|
||||
|
||||
if (group) {
|
||||
await group.save();
|
||||
} else {
|
||||
await data.user.save();
|
||||
}
|
||||
|
||||
if (group) await group.save();
|
||||
if (data.user && data.user.isModified()) await data.user.save();
|
||||
if (data.gift) await data.gift.member.save();
|
||||
|
||||
slack.sendSubscriptionNotification({
|
||||
|
||||
@@ -99,6 +99,8 @@ schema.methods.getObjectionsToInteraction = function getObjectionsToInteraction
|
||||
schema.methods.sendMessage = async function sendMessage (userToReceiveMessage, options) {
|
||||
let sender = this;
|
||||
let senderMsg = options.senderMsg || options.receiverMsg;
|
||||
// whether to save users after sending the message, defaults to true
|
||||
let saveUsers = options.save === false ? false : true;
|
||||
|
||||
common.refPush(userToReceiveMessage.inbox.messages, chatDefaults(options.receiverMsg, sender));
|
||||
userToReceiveMessage.inbox.newMessages++;
|
||||
@@ -130,8 +132,9 @@ schema.methods.sendMessage = async function sendMessage (userToReceiveMessage, o
|
||||
common.refPush(sender.inbox.messages, defaults({sent: true}, chatDefaults(senderMsg, userToReceiveMessage)));
|
||||
sender.markModified('inbox.messages');
|
||||
|
||||
let promises = [userToReceiveMessage.save(), sender.save()];
|
||||
await Promise.all(promises);
|
||||
if (saveUsers) {
|
||||
await Promise.all(userToReceiveMessage.save(), sender.save());
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user