feat: return matches with respect to received sportsman id

also include a comment in the database model to include a relation
This commit is contained in:
2025-06-12 20:36:10 +02:00
parent a25be482b0
commit e80ee6bf8f
2 changed files with 74 additions and 10 deletions

View File

@@ -50,6 +50,16 @@ def not_implemented(data):
# TODO: change list to string -> data, not data[0]
return 501, f"not recognised/implemented: {data[0]}", []
def __czy_x_istnieje(typ, **id):
rekord = getDb().simple_select_all(typ, **id)
if rekord is not None and rekord != []:
return True
else:
return False
def czy_sportowiec_istnieje(id_zawodnika: str):
return __czy_x_istnieje("sportowcy", id_zawodnika=id_zawodnika)
# GET /api/v1
def stub_hello():
"""
@@ -85,15 +95,36 @@ def stats():
return 200, "ok", data_to_send
# GET /api/v1/matches
def get_matches(r):
def get_matches(r, id_zawodnika: str | None = None):
"""
TODO: Zwraca mecze.
Zwraca mecze.
Przykład wywołania:
get_matches(r, id_zawodnika=1), tożsame z GET /api/v1/matches?id_zawodnika=1
get_matches(r), tożsame z GET /api/v1/matches
"""
response_json = []
mecze = getDb().simple_select_all("mecze")
mecze = 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)
# Sprawdź, czy podano jakiekolwiek ID sportowca. Jeżeli nie, wypisz wszystkie mecze.
if id_zawodnika == -1:
mecze = getDb().simple_select_all("mecze")
# 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.
else:
mecze = getDb().get_sportsman_matches(id_zawodnika=id_zawodnika)
for mecz in mecze:
response_json.append(mecz.jsonify())
print(response_json)
# print(f"zwracam mecze: {response_json}")
return 200, "ok", response_json
# GET /api/v1/debugger_halt?token=XXX...