У меня есть статический метод в одной из моих моделей мангустов, который вызывает статический метод другой модели. Я пытаюсь вернуть правильные данные, чтобы запрос GraphQL возвращал данные. В настоящее время возвращается ноль. Может быть, я смотрю на это слишком долго, но я пытаюсь добавлять доход везде, и я просто не получаю его.
Моя мутация GraphQL:
toggleDestinationLike: {
type: DestinationType,
args: {
id: { type: new GraphQLNonNull(GraphQLID) },
userId: { type: new GraphQLNonNull(GraphQLID) },
},
resolve(parentValue, { id, userId }) {
return Destination.toggleLike(id, userId);
},
},
Мой 1-й статический метод:
DestinationSchema.statics.toggleLike = function(destinationId, userId) {
return this.findById(destinationId).then(destination => {
const array = destination.likedBy;
if (array.indexOf(userId) > -1) {
const index = array.indexOf(userId);
array.splice(index, 1);
return destination.save().then(() => {
User.toggleLikedDestination(userId, destinationId)
})
}
// Add destination id to users likes destinations
array.push(userId);
return destination.save().then(() => {
User.toggleLikedDestination(userId, destinationId)
})
});
};
Мой второй статический метод:
UserSchema.statics.toggleLikedDestination = function(userId, destinationId) {
this.findById(userId).then(user => {
if (user.likedDestinations.indexOf(destinationId) === -1) {
user.likedDestinations.push(destinationId)
user.save();
} else {
const likedDestinationIndex = user.likedDestinations.indexOf(destinationId)
user.likedDestinations.splice(likedDestinationIndex, 1);
user.save();
}
})
}