Enhance deletion processes with event-check validations.

Added validation to prevent deletion of shipments, dewars, pucks, or samples if they have associated events. Updated frontend components to handle and display error messages based on API responses for improved user feedback.
This commit is contained in:
GotthardG
2025-01-15 15:30:54 +01:00
parent e63af3e66d
commit 481068603b
4 changed files with 187 additions and 16 deletions

View File

@ -78,13 +78,27 @@ const ShipmentDetails: React.FC<ShipmentDetailsProps> = ({
const confirmed = window.confirm('Are you sure you want to delete this dewar?');
if (confirmed && selectedShipment) {
try {
const updatedShipment = await ShipmentsService.removeDewarFromShipmentShipmentsShipmentIdRemoveDewarDewarIdDelete(selectedShipment.id, dewarId);
const updatedShipment = await ShipmentsService.removeDewarFromShipmentShipmentsShipmentIdRemoveDewarDewarIdDelete(
selectedShipment.id,
dewarId
);
setSelectedShipment(updatedShipment);
setLocalSelectedDewar(null);
refreshShipments();
} catch (error) {
console.error('Failed to delete dewar:', error);
alert('Failed to delete dewar. Please try again.');
alert('Dewar deleted successfully!');
} catch (error: any) {
console.error('Full error object:', error);
let errorMessage = 'Failed to delete dewar. Please try again.';
if (error instanceof ApiError && error.body) {
console.error('API error body:', error.body);
errorMessage = error.body.detail || errorMessage;
} else if (error.message) {
errorMessage = error.message;
}
alert(`Failed to delete dewar: ${errorMessage}`);
}
}
};