Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions templates/agent/handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,19 +35,19 @@ def get_item(item_id: str) -> dict:
Entity(id=item_id)
except ValidationError:
logger.warning("Invalid item ID provided", extra={"itemId": item_id})
return {"error": f"Invalid item ID '{item_id}'"}
return {"error": "Invalid item ID format"}

try:
item = repository.get_item(item_id)
if not item:
return {"error": f"Item {item_id} not found"}
return {"error": "Item not found"}
return Item.model_validate(item).dump()
except ValidationError as error:
logger.error("Item validation failed", extra={"itemId": item_id}, exc_info=error)
return {"error": "Internal server error"}
except Exception as error:
logger.error("Failed to get item", extra={"itemId": item_id}, exc_info=error)
return {"error": f"Failed to get item with ID '{item_id}'"}
return {"error": "Failed to get item"}


@tracer.capture_method
Expand All @@ -73,7 +73,7 @@ def create_item(item_id: str, name: str, description: str | None = None) -> dict
return {"error": "Invalid item data"}
except Exception as error:
logger.error("Failed to create item", extra={"itemId": item_id}, exc_info=error)
return {"error": f"Failed to create item with ID '{item_id}'"}
return {"error": "Failed to create item"}


@logger.inject_lambda_context
Expand Down
6 changes: 3 additions & 3 deletions templates/graphql/handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def get_item(id: str) -> dict | None:
Entity(id=id)
except ValidationError:
logger.warning("Invalid item ID provided", extra={"itemId": id})
raise RuntimeError(f"Invalid item ID '{id}'") from None
raise RuntimeError("Invalid item ID format") from None

try:
if (item := repository.get_item(id)) is None:
Expand All @@ -45,7 +45,7 @@ def get_item(id: str) -> dict | None:
logger.error(message, extra={"itemId": id}, exc_info=error)
raise RuntimeError(message) from None
except Exception as error:
message = f"Failed to get item with ID '{id}'"
message = "Failed to get item"
logger.error(message, extra={"itemId": id}, exc_info=error)
raise RuntimeError(message) from None

Expand Down Expand Up @@ -85,7 +85,7 @@ def create_item(name: str) -> dict:
raise RuntimeError("Invalid item data") from None
except Exception as error:
logger.error("Failed to create item", extra={"itemName": name}, exc_info=error)
raise RuntimeError(f"Failed to create item with name '{name}'") from None
raise RuntimeError("Failed to create item") from None


@logger.inject_lambda_context(correlation_id_path=correlation_paths.APPSYNC_RESOLVER)
Expand Down
2 changes: 1 addition & 1 deletion tests/agent/test_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ def test_error_handling_sanitization(mocker):

assert "error" in result
assert "Database connection failed" not in result["error"]
assert "Failed to get item with ID '123'" in result["error"]
assert result["error"] == "Failed to get item"


if __name__ == "__main__":
Expand Down