feat: general improvements, show wins, losses, draws (broken for clubs)

This commit is contained in:
2025-06-15 04:47:24 +02:00
parent fc1e636cfd
commit 8bc1dcb876
6 changed files with 224 additions and 56 deletions

View File

@@ -139,7 +139,7 @@ def get_matches(r = None, id_zawodnika: str | None = None, rok: int | None = Non
# GET /api/v1/player_stats
def player_stats(r = None, id_zawodnika: str | None = None):
"""
Zwraca mecze.
Zwraca statystyki gracza.
Przykład wywołania:
player_stats(r, id_zawodnika=1), tożsame z GET /api/v1/player_stats?id_zawodnika=1
player_stats(r), tożsame z GET /api/v1/player_stats
@@ -151,11 +151,10 @@ def player_stats(r = None, id_zawodnika: str | None = None):
id_zawodnika = r.args.get('id_zawodnika', 0)
# Sprawdź, czy sportowiec o podanym (lub niepodanym) id istnieje.
# Jeśli nie istnieje, wypisz wszystkie mecze.
elif not czy_sportowiec_istnieje(id_zawodnika=id_zawodnika):
return 404, "error", {"error_msg": "This sportsman has not been found in the database. Try: id_zawodnika=1"}
# Gdy sportowiec istnieje, wypisz jego mecze.
# Gdy sportowiec istnieje, wypisz jego statystyki.
else:
staty = getDb().get_basic_stats(id_zawodnika=id_zawodnika)
@@ -168,6 +167,9 @@ def player_stats(r = None, id_zawodnika: str | None = None):
'yellow_cards': staty[4],
'red_cards': staty[5],
'avg_score': staty[6],
'wins': staty[7],
'draws': staty[8],
'losses': staty[9]
}
)
print(f"zwracam staty: {response_json}")
@@ -176,27 +178,26 @@ def player_stats(r = None, id_zawodnika: str | None = None):
# GET /api/v1/robert_stats
def robert_stats(r = None, id_klubu: str | None = None):
"""
Zwraca mecze.
Zwraca statystyki Roberta w danym klubie.
Przykład wywołania:
robert_stats(r, id_zawodnika=1), tożsame z GET /api/v1/robert_stats?id_klubu=barcelona
robert_stats(r), tożsame z GET /api/v1/robert_stats
robert_stats(r, id_klubu="barcelona"), tożsame z GET /api/v1/robert_stats?id_klubu=barcelona
"""
response_json = []
if id_klubu is None:
# Gdy nie podano id wprost, sprawdź, czy podano je przez parametr.
id_klubu = r.args.get('id_klubu', 0)
id_klubu = r.args.get('id_klubu', "non-existent-club-id")
# Sprawdź, czy sportowiec o podanym (lub niepodanym) id istnieje.
# Jeśli nie istnieje, wypisz wszystkie mecze.
elif not czy_klub_istnieje(id_klubu=id_klubu):
# Sprawdź, czy klub o podanym (lub niepodanym) id istnieje.
if not czy_klub_istnieje(id_klubu=id_klubu):
return 404, "error", {"error_msg": "This club has not been found in the database. Try: id_klubu=barcelona"}
# Gdy sportowiec istnieje, wypisz jego mecze.
# Gdy klub istnieje, wypisz statystyki z tego klubu.
else:
staty = getDb().get_sportsman_club_stats(id_zawodnika=1, id_klubu=id_klubu)
# for stat in staty:
print(staty)
response_json.append({
'unique_items': staty[0],
'time_played': staty[1],
@@ -205,11 +206,46 @@ def robert_stats(r = None, id_klubu: str | None = None):
'yellow_cards': staty[4],
'red_cards': staty[5],
'avg_score': staty[6],
'wins': staty[7],
'draws': staty[8],
'losses': staty[9]
}
)
print(f"zwracam staty roberta: {response_json}")
return 200, "ok", response_json
# GET /api/v1/clubs
def clubs(r, id_klubu: str = None):
"""
Zwraca informacje o klubach.
Przykład wywołania:
clubs(r, id_klubu="barcelona"), tożsame z GET /api/v1/clubs?id_klubu=barcelona
clubs(r), tożsame z GET /api/v1/clubs
"""
response_json = []
if id_klubu is None:
# Gdy nie podano id wprost, sprawdź, czy podano je przez parametr.
id_klubu = r.args.get('id_klubu', -1)
if id_klubu == -1:
kluby = getDb().simple_select_all("kluby")
# Sprawdź, czy sportowiec o podanym (lub niepodanym) id istnieje.
# Jeśli nie istnieje, wypisz wszystkie mecze.
elif not czy_klub_istnieje(id_klubu=id_klubu):
return 404, "error", {"error_msg": "This club has not been found in the database. Try: id_klubu=barcelona"}
# Gdy sportowiec istnieje, wypisz jego mecze.
else:
kluby = getDb().simple_select_all("kluby", id_klubu=id_klubu)
for klub in kluby:
response_json.append(klub.jsonify())
print(f"zwracam kluby: {response_json}")
return 200, "ok", response_json
# GET /api/v1/debugger_halt?token=XXX...
@require_authentication
def debugger_halt(r):
@@ -266,6 +302,8 @@ def lookup(data, request):
return player_stats(r = request)
case 'robert_stats':
return robert_stats(r = request)
case 'clubs':
return clubs(r = request)
case _:
increment_bad_requests()
return not_implemented(data)