1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
"""OpenAPI core unmarshalling processors module"""
from openapi_core.typing import RequestType
from openapi_core.typing import ResponseType
from openapi_core.unmarshalling.integrations import (
AsyncUnmarshallingIntegration,
)
from openapi_core.unmarshalling.integrations import UnmarshallingIntegration
from openapi_core.unmarshalling.typing import AsyncValidRequestHandlerCallable
from openapi_core.unmarshalling.typing import ErrorsHandlerCallable
from openapi_core.unmarshalling.typing import ValidRequestHandlerCallable
class UnmarshallingProcessor(
UnmarshallingIntegration[RequestType, ResponseType]
):
def handle_request(
self,
request: RequestType,
valid_handler: ValidRequestHandlerCallable[ResponseType],
errors_handler: ErrorsHandlerCallable[ResponseType],
) -> ResponseType:
request_unmarshal_result = self.unmarshal_request(
request,
)
if request_unmarshal_result.errors:
return errors_handler(request_unmarshal_result.errors)
return valid_handler(request_unmarshal_result)
def handle_response(
self,
request: RequestType,
response: ResponseType,
errors_handler: ErrorsHandlerCallable[ResponseType],
) -> ResponseType:
response_unmarshal_result = self.unmarshal_response(request, response)
if response_unmarshal_result.errors:
return errors_handler(response_unmarshal_result.errors)
return response
class AsyncUnmarshallingProcessor(
AsyncUnmarshallingIntegration[RequestType, ResponseType]
):
async def handle_request(
self,
request: RequestType,
valid_handler: AsyncValidRequestHandlerCallable[ResponseType],
errors_handler: ErrorsHandlerCallable[ResponseType],
) -> ResponseType:
request_unmarshal_result = await self.unmarshal_request(request)
if request_unmarshal_result.errors:
return errors_handler(request_unmarshal_result.errors)
result = await valid_handler(request_unmarshal_result)
return result
async def handle_response(
self,
request: RequestType,
response: ResponseType,
errors_handler: ErrorsHandlerCallable[ResponseType],
) -> ResponseType:
response_unmarshal_result = await self.unmarshal_response(
request, response
)
if response_unmarshal_result.errors:
return errors_handler(response_unmarshal_result.errors)
return response
|