diff --git a/scorometer/main.py b/scorometer/main.py index cbee042..a4e698c 100755 --- a/scorometer/main.py +++ b/scorometer/main.py @@ -196,7 +196,12 @@ def handleStartMessage(start_message): song_id = start_message["id"] # TODO: use something secure here but I don't find sending a jwt something elegant. user_id = start_message["user_id"] - song_path = requests.get(f"{BACK_URL}/song/{song_id}").json()["midiPath"];song_path = song_path.replace("/musics/", MUSICS_FOLDER) + try: + song_path = requests.get(f"{BACK_URL}/song/{song_id}").json()["midiPath"];song_path = song_path.replace("/musics/", MUSICS_FOLDER) + except Exception: + fatal("invalid song id") + send({"error": "Invalid song id"}) + exit() return mode, song_path, song_id, user_id diff --git a/scorometer/tests/invalid_song/input b/scorometer/tests/invalid_song/input new file mode 100644 index 0000000..ee1fddc --- /dev/null +++ b/scorometer/tests/invalid_song/input @@ -0,0 +1,2 @@ +{"type":"start", "id": 0, "mode": "normal", "user_id": 1} + diff --git a/scorometer/tests/invalid_song/output b/scorometer/tests/invalid_song/output new file mode 100644 index 0000000..03c7733 --- /dev/null +++ b/scorometer/tests/invalid_song/output @@ -0,0 +1 @@ +{"error": "Invalid song id"}