(
flat_dependant: Dependant,
)
| 79 | |
| 80 | |
| 81 | def get_openapi_security_definitions( |
| 82 | flat_dependant: Dependant, |
| 83 | ) -> tuple[dict[str, Any], list[dict[str, Any]]]: |
| 84 | security_definitions = {} |
| 85 | # Use a dict to merge scopes for same security scheme |
| 86 | operation_security_dict: dict[str, list[str]] = {} |
| 87 | for security_dependency in flat_dependant._security_dependencies: |
| 88 | security_definition = jsonable_encoder( |
| 89 | security_dependency._security_scheme.model, |
| 90 | by_alias=True, |
| 91 | exclude_none=True, |
| 92 | ) |
| 93 | security_name = security_dependency._security_scheme.scheme_name |
| 94 | security_definitions[security_name] = security_definition |
| 95 | # Merge scopes for the same security scheme |
| 96 | if security_name not in operation_security_dict: |
| 97 | operation_security_dict[security_name] = [] |
| 98 | for scope in security_dependency.oauth_scopes or []: |
| 99 | if scope not in operation_security_dict[security_name]: |
| 100 | operation_security_dict[security_name].append(scope) |
| 101 | operation_security = [ |
| 102 | {name: scopes} for name, scopes in operation_security_dict.items() |
| 103 | ] |
| 104 | return security_definitions, operation_security |
| 105 | |
| 106 | |
| 107 | def _get_openapi_operation_parameters( |
no test coverage detected
searching dependent graphs…