From de41fd27d1d2da164e9d3f97ea625324cf938779 Mon Sep 17 00:00:00 2001 From: OM HASE <138221910+OM-HASE@users.noreply.github.com> Date: Mon, 30 Dec 2024 09:23:12 +0530 Subject: [PATCH] Fix(Python): Add custom exceptions for HTTP status codes 409 (Conflict) and 422 (Unprocessable Entity) #20244 (#20251) * Update exceptions.mustache * Fix(Python): Add custom exceptions for HTTP status codes 409 (Conflict) and 422 (Unprocessable Entity) #20244 --- .../main/resources/python/exceptions.mustache | 17 +++++++++++++++++ .../petstore/python/petstore_api/exceptions.py | 16 ++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/modules/openapi-generator/src/main/resources/python/exceptions.mustache b/modules/openapi-generator/src/main/resources/python/exceptions.mustache index a690ceb926cb..fb2ebae0eefa 100644 --- a/modules/openapi-generator/src/main/resources/python/exceptions.mustache +++ b/modules/openapi-generator/src/main/resources/python/exceptions.mustache @@ -140,6 +140,13 @@ class ApiException(OpenApiException): if http_resp.status == 404: raise NotFoundException(http_resp=http_resp, body=body, data=data) + # Added new conditions for 409 and 422 + if http_resp.status == 409: + raise ConflictException(http_resp=http_resp, body=body, data=data) + + if http_resp.status == 422: + raise UnprocessableEntityException(http_resp=http_resp, body=body, data=data) + if 500 <= http_resp.status <= 599: raise ServiceException(http_resp=http_resp, body=body, data=data) raise ApiException(http_resp=http_resp, body=body, data=data) @@ -178,6 +185,16 @@ class ServiceException(ApiException): pass +class ConflictException(ApiException): + """Exception for HTTP 409 Conflict.""" + pass + + +class UnprocessableEntityException(ApiException): + """Exception for HTTP 422 Unprocessable Entity.""" + pass + + def render_path(path_to_item): """Returns a string representation of a path""" result = "" diff --git a/samples/openapi3/client/petstore/python/petstore_api/exceptions.py b/samples/openapi3/client/petstore/python/petstore_api/exceptions.py index 0cb484becbdb..81d2d590712f 100755 --- a/samples/openapi3/client/petstore/python/petstore_api/exceptions.py +++ b/samples/openapi3/client/petstore/python/petstore_api/exceptions.py @@ -150,6 +150,14 @@ def from_response( if http_resp.status == 404: raise NotFoundException(http_resp=http_resp, body=body, data=data) + # Added new exception classes for 409 and 422 + + if http_resp.status == 409: + raise ConflictException(http_resp=http_resp, body=body, data=data) + + if http_resp.status == 422: + raise UnprocessableEntityException(http_resp=http_resp, body=body, data=data) + if 500 <= http_resp.status <= 599: raise ServiceException(http_resp=http_resp, body=body, data=data) raise ApiException(http_resp=http_resp, body=body, data=data) @@ -183,6 +191,14 @@ class UnauthorizedException(ApiException): class ForbiddenException(ApiException): pass +class ConflictException(ApiException): + """Exception raised for HTTP 409 Conflict errors.""" + pass + + +class UnprocessableEntityException(ApiException): + """Exception raised for HTTP 422 Unprocessable Entity errors.""" + pass class ServiceException(ApiException): pass