feat: 상세 로그 다운로드 API 구현 (#140) #141

Merged
seonkyu.kim merged 1 commits from feature/#140-push-log-export into develop 2026-02-11 00:47:06 +00:00
Owner

📋 작업 요약

  • Push 발송 로그를 CSV 파일로 다운로드하는 API 구현
  • 최대 30일, 100,000건 제한

Closes #140

🛠️ 작업 내용 (Changes)

  • SPMS.Application/DTOs/Push/PushLogExportRequestDto.cs — 내보내기 요청 DTO (message_code, device_id, status, start_date, end_date)
  • SPMS.Domain/Interfaces/IPushSendLogRepository.cs — GetExportLogsAsync 메서드 추가
  • SPMS.Infrastructure/Persistence/Repositories/PushSendLogRepository.cs — GetExportLogsAsync 구현 (Include Message+Device, Take maxCount)
  • SPMS.Application/Interfaces/IPushService.cs — ExportLogAsync 메서드 추가
  • SPMS.Application/Services/PushService.cs — CSV 생성 로직 구현 (StringBuilder, 30일/10만건 제한)
  • SPMS.API/Controllers/PushController.cs — POST /v1/in/push/log/export 엔드포인트 추가

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

  • CSV 형식: sent_at, message_code, title, device_id, device_token, platform, status, fail_reason
  • 날짜 범위 최대 30일 초과 시 SpmsException(BadRequest) 발생
  • File() 응답으로 text/csv MIME 타입 반환

체크리스트 (Self Checklist)

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

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

Build succeeded.
    0 Warning(s)
    0 Error(s)
## 📋 작업 요약 - Push 발송 로그를 CSV 파일로 다운로드하는 API 구현 - 최대 30일, 100,000건 제한 ## 🔗 관련 이슈 (Related Issues) Closes #140 ## 🛠️ 작업 내용 (Changes) - [x] SPMS.Application/DTOs/Push/PushLogExportRequestDto.cs — 내보내기 요청 DTO (message_code, device_id, status, start_date, end_date) - [x] SPMS.Domain/Interfaces/IPushSendLogRepository.cs — GetExportLogsAsync 메서드 추가 - [x] SPMS.Infrastructure/Persistence/Repositories/PushSendLogRepository.cs — GetExportLogsAsync 구현 (Include Message+Device, Take maxCount) - [x] SPMS.Application/Interfaces/IPushService.cs — ExportLogAsync 메서드 추가 - [x] SPMS.Application/Services/PushService.cs — CSV 생성 로직 구현 (StringBuilder, 30일/10만건 제한) - [x] SPMS.API/Controllers/PushController.cs — POST /v1/in/push/log/export 엔드포인트 추가 ## 📢 리뷰어 참고 사항 (To Reviewers) - CSV 형식: sent_at, message_code, title, device_id, device_token, platform, status, fail_reason - 날짜 범위 최대 30일 초과 시 SpmsException(BadRequest) 발생 - File() 응답으로 text/csv MIME 타입 반환 ## ✅ 체크리스트 (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:45:50 +00:00
seonkyu.kim added 1 commit 2026-02-11 00:45:50 +00:00
- POST /v1/in/push/log/export (EXP-02, API_SPMS_07_PUSH_09)
- 발송 로그 CSV 파일 다운로드 (페이징 없이 전체 반환)
- 최대 조회 기간 30일, 최대 100,000건 제한
- message_code, device_id, status 필터 지원

Closes #140
seonkyu.kim added the
Priority
Medium
Status
In Progress
Type
Feature
labels 2026-02-11 00:46:11 +00:00
seonkyu.kim self-assigned this 2026-02-11 00:46:19 +00:00
seonkyu.kim requested review from Owners 2026-02-11 00:46:30 +00:00
seonkyu.kim merged commit 519569ab72 into develop 2026-02-11 00:47:06 +00:00
seonkyu.kim deleted branch feature/#140-push-log-export 2026-02-11 00:47:45 +00:00
seonkyu.kim added
Status
Done
and removed
Status
In Progress
labels 2026-02-11 00:48:13 +00:00
Sign in to join this conversation.
No description provided.