(
*,
dependant: Dependant,
model_name_map: ModelNameMap,
field_mapping: dict[
tuple[ModelField, Literal["validation", "serialization"]], dict[str, Any]
],
separate_input_output_schemas: bool = True,
)
| 105 | |
| 106 | |
| 107 | def _get_openapi_operation_parameters( |
| 108 | *, |
| 109 | dependant: Dependant, |
| 110 | model_name_map: ModelNameMap, |
| 111 | field_mapping: dict[ |
| 112 | tuple[ModelField, Literal["validation", "serialization"]], dict[str, Any] |
| 113 | ], |
| 114 | separate_input_output_schemas: bool = True, |
| 115 | ) -> list[dict[str, Any]]: |
| 116 | parameters = [] |
| 117 | flat_dependant = get_flat_dependant(dependant, skip_repeats=True) |
| 118 | path_params = _get_flat_fields_from_params(flat_dependant.path_params) |
| 119 | query_params = _get_flat_fields_from_params(flat_dependant.query_params) |
| 120 | header_params = _get_flat_fields_from_params(flat_dependant.header_params) |
| 121 | cookie_params = _get_flat_fields_from_params(flat_dependant.cookie_params) |
| 122 | parameter_groups = [ |
| 123 | (ParamTypes.path, path_params), |
| 124 | (ParamTypes.query, query_params), |
| 125 | (ParamTypes.header, header_params), |
| 126 | (ParamTypes.cookie, cookie_params), |
| 127 | ] |
| 128 | default_convert_underscores = True |
| 129 | if len(flat_dependant.header_params) == 1: |
| 130 | first_field = flat_dependant.header_params[0] |
| 131 | if lenient_issubclass(first_field.field_info.annotation, BaseModel): |
| 132 | default_convert_underscores = getattr( |
| 133 | first_field.field_info, "convert_underscores", True |
| 134 | ) |
| 135 | for param_type, param_group in parameter_groups: |
| 136 | for param in param_group: |
| 137 | field_info = param.field_info |
| 138 | # field_info = cast(Param, field_info) |
| 139 | if not getattr(field_info, "include_in_schema", True): |
| 140 | continue |
| 141 | param_schema = get_schema_from_model_field( |
| 142 | field=param, |
| 143 | model_name_map=model_name_map, |
| 144 | field_mapping=field_mapping, |
| 145 | separate_input_output_schemas=separate_input_output_schemas, |
| 146 | ) |
| 147 | name = get_validation_alias(param) |
| 148 | convert_underscores = getattr( |
| 149 | param.field_info, |
| 150 | "convert_underscores", |
| 151 | default_convert_underscores, |
| 152 | ) |
| 153 | if ( |
| 154 | param_type == ParamTypes.header |
| 155 | and name == param.name |
| 156 | and convert_underscores |
| 157 | ): |
| 158 | name = param.name.replace("_", "-") |
| 159 | |
| 160 | parameter = { |
| 161 | "name": name, |
| 162 | "in": param_type.value, |
| 163 | "required": param.field_info.is_required(), |
| 164 | "schema": param_schema, |
no test coverage detected
searching dependent graphs…