feat: use api for matches

This commit is contained in:
2025-06-13 12:04:25 +02:00
parent fce1b69893
commit fc1e636cfd
3 changed files with 112 additions and 68 deletions

View File

@@ -58,7 +58,10 @@ def __czy_x_istnieje(typ, **id):
return False
def czy_sportowiec_istnieje(id_zawodnika: str):
return __czy_x_istnieje("sportowcy", id_zawodnika=id_zawodnika)
return __czy_x_istnieje("sportowcy", id_zawodnika=int(id_zawodnika))
def czy_klub_istnieje(id_klubu: str):
return __czy_x_istnieje("kluby", id_klubu=id_klubu)
# GET /api/v1
def stub_hello():
@@ -145,16 +148,7 @@ def player_stats(r = None, id_zawodnika: str | None = None):
if id_zawodnika is None:
# Gdy nie podano id wprost, sprawdź, czy podano je przez parametr.
id_zawodnika = r.args.get('id_zawodnika', -1)
if rok is None:
# Gdy nie podano roku wprost, sprawdź, czy podano je przez parametr.
# Jeśli nie, przyjmij None (2025).
rok = r.args.get('rok', None)
# Sprawdź, czy podano jakiekolwiek ID sportowca. Jeżeli nie, wypisz wszystkie mecze.
if id_zawodnika == -1:
mecze = getDb().get_sportsman_matches(year=rok)
id_zawodnika = r.args.get('id_zawodnika', 0)
# Sprawdź, czy sportowiec o podanym (lub niepodanym) id istnieje.
# Jeśli nie istnieje, wypisz wszystkie mecze.
@@ -163,47 +157,57 @@ def player_stats(r = None, id_zawodnika: str | None = None):
# Gdy sportowiec istnieje, wypisz jego mecze.
else:
mecze = getDb().get_sportsman_matches(id_zawodnika=id_zawodnika, year=rok)
staty = getDb().get_basic_stats(id_zawodnika=id_zawodnika)
for mecz in mecze:
response_json.append(mecz.jsonify())
# print(f"zwracam mecze: {response_json}")
# for stat in staty:
response_json.append({
'unique_items': staty[0],
'time_played': staty[1],
'goals': staty[2],
'assists': staty[3],
'yellow_cards': staty[4],
'red_cards': staty[5],
'avg_score': staty[6],
}
)
print(f"zwracam staty: {response_json}")
return 200, "ok", response_json
# GET /api/v1/player_stats
def robert_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.
Przykład wywołania:
robert_stats(r), tożsame z GET /api/v1/robert_stats
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
"""
response_json = []
if id_zawodnika is None:
if id_klubu is None:
# Gdy nie podano id wprost, sprawdź, czy podano je przez parametr.
id_zawodnika = r.args.get('id_zawodnika', -1)
if rok is None:
# Gdy nie podano roku wprost, sprawdź, czy podano je przez parametr.
# Jeśli nie, przyjmij None (2025).
rok = r.args.get('rok', None)
# Sprawdź, czy podano jakiekolwiek ID sportowca. Jeżeli nie, wypisz wszystkie mecze.
if id_zawodnika == -1:
mecze = getDb().get_sportsman_matches(year=rok)
id_klubu = r.args.get('id_klubu', 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"}
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:
mecze = getDb().get_sportsman_matches(id_zawodnika=id_zawodnika, year=rok)
staty = getDb().get_sportsman_club_stats(id_zawodnika=1, id_klubu=id_klubu)
for mecz in mecze:
response_json.append(mecz.jsonify())
# print(f"zwracam mecze: {response_json}")
# for stat in staty:
response_json.append({
'unique_items': staty[0],
'time_played': staty[1],
'goals': staty[2],
'assists': staty[3],
'yellow_cards': staty[4],
'red_cards': staty[5],
'avg_score': staty[6],
}
)
print(f"zwracam staty roberta: {response_json}")
return 200, "ok", response_json
# GET /api/v1/debugger_halt?token=XXX...