NR-142 구독 상태때 등록한 이미지가 남아있는 경우 테마 수정 시도시 토스트를 띄운다.#143
Conversation
왜? 구독 상태때 등록한 이미지가 남아있는경우 테마 정보를 수정하려 시도할때 이미지 정보를 포함하여 서버에 post 요청을 보내기 때문에 구독 상태가 아니여서 api 요청을 실패한다. 이미지를 삭제하고 수정을 해야함을 사용자에게 안내하는 방향으로 수정한다.
🤖 AI Code Review (Gemini)terminal-notifier -title "Claude Code" -message "코드 리뷰를 시작합니다." -sound default 안녕하세요! NR-142 PR에 대한 코드 리뷰를 진행하겠습니다. 제출하신 변경 사항은 구독 상태가 아닌 사용자가 이미지가 포함된 힌트를 수정하려 할 때 발생하는 API 요청 실패 문제를 잘 해결하고 있습니다. API 요청을 보내기 전에 유효성 검사를 추가하여 사용자에게 적절한 피드백을 제공하는 방식이 좋습니다. 🟢 전반적인 평가제안된 변경 사항은 문제 설명을 정확히 반영하고 있으며, Clean Architecture 및 Orbit MVI 패턴을 준수하여 구현되었습니다. 특정 조건에서 불필요한 API 호출을 방지하고 사용자 경험을 개선하는 데 기여합니다. 📝 코드 리뷰File: @@ -72,6 +72,7 @@ class HintManageFragment : ComposeBaseViewModelFragment<HintManageViewModel>() {
is HintManageEvent.RequestDeleteHint -> showDeleteConfirmDialog(event.hint)
is HintManageEvent.HintSaved -> snackbar(R.string.hint_manage_save_success)
is HintManageEvent.HintDeleted -> snackbar(R.string.hint_manage_delete_success)
+ is HintManageEvent.SaveBlockedDueToImages -> toast(R.string.hint_save_blocked_due_to_images)
is HintManageEvent.ImageUploadFailed -> {
when (event.reason) {
HintManageEvent.ImageUploadFailed.Reason.INVALID_FORMAT -> R.string.image_invalid_format
File: @@ -57,6 +57,7 @@ sealed interface HintManageEvent {
data class RequestDeleteHint(val hint: Hint) : HintManageEvent
data object HintSaved : HintManageEvent
data object HintDeleted : HintManageEvent
+ data object SaveBlockedDueToImages : HintManageEvent
data class ImageUploadFailed(val reason: Reason) : HintManageEvent {
enum class Reason {
INVALID_FORMAT,
File: @@ -196,6 +196,15 @@ class HintManageViewModel @Inject constructor(
fun saveHint() {
val editData = _editData.value
+ if (editData.hintId != null &&
+ adminRepository.cachedSubscribeStatus != SubscribeStatus.Subscribed &&
+ (editData.hintImageUrls.isNotEmpty() || editData.answerImageUrls.isNotEmpty())
+ ) {
+ baseViewModelScope.launch {
+ _uiEvent.emit(HintManageEvent.SaveBlockedDueToImages)
+ }
+ return
+ }
_sheetType.value = HintSheetType.None
baseViewModelScope.launch {
try {
File: @@ -296,4 +296,5 @@
<string name="image_invalid_size">이미지 크기는 10MB 이하여야 합니다</string>
<string name="image_invalid_format">지원하지 않는 이미지 형식입니다</string>
<string name="feature_for_subscriber">구독이 필요한 기능입니다.</string>
+ <string name="hint_save_blocked_due_to_images">구독이 만료되었습니다. 이미지를 삭제한 후 저장해 주세요.</string>
</resources>
\ No newline at end of file
🚀 결론제출하신 코드는 문제 해결에 효과적이며, 프로젝트의 아키텍처 및 코딩 가이드라인을 잘 따르고 있습니다. terminal-notifier -title "Claude Code" -message "코드 리뷰를 완료했습니다." -sound default This review was automatically generated using Gemini AI. Please use your judgment when addressing the feedback. |
|
구독 캐싱 정책에 대한것은 의도된 것이므로 수정하지 않고 머지합니다. |
왜?
구독 상태때 등록한 이미지가 남아있는경우
테마 정보를 수정하려 시도할때 이미지 정보를 포함하여 서버에 post 요청을 보내기 때문에 구독 상태가 아니여서 api 요청을 실패한다.
이미지를 삭제하고 수정을 해야함을 사용자에게 안내하는 방향으로 수정한다.