Skip to content

Commit a5d85bd

Browse files
committed
[FEAT/#390] viewModel 로직 작성
1 parent 4d59ce2 commit a5d85bd

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

feature/home/src/main/java/com/terning/feature/home/HomeRoute.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ fun HomeRoute(
9595
if (!permissionState.status.isGranted && !viewModel.getPermissionRequested()) {
9696
permissionState.launchPermissionRequest()
9797

98+
viewModel.fetchAndSaveFcmToken()
99+
98100
snapshotFlow { permissionState.status }
99101
.map { it is PermissionStatus.Granted }
100102
.distinctUntilChanged()

feature/home/src/main/java/com/terning/feature/home/HomeViewModel.kt

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import androidx.paging.map
88
import com.terning.core.designsystem.state.UiState
99
import com.terning.core.designsystem.type.SortBy
1010
import com.terning.domain.home.entity.ChangeFilteringRequestModel
11+
import com.terning.domain.home.entity.FcmToken
1112
import com.terning.domain.home.entity.HomeRecommendIntern
1213
import com.terning.domain.home.entity.HomeRecommendedIntern
1314
import com.terning.domain.home.repository.HomeRepository
@@ -25,6 +26,7 @@ import kotlinx.coroutines.flow.flatMapLatest
2526
import kotlinx.coroutines.flow.flow
2627
import kotlinx.coroutines.flow.update
2728
import kotlinx.coroutines.launch
29+
import timber.log.Timber
2830
import javax.inject.Inject
2931
import com.terning.core.designsystem.R as DesignSystemR
3032

@@ -224,6 +226,22 @@ class HomeViewModel @Inject constructor(
224226
userRepository.setPermissionRequested(requested)
225227
}
226228

227-
fun getPermissionRequested() : Boolean = userRepository.getPermissionRequested()
229+
fun getPermissionRequested(): Boolean = userRepository.getPermissionRequested()
228230

231+
fun fetchAndSaveFcmToken() {
232+
viewModelScope.launch {
233+
userRepository.fetchAndSetFcmToken()
234+
.onSuccess {
235+
sendFcmToken()
236+
}.onFailure(Timber::e)
237+
}
238+
}
239+
240+
private fun sendFcmToken() {
241+
viewModelScope.launch {
242+
homeRepository.sendFcmToken(
243+
FcmToken(userRepository.getFcmToken())
244+
).onFailure(Timber::e)
245+
}
246+
}
229247
}

0 commit comments

Comments
 (0)