Commit Graph

260 Commits

Author SHA1 Message Date
5890392121 feat: 실패원인 순위 API 구현 (#142)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/143
2026-02-11 00:54:16 +00:00
SEAN
a5b8bda162 feat: 실패원인 순위 API 구현 (#142)
Closes #142
2026-02-11 09:51:44 +09:00
519569ab72 feat: 상세 로그 다운로드 API 구현 (#140)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/141
2026-02-11 00:47:04 +00:00
SEAN
3a973f56ce feat: 상세 로그 다운로드 API 구현 (#140)
- POST /v1/in/push/log/export (EXP-02, API_SPMS_07_PUSH_09)
- 발송 로그 CSV 파일 다운로드 (페이징 없이 전체 반환)
- 최대 조회 기간 30일, 최대 100,000건 제한
- message_code, device_id, status 필터 지원

Closes #140
2026-02-11 09:43:47 +09:00
042e6e1dd6 feat: 통계 리포트 다운로드 API 구현 (#138)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/139
2026-02-11 00:41:02 +00:00
SEAN
d3bd4356a8 feat: 통계 리포트 다운로드 API 구현 (#138)
- POST /v1/in/stats/export (EXP-01)
- 일별/시간대별/플랫폼별 통계를 엑셀(.xlsx) 3시트로 생성
- ClosedXML 패키지 추가

Closes #138
2026-02-11 09:38:46 +09:00
ce266956c7 feat: 발송 상세 로그 조회 API 구현 (#136)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/137
2026-02-11 00:33:00 +00:00
SEAN
bcc40b4c01 feat: 발송 상세 로그 조회 API 구현 (#136)
- POST /v1/in/stats/send-log (DDL-02)
- 특정 메시지의 개별 디바이스별 발송 로그 조회
- 플랫폼(iOS/Android/Web), 성공/실패 필터 지원
- Device Include로 디바이스 토큰, 플랫폼 정보 포함

Closes #136
2026-02-11 09:29:03 +09:00
86f978633e feat: 운영자 관리 API 구현 (#134)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/135
2026-02-11 00:20:11 +00:00
SEAN
3e5aeacd5e feat: 운영자 관리 API 구현 (#134)
- POST /v1/in/account/operator/create (계정 생성 + 비밀번호 설정 이메일)
- POST /v1/in/account/operator/delete (Soft Delete, 자기 자신 삭제 방지)
- POST /v1/in/account/operator/list (페이징 + role/is_active 필터)
- POST /v1/in/account/operator/password/reset (비밀번호 초기화 + 세션 무효화)

Closes #134
2026-02-11 09:16:04 +09:00
e0f7d422c3 feat: 통계 API 구현 (8.1~8.5) (#132)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/133
2026-02-10 14:11:26 +00:00
caa2148654 chore: TASKS.md 통계 API 완료 표시 (#132)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 23:09:41 +09:00
0911fc763a feat: 통계 API 구현 (8.1~8.5) (#132)
- POST /v1/in/stats/daily: 기간별 일별 통계
- POST /v1/in/stats/summary: 대시보드 요약 통계
- POST /v1/in/stats/message: 메시지별 발송 통계
- POST /v1/in/stats/hourly: 시간대별 발송 추이
- POST /v1/in/stats/device: 디바이스 분포 통계
- IDailyStatRepository, DailyStatRepository 신규
- IPushSendLogRepository 통계 메서드 확장

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 23:08:04 +09:00
d940948df0 feat: 대용량 발송/상태조회/취소 API 구현 (#130)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/131
2026-02-10 14:00:25 +00:00
4298171d61 chore: TASKS.md 대용량 발송 API 완료 표시 (#130)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 22:56:01 +09:00
830cbf2edc feat: 대용량 발송/상태조회/취소 API 구현 (#130)
- POST /v1/in/push/send/bulk: CSV 대량 발송 (비동기)
- POST /v1/in/push/job/status: Job 상태 조회
- POST /v1/in/push/job/cancel: Job 취소
- BulkJobStore: Redis Hash 기반 Job 상태 관리
- PushWorker: Job 진행률 추적 및 취소 체크

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 22:55:39 +09:00
dc487609b3 feat: 메시지 CRUD API 구현 (#128)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/129
2026-02-10 13:43:28 +00:00
01c8f7602f chore: TASKS.md Phase 3 재정비 - API Spec 기준 (#128)
- API_Specification.md 기준으로 Phase 3 테이블 재구성
- 미구현 API 7개 추가 (Message 6.1~6.4, Push 7.3~7.5)
- Feature_Spec 전용 항목(딥링크/재발송) 보류 처리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 22:38:50 +09:00
fc7ab51fa3 feat: 메시지 CRUD API 구현 (#128)
- 메시지 저장 API (POST /v1/in/message/save)
- 메시지 목록 조회 API (POST /v1/in/message/list)
- 메시지 상세 조회 API (POST /v1/in/message/info)
- 메시지 삭제 API (POST /v1/in/message/delete)
- message_code 자동 생성 (접두3+순번4+접미3)
- 변수 추출 ({{변수명}} 패턴)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 22:38:24 +09:00
f8eb938a9d fix: Health check 503 응답에 상세 데이터 포함 (#126)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/127
2026-02-10 10:35:01 +00:00
f70d8a8558 fix: Health check 503 응답에 상세 데이터 포함 (#126)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 19:27:44 +09:00
01cc3adea4 fix: RabbitMQ 연결 실패 시 앱 크래시 방지 (#124)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/125
2026-02-10 10:16:30 +00:00
3fc3bb8144 fix: RabbitMQ 상태 모니터링 및 백그라운드 재시도 추가 (#124)
- RabbitMQInitializer를 BackgroundService로 변경 (30초 간격 재시도)
- RabbitMQConnection에 IsConnected 속성 추가
- Health check에 RabbitMQ 연결/초기화 상태 반영
- DI 등록 변경 (Singleton + HostedService 패턴)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 19:15:42 +09:00
efd6615809 fix: RabbitMQ 연결 실패 시 앱 크래시 방지 (#124)
- StartAsync에서 throw 제거, LogWarning으로 변경
- InitializeAsync 메서드 분리 (재시도 가능)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 19:06:58 +09:00
355d3269c0 feat: 발송 로그 조회 API 구현 (#122)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/123
2026-02-10 10:05:50 +00:00
SEAN
b56170f10c feat: 발송 로그 조회 API 구현 (#122)
- POST /v1/in/push/log 엔드포인트 추가
- PushSendLogRepository (페이징, 필터링: message_code, device_id, status, 날짜범위)
- PushService.GetLogAsync 구현
- 누락된 Push DTO 파일 포함 (PushSendRequestDto, PushSendResponseDto, PushSendTagRequestDto)
2026-02-10 17:41:38 +09:00
975ed77d18 feat: 메시지 미리보기 API 구현 (#120)
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/121
2026-02-10 08:31:19 +00:00
SEAN
ef6d71a921 feat: 메시지 미리보기 API 구현 (#120)
- POST /v1/in/message/preview 엔드포인트 추가
- MessageService: 메시지 조회 → 변수 치환 → 미리보기 데이터 반환
- IMessageService 인터페이스 정의 (향후 CRUD 확장용)

Closes #120
2026-02-10 17:27:56 +09:00
6f58633de9 feat: 메시지 유효성 검사 서비스 구현 (#118)
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
2026-02-10 17:23:12 +09:00
SEAN
ce7b8b3d35 feat: 메시지 유효성 검사 서비스 구현 (#118)
- MessageValidationService: title/body/image_url/link_url/link_type/data 검증
- POST /v1/in/message/validate 엔드포인트 추가
- MessageController 기반 구성

Closes #118
2026-02-10 17:15:57 +09:00
fc16884d25 feat: 예약 발송 등록/취소 API 구현 (#116)
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/117
2026-02-10 08:11:04 +00:00
SEAN
fe1dcd0176 feat: 예약 발송 등록/취소 API 구현 (#116)
- POST /v1/in/push/schedule (예약 발송 등록)
- POST /v1/in/push/schedule/cancel (예약 취소)
- ScheduleCancelStore: Redis 기반 예약 취소 추적
- ScheduleWorker: 취소된 예약 메시지 ACK 후 스킵 로직 추가

Closes #116
2026-02-10 17:06:04 +09:00
47dff6b2f0 feat: 즉시 발송 요청 API 구현 (#114)
Some checks failed
SPMS_API/pipeline/head There was a failure building this commit
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/115
2026-02-10 07:48:59 +00:00
SEAN
73de5efd84 feat: 즉시 발송 요청 API 구현 (#114)
- POST /v1/in/push/send (단건 발송)
- POST /v1/in/push/send/tag (태그 발송)
- PushService: 메시지 조회 → 변수 치환 → RabbitMQ 큐 발행
- MessageNotFound(151) 에러 코드 추가

Closes #114
2026-02-10 16:38:51 +09:00
b5d6c70b16 feat: ScheduleWorker 구현 (#112)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/113
2026-02-10 07:27:01 +00:00
SEAN
814d2082cb feat: ScheduleWorker 구현 (#112) 2026-02-10 16:25:25 +09:00
a11750db93 feat: PushWorker 구현 (#110)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/111
2026-02-10 07:18:09 +00:00
SEAN
f36f8f47a9 feat: PushWorker 구현 (#110) 2026-02-10 16:14:47 +09:00
81c3eee1f3 feat: Redis 중복 발송 방지 구현 (#108)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/109
2026-02-10 07:09:17 +00:00
SEAN
4292f57ad1 feat: Redis 중복 발송 방지 구현 (#108) 2026-02-10 16:04:51 +09:00
639069972b feat: APNs 발송 모듈 구현 (#106)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/107
2026-02-10 07:00:04 +00:00
SEAN
3a5c2a5b5b feat: APNs 발송 모듈 구현 (#106) 2026-02-10 15:52:26 +09:00
e2cf76fd11 feat: FCM 발송 모듈 구현 (#104)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/105
2026-02-10 06:48:26 +00:00
SEAN
7a250847f4 feat: FCM 발송 모듈 구현 (#104) 2026-02-10 15:44:32 +09:00
08aa74138f feat: RabbitMQ 인프라 설정 (Exchange/Queue) (#102)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/103
2026-02-10 06:39:31 +00:00
SEAN
4f38e31710 feat: RabbitMQ 인프라 설정 (Exchange/Queue) (#102) 2026-02-10 15:34:15 +09:00
1cae5c3754 feat: CSV 검증/템플릿 다운로드 API 구현 (#100)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/101
2026-02-10 06:24:06 +00:00
SEAN
0db4a8824d feat: CSV 검증/템플릿 다운로드 API 구현 (#100) 2026-02-10 15:22:12 +09:00
b661fb5a08 feat: 파일 업로드/조회/삭제 API 구현 (#98)
All checks were successful
SPMS_API/pipeline/head This commit looks good
Reviewed-on: https://git.ipstein.myds.me/SPMS/SPMS_API/pulls/99
2026-02-10 06:15:15 +00:00
SEAN
658fa1d63d feat: 파일 업로드/조회/삭제 API 구현 (#98) 2026-02-10 15:03:24 +09:00