sparckles / Robyn

Robyn is a Super Fast Async Python Web Framework with a Rust runtime.
https://robyn.tech/
BSD 2-Clause "Simplified" License
3.9k stars 198 forks source link

Response is not automatically casted when returned in before_middleware #793

Open sansyrox opened 2 months ago

sansyrox commented 2 months ago

Bug Description

@app.before_request("/upload")
def function(request: Request):
    if request.form_data.get("user_id") is None:
        return Response(description="User ID is required", status_code=400, headers={})

    return request

One needs to do this all the time

And this doesn't work

@app.before_request("/upload")
def function(request: Request):
    if request.form_data.get("user_id") is None:
        return {"message":"User ID is required"}

    return request

Or


@app.before_request("/upload")
def function(request: Request):
    if request.form_data.get("user_id") is None:
        return ("User ID is required", 400, {})

    return request

Fix this

Steps to Reproduce

No response

Your operating system

None

Your Python version (python --version)

None

Your Robyn version

None

Additional Info

No response