diff --git a/backend/internal/api/inventory.go b/backend/internal/api/inventory.go
index f1cc6fe..04ca1cf 100644
--- a/backend/internal/api/inventory.go
+++ b/backend/internal/api/inventory.go
@@ -160,7 +160,6 @@ type GetInventoryItemOutput struct {
type DeleteInventoryItemInput struct {
Header string `header:"Authorization" required:"true" example:"Bearer token"`
- UserID string `header:"userId" required:"true" example:"user-uuid"`
ID string `path:"id"`
}
@@ -347,7 +346,8 @@ func (a *api) updateInventoryItemHandler(ctx context.Context, input *UpdateInven
}
func (a *api) deleteInventoryItemHandler(ctx context.Context, input *DeleteInventoryItemInput) (*DeleteInventoryItemOutput, error) {
- err := a.inventoryRepo.Delete(ctx, input.ID, input.UserID)
+ userID, err := a.getUserIDFromHeader(input.Header)
+ err = a.inventoryRepo.Delete(ctx, input.ID, userID)
if err != nil {
return nil, err
}
diff --git a/frontend/api/inventory.ts b/frontend/api/inventory.ts
index 7c8d0f8..3847234 100644
--- a/frontend/api/inventory.ts
+++ b/frontend/api/inventory.ts
@@ -92,9 +92,32 @@ export async function deleteInventoryItem(id: string) {
try {
const response = await axiosInstance.delete("/inventory/" + id);
return response.data;
- } catch (error) {
- console.error("Error while deleting Inventory Item! " + error);
- throw new Error("Failed to deleting inventory item: " + error);
+ } catch (error: unknown) {
+ // Cast error to AxiosError to safely access response properties
+ if (error instanceof AxiosError && error.response) {
+ // Log the detailed error message
+ console.error("Error while deleting Inventory Item!");
+ console.error("Response Status:", error.response.status); // e.g., 422
+ console.error("Error Detail:", error.response.data?.detail); // Custom error message from backend
+ console.error("Full Error Response:", error.response.data); // Entire error object (including details)
+
+ // Throw a new error with a more specific message
+ throw new Error(
+ `Failed to delete inventory item: ${
+ error.response.data?.detail || error.message
+ }`
+ );
+ } else {
+ // Handle other errors (e.g., network errors or unknown errors)
+ console.error(
+ "Error while deleting Inventory Item, unknown error:",
+ error
+ );
+ throw new Error(
+ "Failed to delete inventory item: " +
+ (error instanceof Error ? error.message : "Unknown error")
+ );
+ }
}
}
export async function updateInventoryItem(
diff --git a/frontend/app/(sidebar)/inventory/delete-inventory-item.tsx b/frontend/app/(sidebar)/inventory/delete-inventory-item.tsx
index 677c095..79679c9 100644
--- a/frontend/app/(sidebar)/inventory/delete-inventory-item.tsx
+++ b/frontend/app/(sidebar)/inventory/delete-inventory-item.tsx
@@ -19,7 +19,6 @@ export function DeleteInventoryItem({ id }: { id: string }) {
mutationFn: deleteInventoryItem,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ["inventoryItems"] });
- setOpen(false); // Close dialog on success
},
onError: (error) => {
console.error("Failed to delete item:", error);
@@ -32,7 +31,7 @@ export function DeleteInventoryItem({ id }: { id: string }) {
return (
- {/* trigger button for the confirmation dialog */}
+ {/* delete confirmation dialog */}