fix bug we cannot use optional params

This commit is contained in:
Vincent Maillol
2020-11-03 12:51:27 +01:00
parent 13c19105d8
commit d866ce5358
7 changed files with 44 additions and 27 deletions

View File

@@ -5,6 +5,8 @@ from typing import Callable, Tuple
from aiohttp.web_request import BaseRequest
from pydantic import BaseModel
from .utils import is_pydantic_base_model
class AbstractInjector(metaclass=abc.ABCMeta):
"""
@@ -98,7 +100,7 @@ def _parse_func_signature(func: Callable) -> Tuple[dict, dict, dict, dict]:
if param_spec.kind is param_spec.POSITIONAL_ONLY:
path_args[param_name] = param_spec.annotation
elif param_spec.kind is param_spec.POSITIONAL_OR_KEYWORD:
if issubclass(param_spec.annotation, BaseModel):
if is_pydantic_base_model(param_spec.annotation):
body_args[param_name] = param_spec.annotation
else:
qs_args[param_name] = param_spec.annotation