Делаем репозиторрий, виюмодели и прочее, сейлюсь перед тем, как их внедрять

This commit is contained in:
Максим 2023-11-23 14:34:37 +03:00
parent e3bc68c14c
commit a11e81ab27
4 changed files with 95 additions and 1 deletions

View File

@ -23,5 +23,7 @@ class BicycleRepository(private val bicycleDao: BicycleDao) {
suspend fun getBicyclesByUserId(userId: Int): List<Bicycle> {
return bicycleDao.getBicyclesByUserId(userId)
}
suspend fun getBicycleById(bicycleId: Int?): Bicycle {
return bicycleDao.getBicycleById(bicycleId)
}
}

View File

@ -4,6 +4,9 @@ import com.example.labwork.database.DAO.UserDao
import com.example.labwork.models.User
class UserRepository(private val userDao: UserDao) {
suspend fun getAllUsers(): List<User> {
return userDao.getAllUsers()
}
suspend fun insertUser(user: User) {
userDao.insertUser(user)

View File

@ -0,0 +1,44 @@
package com.example.labwork.viewmodel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.example.labwork.models.Bicycle
import com.example.labwork.repository.BicycleRepository
import kotlinx.coroutines.launch
class BicycleViewModel(private val bicycleRepository: BicycleRepository) : ViewModel() {
private val _bicycles = MutableLiveData<List<Bicycle>>()
val bicycles: LiveData<List<Bicycle>> get() = _bicycles
fun getAllBicycles() {
viewModelScope.launch {
_bicycles.value = bicycleRepository.getAllBicycles()
}
}
fun getBicycleById(bicycleId: Int) {
viewModelScope.launch {
val bicycle = bicycleRepository.getBicycleById(bicycleId)
}
}
fun insertBicycle(bicycle: Bicycle) {
viewModelScope.launch {
bicycleRepository.insertBicycle(bicycle)
}
}
fun updateBicycle(bicycle: Bicycle) {
viewModelScope.launch {
bicycleRepository.updateBicycle(bicycle)
}
}
fun deleteBicycle(bicycle: Bicycle) {
viewModelScope.launch {
bicycleRepository.deleteBicycle(bicycle)
}
}
}

View File

@ -0,0 +1,45 @@
package com.example.labwork.viewmodel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.example.labwork.models.User
import com.example.labwork.repository.UserRepository
import kotlinx.coroutines.launch
class UserViewModel(private val userRepository: UserRepository) : ViewModel() {
private val _users = MutableLiveData<List<User>>()
val users: LiveData<List<User>> get() = _users
fun getAllUsers() {
viewModelScope.launch {
_users.value = userRepository.getAllUsers()
}
}
fun getUserById(userId: Int) {
viewModelScope.launch {
val user = userRepository.getUserById(userId)
// Обработка полученного пользователя
}
}
fun insertUser(user: User) {
viewModelScope.launch {
userRepository.insertUser(user)
}
}
fun updateUser(user: User) {
viewModelScope.launch {
userRepository.updateUser(user)
}
}
fun deleteUser(user: User) {
viewModelScope.launch {
userRepository.deleteUser(user)
}
}
}