package com.example.smart.ui.project.correct import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope import com.example.basecore.base.BaseContextViewModel import com.example.basecore.net.http.Result import com.example.basecore.util.toast import com.example.smart.MyApp import com.example.smart.reqeust.RetrofitClient import com.example.smart.ui.home.page.data.PageReq import com.example.smart.ui.project.correct.bean.AddCorrectBean import com.example.smart.ui.project.correct.bean.CorrectStyleBean import com.example.smart.ui.project.issue.bean.IssueDetailBean import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch class CorrectViewModel : BaseContextViewModel() { val correctBean = MutableLiveData>() val createResult = MutableLiveData() val updateResult = MutableLiveData() val eventBean = MutableLiveData() fun callList(taskId: String, mine: Boolean, fail: (String) -> Unit) { viewModelScope.launch(Dispatchers.Main) { safeCall { execute(RetrofitClient.api.correctList(taskId, mine, PageReq())) }.apply { if (this is Result.Success) { correctBean.value = data.list } else if (this is Result.Error) { fail(exception.message ?: "未知错误") } } } } /** * 问题详情 * @param id 问题id */ fun callProblemDetailsInfo(id: String) { viewModelScope.launch(Dispatchers.Main) { val issueResult = safeCall { execute(RetrofitClient.api.issueDetails(id)) } if (issueResult is Result.Success) { eventBean.value = issueResult.data } else if (issueResult is Result.Error) { MyApp.app.toast(issueResult.exception.message ?: "未知错误") } } } /** * 添加正确做法 */ fun createCorrect(bean: AddCorrectBean, fail: (String) -> Unit) { viewModelScope.launch(Dispatchers.Main) { val result = safeCall { callNoResult(RetrofitClient.api.createCorrect(bean)) } if (result is Result.SuccessNone) { createResult.value = result.status } else if (result is Result.Error) { fail(result.exception.message ?: "未知错误") } } } /** * 更新正确做法 */ fun updateCorrect(bean: AddCorrectBean, fail: (String) -> Unit) { viewModelScope.launch(Dispatchers.Main) { val result = safeCall { callNoResult(RetrofitClient.api.updateCorrect(bean)) } if (result is Result.SuccessNone) { updateResult.value = result.status } else if (result is Result.Error) { fail(result.exception.message ?: "未知错误") } } } }