Projekt

Obecné

Profil

Stáhnout (1.9 KB) Statistiky
| Větev: | Tag: | Revize:
1 b6f0e019 Matej Zeman
from typing import List
2
3
from fastapi import Depends, FastAPI, HTTPException, APIRouter, Form
4
from sqlalchemy.orm import Session
5
from sql_app import crud, models, schemas
6
from ..database import SessionLocal, engine
7
from fastapi import FastAPI, Request
8
from fastapi.responses import HTMLResponse
9
from fastapi.staticfiles import StaticFiles
10
from fastapi.templating import Jinja2Templates
11
12
models.Base.metadata.create_all(bind=engine)
13
14 4911f0ea Matej Zeman
# Path to html templates used in this file
15 4babde6c Matej Zeman
templates = Jinja2Templates(directory="templates/teams")
16 4911f0ea Matej Zeman
17
# prefix used for all endpoints in this file
18 b6f0e019 Matej Zeman
teams_web = APIRouter(prefix="/api/v1")
19
20
21
# Dependency
22
def get_db():
23
    db = SessionLocal()
24
    try:
25
        yield db
26
    finally:
27
        db.close()
28
29
30
@teams_web.get("/teams-web", response_class=HTMLResponse)
31
async def read_devices(request: Request, skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
32 4911f0ea Matej Zeman
    """
33
    Returns template with all teams currently saved in database
34
    """
35 b6f0e019 Matej Zeman
    teams = crud.get_teams(db, skip=skip, limit=limit)
36
    return templates.TemplateResponse("teams.html", {"request": request, "teams": teams})
37 eaf8ace4 Matej Zeman
38
39
@teams_web.get("/team-create", response_class=HTMLResponse)
40
async def team_create_web(request: Request):
41 4911f0ea Matej Zeman
    """
42
    Returns template with form for creating new team
43
    """
44 eaf8ace4 Matej Zeman
    return templates.TemplateResponse("team_create.html", {"request": request})
45
46
47
@teams_web.post("/teams-web", response_class=HTMLResponse)
48
def create_team(request: Request, name: str = Form(...), skip: int = 0, limit: int = 100,
49
                   db: Session = Depends(get_db)):
50 4911f0ea Matej Zeman
    """
51
    Endpoint called from within form for creating new team. Creates new team and returns all teams in database
52
    """
53 eaf8ace4 Matej Zeman
    team = crud.create_team(db, name)
54
    if team is None:
55
        print("something went wrong")
56
    teams = crud.get_teams(db, skip=skip, limit=limit)
57
    return templates.TemplateResponse("teams.html", {"request": request, "teams": teams})