• TOC

코드

import { prisma } from '../../../../generated/prisma-client';

export default {
    Query: {
        seeFullPost: async (_, args, { request, isAuthenticated }) => {
            isAuthenticated(request);
            const { id } = args;
            //post , comments , likeCount
            const post = await prisma.post({ id });
            const comments = await prisma.post({ id }).comments();
            const likeCount = await prisma
                .likesConnection({ where: { post: { id } } })
                .aggregate()
                .count();
            return {
                post,
                comments,
                likeCount
            };
        }
    }
};

댓글 주인 알아내기

지금까지 한것은 게시물에 있는 Comment, like model들의 정보를 얻기 위한 것 이었습니다. 이제는 게시물의 댓글의 유저정보를 알아내려고 합니다. 이 것은 comment를 얻어오는 곳에서 $fragment를 사용해야합니다.

export const COMMENT_FRAGMENT = `
  fragment CommentParts on Comment  {
      id
      text
      user {
          username
        }
    }
`;
import { prisma } from '../../../../generated/prisma-client';
import { COMMENT_FRAGMENT } from '../../../fragments';

export default {
    Query: {
        seeFullPost: async (_, args, { request, isAuthenticated }) => {
            isAuthenticated(request);
            const { id } = args;
            //post , comments , likeCount
            const post = await prisma.post({ id });
            const comments = await prisma
                .post({ id })
                .comments()
                .$fragment(COMMENT_FRAGMENT);
            const likeCount = await prisma
                .likesConnection({ where: { post: { id } } })
                .aggregate()
                .count();
            return {
                post,
                comments,
                likeCount
            };
        }
    }
};