Feature: add to basket delete method sneaker from basket

This commit is contained in:
Emelyanov535 2023-12-10 10:16:24 +04:00
parent 76ef28b66c
commit 5c105ebdb2
5 changed files with 24 additions and 10 deletions

View File

@ -100,6 +100,12 @@ interface BackendService {
@Path("sneakerId") sneakerId: Int,
): Boolean
@GET("basket/removeSneaker/{basketId}/{sneakerId}")
suspend fun deleteSneakerFromBasket(
@Path("basketId") basketId: Int,
@Path("sneakerId") sneakerId: Int,
)
companion object {
private const val BASE_URL = "https://59k4pfj3-8080.euw.devtunnels.ms/api/"

View File

@ -46,9 +46,9 @@ class RestBasketRepository(
// TODO("Not yet implemented")
// }
//
// override suspend fun removeSneakerFromBasket(basketId: Int, sneakerId: Int) {
// TODO("Not yet implemented")
// }
override suspend fun removeSneakerFromBasket(basketId: Int, sneakerId: Int) {
service.deleteSneakerFromBasket(basketId, sneakerId)
}
//
// override suspend fun updateSneakerQuantity(basketId: Int, sneakerId: Int, quantity: Int) {
// TODO("Not yet implemented")

View File

@ -16,7 +16,7 @@ interface BasketRepository {
// fun getAllBasket(): Flow<List<Basket>>
// suspend fun delete(basket: Basket)
// suspend fun createBasket(basket: Basket):Long
// suspend fun removeSneakerFromBasket(basketId: Int, sneakerId: Int)
suspend fun removeSneakerFromBasket(basketId: Int, sneakerId: Int)
// suspend fun updateSneakerQuantity(basketId: Int, sneakerId: Int, quantity: Int)
suspend fun incrementSneakerQuantity(basketId: Int, sneakerId: Int)
suspend fun decrementSneakerQuantity(basketId: Int, sneakerId: Int)

View File

@ -65,11 +65,11 @@ class BasketViewModel(private val basketRepository: BasketRepository): ViewModel
return basketRepository.getUserBasketId(userId)
}
//
// fun deleteSneakerFromBasket(basketId: Int, sneakerId: Int) = viewModelScope.launch {
// basketRepository.removeSneakerFromBasket(basketId, sneakerId)
// }
//
fun deleteSneakerFromBasket(basketId: Int, sneakerId: Int) = viewModelScope.launch {
basketRepository.removeSneakerFromBasket(basketId, sneakerId)
}
fun incrementQuantity(basketId: Int, sneakerId: Int) {
val currentQuantity = _quantityStateMap[sneakerId]?.value ?: 1
_quantityStateMap[sneakerId]?.value = currentQuantity + 1

View File

@ -40,6 +40,10 @@ import com.example.android_programming.model.Sneaker
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
import com.example.android_programming.businessLogic.vmodel.BasketViewModel
import com.example.android_programming.businessLogic.vmodel.OrderViewModel
import com.example.android_programming.model.BasketSneakers
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
@SuppressLint("UnrememberedMutableState")
@Composable
@ -81,7 +85,11 @@ fun CardSneakerLike(item: Sneaker, basketViewModel: BasketViewModel = viewModel(
contentColor = Color.White
),
onClick = {
// basketViewModel.deleteSneakerFromBasket(GlobalUser.getInstance().getUser()?.userId!!, item.sneakerId!!)
runBlocking {
launch(Dispatchers.Default) {
basketViewModel.deleteSneakerFromBasket(basketViewModel.getUserBasketId(GlobalUser.getInstance().getUser()?.userId!!), item.sneakerId!!)
}
}
},
modifier = Modifier
.padding(end = 16.dp)