Skip to content

Commit

Permalink
Enhanced error messages for models/user
Browse files Browse the repository at this point in the history
  • Loading branch information
JeevaRamanathan committed Oct 4, 2024
1 parent cb9a1d5 commit c2d3e10
Show file tree
Hide file tree
Showing 7 changed files with 123 additions and 25 deletions.
18 changes: 15 additions & 3 deletions agents-api/agents_api/models/user/create_or_update_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,21 @@

@rewrap_exceptions(
{
QueryException: partialclass(HTTPException, status_code=400),
ValidationError: partialclass(HTTPException, status_code=400),
TypeError: partialclass(HTTPException, status_code=400),
QueryException: partialclass(
HTTPException,
status_code=400,
detail="A database query failed to return the expected results. This might occur if the requested resource doesn't exist or your query parameters are incorrect.",
),
ValidationError: partialclass(
HTTPException,
status_code=400,
detail="Input validation failed. Please check the provided data for missing or incorrect fields, and ensure it matches the required format.",
),
TypeError: partialclass(
HTTPException,
status_code=400,
detail="A type mismatch occurred. This likely means the data provided is of an incorrect type (e.g., string instead of integer). Please review the input and try again.",
),
}
)
@wrap_in_class(User, one=True, transform=lambda d: {"id": UUID(d.pop("user_id")), **d})
Expand Down
21 changes: 17 additions & 4 deletions agents-api/agents_api/models/user/create_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,24 @@
lambda e: isinstance(e, QueryException)
and "asserted to return some results, but returned none"
in str(e): lambda *_: HTTPException(
detail="developer not found", status_code=403
detail="Developer not found. Please ensure the provided auth token (which refers to your developer_id) is valid and the developer has the necessary permissions to create an agent.",
status_code=403,
),
QueryException: partialclass(
HTTPException,
status_code=400,
detail="A database query failed to return the expected results. This might occur if the requested resource doesn't exist or your query parameters are incorrect.",
),
ValidationError: partialclass(
HTTPException,
status_code=400,
detail="Input validation failed. Please check the provided data for missing or incorrect fields, and ensure it matches the required format.",
),
TypeError: partialclass(
HTTPException,
status_code=400,
detail="A type mismatch occurred. This likely means the data provided is of an incorrect type (e.g., string instead of integer). Please review the input and try again.",
),
QueryException: partialclass(HTTPException, status_code=400),
ValidationError: partialclass(HTTPException, status_code=400),
TypeError: partialclass(HTTPException, status_code=400),
}
)
@wrap_in_class(
Expand Down
29 changes: 26 additions & 3 deletions agents-api/agents_api/models/user/delete_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,32 @@

@rewrap_exceptions(
{
QueryException: partialclass(HTTPException, status_code=400),
ValidationError: partialclass(HTTPException, status_code=400),
TypeError: partialclass(HTTPException, status_code=400),
lambda e: isinstance(e, QueryException)
and "Developer does not exist" in str(e): lambda *_: HTTPException(
detail="The specified developer does not exist.",
status_code=403,
),
lambda e: isinstance(e, QueryException)
and "Developer does not own resource"
in e.resp["display"]: lambda *_: HTTPException(
detail="The specified developer does not own the requested resource. Please verify the ownership or check if the developer ID is correct.",
status_code=404,
),
QueryException: partialclass(
HTTPException,
status_code=400,
detail="A database query failed to return the expected results. This might occur if the requested resource doesn't exist or your query parameters are incorrect.",
),
ValidationError: partialclass(
HTTPException,
status_code=400,
detail="Input validation failed. Please check the provided data for missing or incorrect fields, and ensure it matches the required format.",
),
TypeError: partialclass(
HTTPException,
status_code=400,
detail="A type mismatch occurred. This likely means the data provided is of an incorrect type (e.g., string instead of integer). Please review the input and try again.",
),
}
)
@wrap_in_class(
Expand Down
26 changes: 20 additions & 6 deletions agents-api/agents_api/models/user/get_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,31 @@
@rewrap_exceptions(
{
lambda e: isinstance(e, QueryException)
and "Developer not found" in str(e): lambda *_: HTTPException(
detail="developer does not exist", status_code=403
and "Developer does not exist" in str(e): lambda *_: HTTPException(
detail="The specified developer does not exist.",
status_code=403,
),
lambda e: isinstance(e, QueryException)
and "Developer does not own resource"
in e.resp["display"]: lambda *_: HTTPException(
detail="developer doesnt own resource", status_code=404
detail="The specified developer does not own the requested resource. Please verify the ownership or check if the developer ID is correct.",
status_code=404,
),
QueryException: partialclass(
HTTPException,
status_code=400,
detail="A database query failed to return the expected results. This might occur if the requested resource doesn't exist or your query parameters are incorrect.",
),
ValidationError: partialclass(
HTTPException,
status_code=400,
detail="Input validation failed. Please check the provided data for missing or incorrect fields, and ensure it matches the required format.",
),
TypeError: partialclass(
HTTPException,
status_code=400,
detail="A type mismatch occurred. This likely means the data provided is of an incorrect type (e.g., string instead of integer). Please review the input and try again.",
),
QueryException: partialclass(HTTPException, status_code=400),
ValidationError: partialclass(HTTPException, status_code=400),
TypeError: partialclass(HTTPException, status_code=400),
}
)
@wrap_in_class(User, one=True)
Expand Down
18 changes: 15 additions & 3 deletions agents-api/agents_api/models/user/list_users.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,21 @@

@rewrap_exceptions(
{
QueryException: partialclass(HTTPException, status_code=400),
ValidationError: partialclass(HTTPException, status_code=400),
TypeError: partialclass(HTTPException, status_code=400),
QueryException: partialclass(
HTTPException,
status_code=400,
detail="A database query failed to return the expected results. This might occur if the requested resource doesn't exist or your query parameters are incorrect.",
),
ValidationError: partialclass(
HTTPException,
status_code=400,
detail="Input validation failed. Please check the provided data for missing or incorrect fields, and ensure it matches the required format.",
),
TypeError: partialclass(
HTTPException,
status_code=400,
detail="A type mismatch occurred. This likely means the data provided is of an incorrect type (e.g., string instead of integer). Please review the input and try again.",
),
}
)
@wrap_in_class(User)
Expand Down
18 changes: 15 additions & 3 deletions agents-api/agents_api/models/user/patch_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,21 @@

@rewrap_exceptions(
{
QueryException: partialclass(HTTPException, status_code=400),
ValidationError: partialclass(HTTPException, status_code=400),
TypeError: partialclass(HTTPException, status_code=400),
QueryException: partialclass(
HTTPException,
status_code=400,
detail="A database query failed to return the expected results. This might occur if the requested resource doesn't exist or your query parameters are incorrect.",
),
ValidationError: partialclass(
HTTPException,
status_code=400,
detail="Input validation failed. Please check the provided data for missing or incorrect fields, and ensure it matches the required format.",
),
TypeError: partialclass(
HTTPException,
status_code=400,
detail="A type mismatch occurred. This likely means the data provided is of an incorrect type (e.g., string instead of integer). Please review the input and try again.",
),
}
)
@wrap_in_class(
Expand Down
18 changes: 15 additions & 3 deletions agents-api/agents_api/models/user/update_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,21 @@

@rewrap_exceptions(
{
QueryException: partialclass(HTTPException, status_code=400),
ValidationError: partialclass(HTTPException, status_code=400),
TypeError: partialclass(HTTPException, status_code=400),
QueryException: partialclass(
HTTPException,
status_code=400,
detail="A database query failed to return the expected results. This might occur if the requested resource doesn't exist or your query parameters are incorrect.",
),
ValidationError: partialclass(
HTTPException,
status_code=400,
detail="Input validation failed. Please check the provided data for missing or incorrect fields, and ensure it matches the required format.",
),
TypeError: partialclass(
HTTPException,
status_code=400,
detail="A type mismatch occurred. This likely means the data provided is of an incorrect type (e.g., string instead of integer). Please review the input and try again.",
),
}
)
@wrap_in_class(
Expand Down

0 comments on commit c2d3e10

Please sign in to comment.