diff --git a/app/src/main/java/com/example/android_programming/api/BackendService.kt b/app/src/main/java/com/example/android_programming/api/BackendService.kt index b2e7cc9..c35c2ae 100644 --- a/app/src/main/java/com/example/android_programming/api/BackendService.kt +++ b/app/src/main/java/com/example/android_programming/api/BackendService.kt @@ -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/" diff --git a/app/src/main/java/com/example/android_programming/api/repository/RestBasketRepository.kt b/app/src/main/java/com/example/android_programming/api/repository/RestBasketRepository.kt index c2e6cee..278281c 100644 --- a/app/src/main/java/com/example/android_programming/api/repository/RestBasketRepository.kt +++ b/app/src/main/java/com/example/android_programming/api/repository/RestBasketRepository.kt @@ -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") diff --git a/app/src/main/java/com/example/android_programming/businessLogic/repo/BasketRepository.kt b/app/src/main/java/com/example/android_programming/businessLogic/repo/BasketRepository.kt index c8ca573..080961d 100644 --- a/app/src/main/java/com/example/android_programming/businessLogic/repo/BasketRepository.kt +++ b/app/src/main/java/com/example/android_programming/businessLogic/repo/BasketRepository.kt @@ -16,7 +16,7 @@ interface BasketRepository { // fun getAllBasket(): Flow> // 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) diff --git a/app/src/main/java/com/example/android_programming/businessLogic/vmodel/BasketViewModel.kt b/app/src/main/java/com/example/android_programming/businessLogic/vmodel/BasketViewModel.kt index 948c652..dc872dd 100644 --- a/app/src/main/java/com/example/android_programming/businessLogic/vmodel/BasketViewModel.kt +++ b/app/src/main/java/com/example/android_programming/businessLogic/vmodel/BasketViewModel.kt @@ -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 diff --git a/app/src/main/java/com/example/android_programming/composeui/Screens/OrderScreen/CardSneaker.kt b/app/src/main/java/com/example/android_programming/composeui/Screens/OrderScreen/CardSneaker.kt index 93974d6..6509fac 100644 --- a/app/src/main/java/com/example/android_programming/composeui/Screens/OrderScreen/CardSneaker.kt +++ b/app/src/main/java/com/example/android_programming/composeui/Screens/OrderScreen/CardSneaker.kt @@ -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)