feat: 실패원인 순위 API 구현 (#142) #143

Merged
seonkyu.kim merged 1 commits from feature/#142-failure-stats into develop 2026-02-11 00:54:19 +00:00
Owner

📋 작업 요약

  • 실패 원인별 집계를 상위 N개로 조회하는 Stats API 구현
  • FailReason별 건수, 비율(%), 설명 반환

Closes #142

🛠️ 작업 내용 (Changes)

  • SPMS.Application/DTOs/Stats/FailureStatRequestDto.cs — 요청 DTO (start_date, end_date, limit)
  • SPMS.Application/DTOs/Stats/FailureStatResponseDto.cs — 응답 DTO (total_fail, period, items)
  • SPMS.Domain/Interfaces/IPushSendLogRepository.cs — GetFailureStatsAsync 메서드 + FailureStatRaw 클래스 추가
  • SPMS.Infrastructure/Persistence/Repositories/PushSendLogRepository.cs — GroupBy FailReason 집계 구현
  • SPMS.Application/Interfaces/IStatsService.cs — GetFailureStatAsync 메서드 추가
  • SPMS.Application/Services/StatsService.cs — 비율 계산 + FailReason 설명 매핑 구현
  • SPMS.API/Controllers/StatsController.cs — POST /v1/in/stats/failure 엔드포인트 추가

📢 리뷰어 참고 사항 (To Reviewers)

  • FailReason 설명은 API 명세서(7종: InvalidToken, NotRegistered, MessageTooBig, RateLimit, ServerError, NetworkError, Unknown) 기준 매핑
  • 매핑되지 않는 FailReason은 원본 문자열 그대로 description에 반환
  • limit 기본값 5, 최대 20

체크리스트 (Self Checklist)

  • 빌드(Build)가 성공적으로 수행되었는가?
  • 모든 단위 테스트(Unit Test)를 통과하였는가?
  • 불필요한 로그나 주석을 제거하였는가?
  • 컨벤션(Clean Architecture, Naming)을 준수하였는가?
  • 기밀 정보(비밀번호, 키 등)가 하드코딩 되어있지 않은가?

📸 스크린샷 / 테스트 로그 (Screenshots/Logs)

Build succeeded.
    0 Warning(s)
    0 Error(s)
## 📋 작업 요약 - 실패 원인별 집계를 상위 N개로 조회하는 Stats API 구현 - FailReason별 건수, 비율(%), 설명 반환 ## 🔗 관련 이슈 (Related Issues) Closes #142 ## 🛠️ 작업 내용 (Changes) - [x] SPMS.Application/DTOs/Stats/FailureStatRequestDto.cs — 요청 DTO (start_date, end_date, limit) - [x] SPMS.Application/DTOs/Stats/FailureStatResponseDto.cs — 응답 DTO (total_fail, period, items) - [x] SPMS.Domain/Interfaces/IPushSendLogRepository.cs — GetFailureStatsAsync 메서드 + FailureStatRaw 클래스 추가 - [x] SPMS.Infrastructure/Persistence/Repositories/PushSendLogRepository.cs — GroupBy FailReason 집계 구현 - [x] SPMS.Application/Interfaces/IStatsService.cs — GetFailureStatAsync 메서드 추가 - [x] SPMS.Application/Services/StatsService.cs — 비율 계산 + FailReason 설명 매핑 구현 - [x] SPMS.API/Controllers/StatsController.cs — POST /v1/in/stats/failure 엔드포인트 추가 ## 📢 리뷰어 참고 사항 (To Reviewers) - FailReason 설명은 API 명세서(7종: InvalidToken, NotRegistered, MessageTooBig, RateLimit, ServerError, NetworkError, Unknown) 기준 매핑 - 매핑되지 않는 FailReason은 원본 문자열 그대로 description에 반환 - limit 기본값 5, 최대 20 ## ✅ 체크리스트 (Self Checklist) - [x] 빌드(Build)가 성공적으로 수행되었는가? - [x] 모든 단위 테스트(Unit Test)를 통과하였는가? - [x] 불필요한 로그나 주석을 제거하였는가? - [x] 컨벤션(Clean Architecture, Naming)을 준수하였는가? - [x] 기밀 정보(비밀번호, 키 등)가 하드코딩 되어있지 않은가? ## 📸 스크린샷 / 테스트 로그 (Screenshots/Logs) ``` Build succeeded. 0 Warning(s) 0 Error(s) ```
seonkyu.kim added this to the Phase 3-2: 통계 & Webhook & 배치 milestone 2026-02-11 00:53:01 +00:00
seonkyu.kim added 1 commit 2026-02-11 00:53:02 +00:00
seonkyu.kim added the
Priority
Medium
Status
In Progress
Type
Feature
labels 2026-02-11 00:53:37 +00:00
seonkyu.kim self-assigned this 2026-02-11 00:53:43 +00:00
seonkyu.kim requested review from Owners 2026-02-11 00:53:58 +00:00
seonkyu.kim merged commit 5890392121 into develop 2026-02-11 00:54:19 +00:00
seonkyu.kim added
Status
Done
and removed
Status
In Progress
labels 2026-02-11 00:54:52 +00:00
seonkyu.kim deleted branch feature/#142-failure-stats 2026-02-11 00:55:00 +00:00
Sign in to join this conversation.
No description provided.