Skip to content

parse_handler_params

faststream.specification.asyncapi.message.parse_handler_params #

parse_handler_params(call, prefix='')

Parses the handler parameters.

Source code in faststream/specification/asyncapi/message.py
def parse_handler_params(call: "CallModel", prefix: str = "") -> dict[str, Any]:
    """Parses the handler parameters."""
    model_container = getattr(call, "serializer", call)
    model = cast("type[BaseModel] | None", getattr(model_container, "model", None))
    assert model

    body = get_model_schema(
        create_model(
            model.__name__,
            **{p.field_name: (p.field_type, p.default_value) for p in call.flat_params},  # type: ignore[call-overload]
        ),
        prefix=prefix,
        exclude=tuple(call.custom_fields.keys()),
    )

    if body is None:
        return {"title": "EmptyPayload", "type": "null"}

    return body