728x90
반응형

요즘 뜨는 맛집리스트와 내 친구의 맛집리스트 기능구현을 했다.

 

요즘 뜨는 맛집리스트는 쿼리문을 작성하는 것까진 쉬웠으나 원하는 값을 뽑아오는건 힘들었다.

추가적으로 내 친구의 맛집리스트는 어떤식으로 데이터를 가져올지 고민을 했다.

 

우선 user에서 정보를 가져와야 할 것 같았다.

내 userId를 통해 내가 팔로잉하고 있는 유저아이디를 찾았다.

해당 유저아이디를 where에 넣어서 유저게시물 정보를 찾아오는 방식으로 구현했다.

(유저아이디 먼저 찾고, 유저아이디를 토대로 게시물 정보 찾기)

 

const followerId = await this.followRepository.find({
        where: {
          follower: { id: userId },
        },
        select: {
          following: { id: true },
        },
        relations: {
          following: true,
        },
      });

      const followingIds = followerId
        .map((f) => f.following.id)
        .filter((id) => !isNaN(id));

      const myListFollwers = await this.collectionItemRepository.find({
        relations: {
          post: {
            user: true,
            images: true,
          },
          collection: {
            user: true,
          },
        },
        where: {
          collection: {
            type: 'myList',
            deletedAt: null,
            user_id: In(followingIds), //팔로워들의 아이디
          },
        },
        select: {
          post: {
            id: true,
            images: { id: true, file_url: true },
            user: {
              id: true,
              nickname: true,
            },
          },
          collection: {
            id: true,
            name: true,
            user: {
              id: true,
              nickname: true,
            },
          },
        },
      });

 

 

 

728x90
반응형

+ Recent posts