Files
honeyDueKMP/composeApp/src/commonMain/kotlin/com/example/mycrib/viewmodel/TaskCompletionViewModel.kt
Trey t de1c7931e9 wip
2025-11-04 10:51:20 -06:00

36 lines
1.3 KiB
Kotlin

package com.mycrib.android.viewmodel
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.mycrib.shared.models.TaskCompletion
import com.mycrib.shared.models.TaskCompletionCreateRequest
import com.mycrib.shared.network.ApiResult
import com.mycrib.shared.network.TaskCompletionApi
import com.mycrib.storage.TokenStorage
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch
class TaskCompletionViewModel : ViewModel() {
private val taskCompletionApi = TaskCompletionApi()
private val _createCompletionState = MutableStateFlow<ApiResult<TaskCompletion>>(ApiResult.Loading)
val createCompletionState: StateFlow<ApiResult<TaskCompletion>> = _createCompletionState
fun createTaskCompletion(request: TaskCompletionCreateRequest) {
viewModelScope.launch {
_createCompletionState.value = ApiResult.Loading
val token = TokenStorage.getToken()
if (token != null) {
_createCompletionState.value = taskCompletionApi.createCompletion(token, request)
} else {
_createCompletionState.value = ApiResult.Error("Not authenticated", 401)
}
}
}
fun resetCreateState() {
_createCompletionState.value = ApiResult.Loading
}
}