TIL 68일차 - 마이페이지 API 구현 완료

박찬웅·2023년 4월 17일
0

항해99

목록 보기
73/105

23년 4월 14일

  • 금,토에 시간 부족으로 그나마 상대적으로 여유로웠던 4월 17일에 작성했습니다.

시도 한 것, 알게 된 점

이 날부터는 어제 DB를 새로 만들었고 어젯 밤부터 마이페이지 API를 구현하기 시작하였다.
내가 구현하려고 한 것은 총 3가지로 내가 지금까지 작성한 피드들을 모두 볼 수 있는 마이페이지의 피드 전체 조회, 해당 피드 하나를 상세히 볼 수 있는 마이페이지의 피드 상세 조회, 그리고 해당 피드를 삭제 가능한 마이페이지의 피드 삭제 이렇게 구현을 하였다.
전반적으로 내가 이날 가장 어려웠던 것은 DB 가져오는 것은 문제가 없는데 그 가져온 데이터를 다시 재 가공하는 것이 많이 어려웠었다. 이 부분을 팀원의 도움으로 겨우 구현하는데는 성공을 하였다.

아래는 피드 전체 조회, 피드 상세 조회 API를 result로 재가공한 모습이다.

// 피드 전체 조회
 const result = mypages.map((mypage) => {
                const { Feeds } = mypage;
                return {
                    nickname: mypage.nickname,
                    profilePic: mypage.profilePic,
                    feeds : Feeds.map((feed) => ({
                        feadId: feed.feedId,
                        feedPic: feed.feedPic,
                    })),
                    feedCount : Feeds.length
                };
            });
            res.status(200).json({ mypages: result  })
// 피드 상세 조회
const result = {
                nickname: mypage.User.nickname,
                profilePic: mypage.User.profilePic, 
                createdAt: mypage.createdAt,
                feedPic: mypage.feedPic,
                comment: mypage.comment,
                Tags: mypage.Tags.map(tag => tag.tag),
                shopName: mypage.Shop.shopName,
                shopAddress: mypage.Shop.address,
                shopThumbnail: mypage.Shop.thumbnail,
                isScrap: isExistScrap ? true : false 
            };

특히나 가장 어려웠던 부분은 map 함수 이용하는 것인데 이 부분이 많이 햇갈렸고, 또한 내가 작성한 전체 피드 개수를 구하는 feedCount와 내 아이디로 맛집을 스크랩을 했는지 안했는지 유무를 따지는 isScrap 기능도 많은 고민을 하면서 겨우 구현을 하게 되었다.

앞으로 할 일

내일은 개인적인 일도 있어서 아마 많은 것을 구현하지는 못할 것 같은데, 예전에 작성했던 메인페이지와 상세페이지에서도 feedCount와 isScrap을 나타나게 하는 로직을 짤 것이고, 또한 두번째 멘토링 시간이라 피드백을 가지는 시간을 가질것 같다.

profile
향해 13기 node.js 백앤드

0개의 댓글