Удалить сообщение, если внутри нет комментариев

#javascript #reactjs #mongodb #graphql #apollo

#javascript #reactjs #mongodb #graphql #apollo

Вопрос:

Я пытаюсь удалить сообщение, если внутри нет комментариев. Это действительно работает, но я не получаю ответное сообщение, если сообщение удаляется. Ответ сервера: «ошибки»: [{ «сообщение»: «Невозможно вернуть значение null для ненулевого поля Post.id .»,..

Как я могу сделать это без сообщения об ошибке или даже какой лучший способ удалить сообщение, в котором нет комментариев?

 async deleteComment(_, { postId, commentId }, context) {
        const { username } = checkAuth(context);

        const post = await Post.findById(postId);
        if (post) {
            const commentIndex = post.comments.findIndex(
                (c) => c.id === commentId
            );

            if (post.comments[commentIndex].username === username) {
                post.comments.splice(commentIndex, 1); 
                await post.save();
                if (post.comments.length < 1) {
                    console.log("No comments available";
                    await post.delete();
                    return "Successfully deleted post"; // I want to get the message
                }
                return post;
            } else {
                throw new AuthenticationError("Action not allowed");
            }
        } else {
            throw new UserInputError("Post not found");
        }
    },
 

Комментарии:

1. ` вернуть «Успешно удаленное сообщение»; // Я хочу получить сообщение ` vs return post; … 1-й не возвращает сообщение (возможно, тип результата мутации)… просто return post (без ошибки = успех) или расширить возвращаемый тип (с некоторым сообщением)