[인스타클론코딩] [Server].25 - seeRoom & Room Fragment refactoring
by 한만섭
seeRoom.js
  import { prisma } from '../../../../generated/prisma-client';
  import { ROOM_FRAGMENT } from '../../../fragments';
  export default {
      Query: {
          seeRoom: async (_, args, { request, isAuthenticated }) => {
              isAuthenticated(request);
              const { id } = args;
              const { user } = request;
              const canSee = await prisma.$exists.room({
                  participants_some: { id: user.id }
              });
              if (canSee) {
                  return prisma.room({ id }).$fragment(ROOM_FRAGMENT);
              } else {
                  throw Error("you can't see this room");
              }
          }
      }
  };
- 
    볼수있는 방인지 판단 방의 참가자 중에 request의 user.id가 존재하는지 확인 prisma.$exists.room({ participants_some: { id: user.id } });
- 
    방의 모든 정보 return ROOM_FRAGMENT에서 모든 방의 정보를 조회할 수 있음. prisma.room({ id }).$fragment(ROOM_FRAGMENT);- 
        fragment.js export const MESSAGE_FRAGMENT = ` id text to { ${USER_FRAGMENT} } from { ${USER_FRAGMENT} } `; export const ROOM_FRAGMENT = ` fragment RoomParts on Room { id participants { ${USER_FRAGMENT} } messages { ${MESSAGE_FRAGMENT} } } `;
 
- 
        
Subscribe via RSS
