일기/TIL
TIL: Today I Learned 92일차 [ 최종프로젝트 22일차 ]
표자
2023. 3. 29. 18:23
728x90
반응형
1. 문제
북마크에서 기본으로 제공하는 기본 북마크에 포스트를 저장하는 기능
2. 시도해본 것들
우선 기본 북마크는 어떻게 찾을 것인가?
회원가입하자마자 모두에게 주어지는 기본 북마크이므로
제일 먼저 생성된 북마크이다.
3. 해결과정
findOne 메서드로 찾으면 가장 먼저 나오는 것이 기본 북마크였다.
/*
### 23.03.28
### 표정훈
### 기본 북마크에 포스팅 더하기
*/
async basicCollectionPlusPosting(postId: number, userId: number) {
try {
//본인의 첫번째 북마크(모든 게시물)의 id를 찾는다.
const basicBookmark = await this.collectionRepository.findOne({
where: {
user_id: userId,
},
select: {
id: true,
},
});
const existingItem = await this.collectionItemRepository.findOne({
where: {
post: { id: postId },
collection: { id: basicBookmark.id }, // 기본 북마크의 ID를 사용하여 조건문을 지정
},
});
if (existingItem) {
return; // 이미 있다면 종료
}
const collectionItem = this.collectionItemRepository.create({
post: { id: postId },
collection: { id: basicBookmark.id }, // 기본 북마크의 ID를 사용하여 컬렉션 아이템을 생성
});
await this.collectionItemRepository.save(collectionItem);
return collectionItem;
}
4. 알게 된 점
막연하게 기본 북마크는 어떤 방법으로 찾을 수 있을까 생각했는데
알고리즘 문제처럼 어떠한 방식으로 접근할 수 있을까 생각하다보면 쉽게 접근 할 수 있는 문제였다.
728x90
반응형