Skip to content

[feat] notification — 알림 목록·읽음 처리 API #263

Description

@sevineleven

앱의 알림 화면은 UI 만 있고 데이터가 전부 하드코딩이다. 홈의 안읽음 배지도 그 가짜 목록을 세고 있어, 사용자가 보는 숫자가 실제로 아무것도 가리키지 않는다. 서버에 알림을 담을 자리와 읽음 상태가 없어서 생긴 일이다.

프론트(조영찬)는 알림 목록·하나 읽음·전체 읽음 세 개의 엔드포인트를 요청했고, 알림 종류(type)는 서버가 정해 주면 앱이 그 값에 아이콘·문구를 맞추겠다고 했다.

무엇을

  • GET /api/v1/notifications — 소유자의 알림 목록 + 안읽음 개수
  • PATCH /api/v1/notifications/{id}/read — 하나 읽음
  • POST /api/v1/notifications/read-all — 전체 읽음

정해야 할 것:

  • type 목록. 앱이 아이콘·문구를 맞출 키다. 지금 실제로 보낼 근거가 있는 종류만 정의한다(쓰지도 않을 종류를 미리 나열하지 않는다).
  • 문구의 주인. 프론트가 type 에 문구를 맞추겠다고 했으므로 서버는 type 만 내려보낸다. 이 레포의 OpeningStatus 와 같은 방식이다.
  • 읽음 처리의 계약. 남의 알림을 id 만으로 읽음 처리할 수 있으면 안 된다. 없는 id 와 남의 id 는 존재 여부를 흘리지 않게 같은 답을 준다(CourseStorageService.get 선례).
  • 페이지네이션. 알림은 쌓이는 데이터다. page·sizePaging 규약대로 받는다. 안읽음 개수는 페이지와 무관한 전체 수다.
  • 소유 키. 코스·연차와 같은 X-Guest-Id 를 따른다. 소셜 로그인이 붙으면 함께 user_id 로 옮긴다.

범위 밖

  • 알림 생성(스케줄러가 "내일 여행" 을 넣는 것)과 실제 FCM 발송. 후속 이슈로 남긴다.

Metadata

Metadata

Assignees

Labels

feat새 기능 (외부에 보이는 변화)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions