From 27c19f6ce1f50b98791e2b99179e3c390d01c581 Mon Sep 17 00:00:00 2001 From: shinythinking Date: Tue, 3 Dec 2024 00:36:22 +0900 Subject: [PATCH] =?UTF-8?q?feat/#196=20:=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=EC=8B=9C,=20=ED=95=B4=EB=8B=B9=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=EB=A5=BC=20storage=EC=97=90=20=EC=A0=80?= =?UTF-8?q?=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * datastore에 저장되는 값은 storage에서 받아온 url 입니다. --- .../mypage/viewmodel/ProfileEditViewModel.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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) {