|
|
@@ -1,5 +1,7 @@
|
|
|
package com.deliveryproject.easydelivery;
|
|
|
|
|
|
+import com.deliveryproject.easydelivery.Models.AppUser;
|
|
|
+import com.deliveryproject.easydelivery.Repository.AppUserRepository;
|
|
|
import com.deliveryproject.easydelivery.Repository.DeliveryRepository;
|
|
|
import com.deliveryproject.easydelivery.Models.Delivery;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -15,6 +17,9 @@ public class DeliveryController {
|
|
|
@Autowired
|
|
|
private DeliveryRepository deliveryRepository;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private AppUserRepository appUserRepository;
|
|
|
+
|
|
|
@GetMapping
|
|
|
public ResponseEntity<List<Delivery>> getAllDeliveries() {
|
|
|
List<Delivery> deliveries = deliveryRepository.findAll();
|
|
|
@@ -55,12 +60,17 @@ public class DeliveryController {
|
|
|
|
|
|
@DeleteMapping("/{id}")
|
|
|
public ResponseEntity<Void> deleteDelivery(@PathVariable Long id) {
|
|
|
- Optional<Delivery> optionalDelivery = deliveryRepository.findById(id);
|
|
|
- if (optionalDelivery.isPresent()) {
|
|
|
- deliveryRepository.delete(optionalDelivery.get());
|
|
|
- return ResponseEntity.noContent().build();
|
|
|
- } else {
|
|
|
- return ResponseEntity.notFound().build();
|
|
|
+ Delivery delivery = deliveryRepository.findById(id).orElse(null);
|
|
|
+ AppUser user = appUserRepository.findByDeliveriesContaining(delivery);
|
|
|
+ if (user != null) {
|
|
|
+ user.getDeliveries().remove(delivery);
|
|
|
+ appUserRepository.save(user);
|
|
|
}
|
|
|
+
|
|
|
+ // Finally, delete the delivery itself
|
|
|
+ assert delivery != null;
|
|
|
+ deliveryRepository.delete(delivery);
|
|
|
+ return null;
|
|
|
}
|
|
|
+
|
|
|
}
|