Compare commits
2 Commits
d9ad903798
...
a97eee842e
Author | SHA1 | Date | |
---|---|---|---|
a97eee842e | |||
ab3ed9b497 |
@ -17,7 +17,7 @@ matplotlib.use("agg")
|
|||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
|
|
||||||
analysis_router = APIRouter(prefix="/analysis")
|
analysis_router = APIRouter(prefix="/analysis", tags=["analysis"])
|
||||||
|
|
||||||
|
|
||||||
C = Chemistry
|
C = Chemistry
|
||||||
@ -264,7 +264,7 @@ def mvp(
|
|||||||
analysis_router.add_api_route(
|
analysis_router.add_api_route(
|
||||||
"/graph_json/{team_id}", endpoint=graph_json, methods=["GET"]
|
"/graph_json/{team_id}", endpoint=graph_json, methods=["GET"]
|
||||||
)
|
)
|
||||||
analysis_router.add_api_route("/image", endpoint=render_sociogram, methods=["POST"])
|
# analysis_router.add_api_route("/image", endpoint=render_sociogram, methods=["POST"])
|
||||||
analysis_router.add_api_route("/mvp/{team_id}", endpoint=mvp, methods=["GET"])
|
analysis_router.add_api_route("/mvp/{team_id}", endpoint=mvp, methods=["GET"])
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
13
cutt/main.py
13
cutt/main.py
@ -22,7 +22,9 @@ C = Chemistry
|
|||||||
R = MVPRanking
|
R = MVPRanking
|
||||||
P = Player
|
P = Player
|
||||||
|
|
||||||
app = FastAPI(title="cutt")
|
app = FastAPI(
|
||||||
|
title="cutt", swagger_ui_parameters={"syntaxHighlight": {"theme": "monokai"}}
|
||||||
|
)
|
||||||
api_router = APIRouter(prefix="/api")
|
api_router = APIRouter(prefix="/api")
|
||||||
origins = [
|
origins = [
|
||||||
"https://cutt.0124816.xyz",
|
"https://cutt.0124816.xyz",
|
||||||
@ -53,6 +55,7 @@ def list_teams():
|
|||||||
team_router = APIRouter(
|
team_router = APIRouter(
|
||||||
prefix="/team",
|
prefix="/team",
|
||||||
dependencies=[Security(get_current_active_user, scopes=["admin"])],
|
dependencies=[Security(get_current_active_user, scopes=["admin"])],
|
||||||
|
tags=["team"],
|
||||||
)
|
)
|
||||||
team_router.add_api_route("/list", endpoint=list_teams, methods=["GET"])
|
team_router.add_api_route("/list", endpoint=list_teams, methods=["GET"])
|
||||||
team_router.add_api_route("/add", endpoint=add_team, methods=["POST"])
|
team_router.add_api_route("/add", endpoint=add_team, methods=["POST"])
|
||||||
@ -67,7 +70,7 @@ somethings_fishy = HTTPException(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@api_router.put("/mvps")
|
@api_router.put("/mvps", tags=["analysis"])
|
||||||
def submit_mvps(
|
def submit_mvps(
|
||||||
mvps: MVPRanking,
|
mvps: MVPRanking,
|
||||||
user: Annotated[Player, Depends(get_current_active_user)],
|
user: Annotated[Player, Depends(get_current_active_user)],
|
||||||
@ -87,7 +90,7 @@ def submit_mvps(
|
|||||||
raise wrong_user_id_exception
|
raise wrong_user_id_exception
|
||||||
|
|
||||||
|
|
||||||
@api_router.get("/mvps")
|
@api_router.get("/mvps", tags=["analysis"])
|
||||||
def get_mvps(
|
def get_mvps(
|
||||||
user: Annotated[Player, Depends(get_current_active_user)],
|
user: Annotated[Player, Depends(get_current_active_user)],
|
||||||
):
|
):
|
||||||
@ -111,7 +114,7 @@ def get_mvps(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@api_router.put("/chemistry")
|
@api_router.put("/chemistry", tags=["analysis"])
|
||||||
def submit_chemistry(
|
def submit_chemistry(
|
||||||
chemistry: Chemistry, user: Annotated[Player, Depends(get_current_active_user)]
|
chemistry: Chemistry, user: Annotated[Player, Depends(get_current_active_user)]
|
||||||
):
|
):
|
||||||
@ -132,7 +135,7 @@ def submit_chemistry(
|
|||||||
raise wrong_user_id_exception
|
raise wrong_user_id_exception
|
||||||
|
|
||||||
|
|
||||||
@api_router.get("/chemistry")
|
@api_router.get("/chemistry", tags=["analysis"])
|
||||||
def get_chemistry(user: Annotated[Player, Depends(get_current_active_user)]):
|
def get_chemistry(user: Annotated[Player, Depends(get_current_active_user)]):
|
||||||
with Session(engine) as session:
|
with Session(engine) as session:
|
||||||
subquery = (
|
subquery = (
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
from fastapi import APIRouter, Depends
|
from fastapi import APIRouter, Depends, Security
|
||||||
|
from fastapi.responses import PlainTextResponse
|
||||||
from sqlmodel import Session, select
|
from sqlmodel import Session, select
|
||||||
|
|
||||||
from cutt.db import Player, Team, engine
|
from cutt.db import Player, Team, engine
|
||||||
@ -7,6 +8,8 @@ from cutt.security import change_password, get_current_active_user, read_player_
|
|||||||
|
|
||||||
P = Player
|
P = Player
|
||||||
|
|
||||||
|
player_router = APIRouter(prefix="/player", tags=["player"])
|
||||||
|
|
||||||
|
|
||||||
def add_player(player: P):
|
def add_player(player: P):
|
||||||
with Session(engine) as session:
|
with Session(engine) as session:
|
||||||
@ -14,6 +17,19 @@ def add_player(player: P):
|
|||||||
session.commit()
|
session.commit()
|
||||||
|
|
||||||
|
|
||||||
|
def add_player_to_team(player_id: int, team_id: int):
|
||||||
|
with Session(engine) as session:
|
||||||
|
player = session.exec(select(P).where(P.id == player_id)).one()
|
||||||
|
team = session.exec(select(Team).where(Team.id == team_id)).one()
|
||||||
|
if player and team:
|
||||||
|
team.players.append(player)
|
||||||
|
session.add(team)
|
||||||
|
session.commit()
|
||||||
|
return PlainTextResponse(
|
||||||
|
f"added {player.display_name} ({player.username}) to {team.name}"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def add_players(players: list[P]):
|
def add_players(players: list[P]):
|
||||||
with Session(engine) as session:
|
with Session(engine) as session:
|
||||||
for player in players:
|
for player in players:
|
||||||
@ -21,6 +37,11 @@ def add_players(players: list[P]):
|
|||||||
session.commit()
|
session.commit()
|
||||||
|
|
||||||
|
|
||||||
|
async def list_all_players():
|
||||||
|
with Session(engine) as session:
|
||||||
|
return session.exec(select(P)).all()
|
||||||
|
|
||||||
|
|
||||||
async def list_players(team_id: int):
|
async def list_players(team_id: int):
|
||||||
with Session(engine) as session:
|
with Session(engine) as session:
|
||||||
statement = select(Team).where(Team.id == team_id)
|
statement = select(Team).where(Team.id == team_id)
|
||||||
@ -32,14 +53,35 @@ async def list_players(team_id: int):
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
async def read_teams_me(user: Annotated[P, Depends(get_current_active_user)]):
|
def read_teams_me(user: Annotated[P, Depends(get_current_active_user)]):
|
||||||
with Session(engine) as session:
|
with Session(engine) as session:
|
||||||
return [p.teams for p in session.exec(select(P).where(P.id == user.id))][0]
|
return [p.teams for p in session.exec(select(P).where(P.id == user.id))][0]
|
||||||
|
|
||||||
|
|
||||||
player_router = APIRouter(prefix="/player")
|
player_router.add_api_route(
|
||||||
player_router.add_api_route("/list/{team_id}", endpoint=list_players, methods=["GET"])
|
"/add",
|
||||||
player_router.add_api_route("/add", endpoint=add_player, methods=["POST"])
|
endpoint=add_player,
|
||||||
|
methods=["POST"],
|
||||||
|
dependencies=[Security(get_current_active_user, scopes=["admin"])],
|
||||||
|
)
|
||||||
|
player_router.add_api_route(
|
||||||
|
"/list/{team_id}",
|
||||||
|
endpoint=list_players,
|
||||||
|
methods=["GET"],
|
||||||
|
dependencies=[Depends(get_current_active_user)],
|
||||||
|
)
|
||||||
|
player_router.add_api_route(
|
||||||
|
"/list",
|
||||||
|
endpoint=list_all_players,
|
||||||
|
methods=["GET"],
|
||||||
|
dependencies=[Security(get_current_active_user, scopes=["admin"])],
|
||||||
|
)
|
||||||
|
player_router.add_api_route(
|
||||||
|
"/add/{player_id}/{team_id}",
|
||||||
|
endpoint=add_player_to_team,
|
||||||
|
methods=["GET"],
|
||||||
|
dependencies=[Security(get_current_active_user, scopes=["admin"])],
|
||||||
|
)
|
||||||
player_router.add_api_route("/me", endpoint=read_player_me, methods=["GET"])
|
player_router.add_api_route("/me", endpoint=read_player_me, methods=["GET"])
|
||||||
player_router.add_api_route("/me/teams", endpoint=read_teams_me, methods=["GET"])
|
player_router.add_api_route("/me/teams", endpoint=read_teams_me, methods=["GET"])
|
||||||
player_router.add_api_route(
|
player_router.add_api_route(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user