diff --git a/feature/mypage/src/main/java/com/boostcamp/mapisode/mypage/viewmodel/ProfileEditViewModel.kt b/feature/mypage/src/main/java/com/boostcamp/mapisode/mypage/viewmodel/ProfileEditViewModel.kt index 69ec3183..e70b6c1c 100644 --- a/feature/mypage/src/main/java/com/boostcamp/mapisode/mypage/viewmodel/ProfileEditViewModel.kt +++ b/feature/mypage/src/main/java/com/boostcamp/mapisode/mypage/viewmodel/ProfileEditViewModel.kt @@ -6,6 +6,7 @@ import com.boostcamp.mapisode.mypage.R import com.boostcamp.mapisode.mypage.intent.ProfileEditIntent import com.boostcamp.mapisode.mypage.sideeffect.ProfileEditSideEffect import com.boostcamp.mapisode.mypage.state.ProfileEditState +import com.boostcamp.mapisode.storage.StorageRepository import com.boostcamp.mapisode.ui.base.BaseViewModel import com.boostcamp.mapisode.user.UserRepository import dagger.hilt.android.lifecycle.HiltViewModel @@ -15,6 +16,7 @@ import javax.inject.Inject @HiltViewModel class ProfileEditViewModel @Inject constructor( + private val storageRepository: StorageRepository, private val userRepository: UserRepository, private val userPreferenceDataStore: UserPreferenceDataStore, ) : BaseViewModel(ProfileEditState()) { @@ -80,6 +82,7 @@ class ProfileEditViewModel @Inject constructor( private fun editClick() { try { viewModelScope.launch { + updateProfileUrl(getStorageUrl()) storeInUserPreferenceDataStore() storeInUserRepository() navigateToMypage() @@ -89,6 +92,17 @@ class ProfileEditViewModel @Inject constructor( } } + private suspend fun getStorageUrl(): String { + try { + return storageRepository.uploadSingleImageToStorage( + imageUri = currentState.profileUrl, + uid = currentState.uid, + ) + } catch (e: Exception) { + throw e + } + } + private suspend fun storeInUserPreferenceDataStore() { viewModelScope.launch { with(userPreferenceDataStore) {