Skip to content

Commit

Permalink
[ Fix ] : 회원 탈퇴기능에서 잘못 사용되는 UseCase 제거
Browse files Browse the repository at this point in the history
- DeleteMember는 회원 스스로가 탈퇴할때를 가정한 UseCase로 Local의 Memeber Id를 함께 제거하는 로직이 있음
- DeleteMemeberUseCase를 사용하지 않고 MemberRepository의 deleteMember 메서드를 사용하여 DB에서만 제거
  • Loading branch information
toastmeister1 committed Nov 25, 2023
1 parent 8cf1787 commit aefe7de
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.yapp.presentation.ui.admin.management

import FoldableHeaderItemState
import android.annotation.SuppressLint
import android.widget.Toast
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
Expand Down Expand Up @@ -33,6 +34,7 @@ import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
Expand Down Expand Up @@ -72,6 +74,7 @@ fun AttendanceManagement(
onBackButtonClicked: (() -> Unit)? = null
) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
val context = LocalContext.current

when (uiState.loadState) {
Loading -> YDSProgressBar()
Expand All @@ -91,6 +94,9 @@ fun AttendanceManagement(
LaunchedEffect(key1 = viewModel.effect, key2 = lifeCycleOwner) {
lifeCycleOwner.lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) {
viewModel.effect.collect { effect ->
if (effect is ManagementContract.ManagementSideEffect.ShowToast) {
Toast.makeText(context, effect.description, Toast.LENGTH_SHORT).show()
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,7 @@ class ManagementContract {
class OnTeamTypeHeaderItemClicked(val teamName: String, val teamNumber: Int) : ManagementEvent()
}

sealed class ManagementSideEffect : UiSideEffect
sealed class ManagementSideEffect : UiSideEffect {
class ShowToast(val description: String) : ManagementSideEffect()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ import FoldableHeaderItemState
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.viewModelScope
import com.yapp.common.base.BaseViewModel
import com.yapp.domain.common.KakaoSdkProviderInterface
import com.yapp.domain.model.Attendance
import com.yapp.domain.model.Member
import com.yapp.domain.model.Team
import com.yapp.domain.model.types.PositionType
import com.yapp.domain.usecases.DeleteMemberInfoUseCase
import com.yapp.domain.repository.MemberRepository
import com.yapp.domain.usecases.GetAllMemberUseCase
import com.yapp.domain.usecases.SetMemberAttendanceUseCase
import com.yapp.presentation.ui.admin.AdminConstants.KEY_SESSION_ID
Expand Down Expand Up @@ -43,7 +44,7 @@ class ManagementViewModel @Inject constructor(
savedStateHandle: SavedStateHandle,
getAllMemberUseCase: GetAllMemberUseCase,
private val setMemberAttendanceUseCase: SetMemberAttendanceUseCase,
private val deleteMemberInfoUseCase: DeleteMemberInfoUseCase
private val memberRepository: MemberRepository
) : BaseViewModel<ManagementState, ManagementSideEffect, ManagementEvent>(ManagementState()) {

companion object {
Expand Down Expand Up @@ -103,7 +104,13 @@ class ManagementViewModel @Inject constructor(
}

is ManagementEvent.OnDeleteMemberClicked -> {
deleteMemberInfoUseCase(event.memberId)
memberRepository.deleteMember(event.memberId).also { result ->
if (result.isSuccess) {
setEffect(ManagementSideEffect.ShowToast("멤버를 삭제하는데 실패했습니다"))
} else {
setEffect(ManagementSideEffect.ShowToast("멤버를 성공적으로 제거했습니다"))
}
}
}

is ManagementEvent.OnPositionTypeHeaderItemClicked -> {
Expand Down

0 comments on commit aefe7de

Please sign in to comment.