-
Notifications
You must be signed in to change notification settings - Fork 0
[Release] 사장/알바생 FAQ 조회 API 개발, 로그아웃 기능 개발, 지각 시 사장에게 알림 기능 추가 #132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- 로그아웃시 refresh-token Redis에 블랙리스트로 보관
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR merges development changes into main, introducing FAQ APIs, enhancing subscription and billing flows, adding logout functionality with token blacklisting, and updating CI environment variables.
- Add repository, service, facade, and controller layers for boss and staff FAQ retrieval.
- Refactor subscription retrieval to use Optional and return a null-based DTO when no subscription exists.
- Implement logout logic with Redis-based token blacklist and adjust billing/card DTO to return empty data when missing.
- Extend CI workflow with Sentry and clock-in cron environment variables.
Reviewed Changes
Copilot reviewed 61 out of 61 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| batch/src/main/java/com/mangoboss/batch/auto_clock_out/domain/service/AutoClockOutService.java | Update package and imports for auto clock-out service |
| app/src/main/java/com/mangoboss/app/infra/persistence/SubscriptionRepositoryImpl.java | Change findByBossId to return Optional |
| app/src/main/java/com/mangoboss/app/infra/persistence/FaqRepositoryImpl.java | Add FAQ repository implementation |
| app/src/main/java/com/mangoboss/app/dto/faq/FaqResponse.java | Add record-based DTO for FAQ responses |
| app/src/main/java/com/mangoboss/app/domain/service/subscription/SubscriptionService.java | Refactor subscription retrieval and null fallback logic |
| app/src/main/java/com/mangoboss/app/domain/service/faq/FaqService.java | Add service to fetch FAQs by category |
| app/src/main/java/com/mangoboss/app/domain/service/billing/BillingService.java | Modify billing info logic to return empty DTO when card data is missing |
| app/src/main/java/com/mangoboss/app/domain/service/auth/AuthService.java | Implement logout/blacklist with Redis |
| app/src/main/java/com/mangoboss/app/domain/repository/SubscriptionRepository.java | Update interface to return Optional |
| app/src/main/java/com/mangoboss/app/domain/repository/FaqRepository.java | Add FAQ repository interface |
| app/src/main/java/com/mangoboss/app/common/util/JwtUtil.java | Add method to calculate remaining refresh token expiration |
| app/src/main/java/com/mangoboss/app/common/exception/CustomErrorInfo.java | Add errors for invalid refresh token and FAQ not found |
| app/src/main/java/com/mangoboss/app/api/facade/subscription/SubscriptionFacade.java | Handle null subscription by returning empty response DTO |
| app/src/main/java/com/mangoboss/app/api/facade/faq/StaffFaqFacade.java | Map staff FAQ entities to DTOs |
| app/src/main/java/com/mangoboss/app/api/facade/faq/BossFaqFacade.java | Map boss FAQ entities to DTOs |
| app/src/main/java/com/mangoboss/app/api/facade/auth/AuthFacade.java | Add blacklist validation and logout facade methods |
| app/src/main/java/com/mangoboss/app/api/controller/faq/StaffFaqController.java | Add REST endpoint for staff FAQs |
| app/src/main/java/com/mangoboss/app/api/controller/faq/BossFaqController.java | Add REST endpoint for boss FAQs |
| app/src/main/java/com/mangoboss/app/api/controller/auth/AuthController.java | Consolidate imports and add logout endpoint |
| .github/workflows/cd-dev.yml | Add Sentry DSN/auth and clock-in cron vars to CI env setup |
Comments suppressed due to low confidence (2)
app/src/main/java/com/mangoboss/app/domain/service/subscription/SubscriptionService.java:34
- Returning
nullhere forces callers to handle null checks; consider returningOptional<SubscriptionEntity>from the service to make absence explicit in the API.
return subscriptionRepository.findByBossId(bossId).orElse(null);
app/src/main/java/com/mangoboss/app/domain/service/billing/BillingService.java:79
- This single branch now treats missing billing and missing card data identically; consider distinguishing
billing == null(not found) from missing card info to preserve error semantics or return anOptionalresponse.
if (billing == null || billing.getBillingKey() == null || billing.getCardData() == null) {
연관 이슈
PR 타입(하나 이상의 PR 타입을 선택해주세요)
작업 내용
리뷰 요구사항 (선택)