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
반응형
'일기 > TIL' 카테고리의 다른 글
TIL: Today I Learned 89일차 [ 최종프로젝트 19일차 ] (0) | 2023.03.23 |
---|---|
TIL: Today I Learned 88일차 [ 최종프로젝트 18일차 ] (0) | 2023.03.23 |
TIL: Today I Learned 86일차 [ 최종프로젝트 16일차 ] (1) | 2023.03.20 |
TIL: Today I Learned 85일차 [ 최종프로젝트 15일차 ] (0) | 2023.03.20 |
TIL: Today I Learned 84일차 [ 최종프로젝트 14일차 ] (0) | 2023.03.20 |