"""
A simple webserver, used as a tool to showcase the capabilities of
ClearML HTTP router. See `http_router.py` for more details.
"""


from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import uvicorn

app = FastAPI()

actions = {
    "1": {"name": "Action 1", "description": "This is model action 1"},
    "2": {"name": "Action 2", "description": "This is model action 2"},
    "3": {"name": "Action 3", "description": "This is model action 3"},
}


class Item(BaseModel):
    name: str
    description: str


@app.get("/")
def read_root():
    return {"message": "Welcome to the FastAPI application!"}


@app.get("/serve/{action}", response_model=Item)
def read_item(action: str):
    if action in actions:
        return actions[action]
    else:
        raise HTTPException(status_code=404, detail="Item not found")


if __name__ == "__main__":
    uvicorn.run(
        "simple_webserver:app",
        host="127.0.0.1",
        port=8000,
        reload=True
    )