Repository navigation
feat: 메뉴 찜 및 찜한 메뉴 개인화 푸시 알림 - #488
Merged
Merged
Conversation
📊 테스트 커버리지 리포트
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#️⃣ Issue Number
📝 요약(Summary)
사용자가 학식 메뉴를 식당별로 찜하고, 찜한 메뉴가 오늘 점심/저녁에 나오면 오전 11시에 개인화 푸시를 받는 기능입니다.
/menu-favorites, 로그인 필수)GET /search?keyword=: 앞뒤 공백 제거 후 2글자 이상, 대소문자 무시, 단종 제외, 완전일치 → 시작 → 포함 순 정렬, 결과별 찜 여부 포함. 사용자 언어 번역이 있으면 번역명으로도 검색되고, 없으면 한국어 이름으로 폴백GET찜 목록(최신순, 단종 메뉴도 표시) /POST /{menuId}찜(중복 시 무시, 단종 메뉴는 400) /DELETE /{menuId}찜 취소PUT /users/push-token(등록·갱신, 기기 여러 대 허용),DELETE /users/push-token(로그아웃 시)EATSSU_FIREBASE_CREDENTIALS(서비스 계정 JSON base64)로 주입. FCM이UNREGISTERED/SENDER_ID_MISMATCH로 응답한 토큰은 자동 삭제type,date(yyyyMMdd),timePart포함menu_favorite,push_token,menu_favorite_push_history(V26~V28). 탈퇴/메뉴 삭제 시ON DELETE CASCADE💬 공유사항 to 리뷰어
google-cloud-storage가jackson-dataformat-xml을 끌어와Accept헤더 없는 요청에 전체 API가 XML로 응답합니다 → storage/firestore 모듈 exclude2. Boot 의존성 관리가 httpclient5/httpcore5를 구버전으로 고정해 발송 시
NoClassDefFoundError→ Firebase는NetHttpTransport사용,google-http-client-jackson2명시 추가 (DeepL 쪽 HTTP 클라이언트는 변경 없음)UNREGISTERED응답이 오는 것까지 확인했습니다. 실제 사용자 발송은 없었습니다.cd.yml에EATSSU_FIREBASE_CREDENTIALS전달 추가. Secret이 없으면 서버는 정상 기동하고 푸시만 경고 로그 후 건너뜁니다.date/timePart로 학식 화면 이동, 기존 11시 일반 알림과의 중복 여부 확인✅ PR Checklist
PR이 다음 요구 사항을 충족하는지 확인하세요.