Я думаю, что это правильно, но всегда вставляйте один ряд, я не знаю почему? Я пользователь MVVM, внедрение зависимостей (Kodein) и Coroutin
(интерфейс) MyApi.kt
@GET("param-list-all")
suspend fun getParamterALL() : Response<List<AllParam>>
(класс) Provinsi.kt
@Entity(primaryKeys = ["id"])
data class Provinsi(
val createdBy: String?,
val createdDate: Long?,
val id: Int?,
val provinceCode: String?,
val provinceName: String?,
val updatedBy: String?,
val updatedDate: Long?
)
ProvinsiRepo.kt
class ProvinsiRepo(
private val api: MyApi,
private val db: AppDatabase
) : SafeApiRequest(){
suspend fun getAllProvinsiAPI(): List<Provinsi> {
return apiRequest{
api.getProvinsi()
}
}
suspend fun saveallParam(param: List<Provinsi>) = db.getProvinsiDao().upsert(param)
}
ProvinsiViewModel.kt
class ProvinsiViewModel(
private val provinsirepo: ProvinsiRepo,
) : ViewModel() {
provinsirepo.getAllProvinsiAPI().let { provinsi->
provinsirepo.saveallParam(provinsi)
}
DAO
@Dao
interface AllParamDAO {
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun upsert(parameter: List<AllParam>)
}