Как вернуть правильные данные, когда статический метод в одной из моих моделей вызывает статический метод другой? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть статический метод в одной из моих моделей мангустов, который вызывает статический метод другой модели. Я пытаюсь вернуть правильные данные, чтобы запрос 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();
        }
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...