# API Endpoints ## Benutzerverwaltung ### POST /users - **Beschreibung**: Erstellt einen neuen Benutzer. Nur für Administratoren zugänglich. - **Eingabe**: ```json { "username": "neuerBenutzer", "password": "sicheresPasswort", "role": "user" // optional } ``` - **Ausgabe**: ```json { "message": "User created!" } ``` ### POST /users/login - **Beschreibung**: Meldet einen Benutzer an und gibt ein JWT-Token zurück. - **Eingabe**: ```json { "username": "benutzername", "password": "passwort" } ``` - **Ausgabe**: ```json { "message": "Login successful!", "token": "jwt_token", "role": "user" // oder "admin" } ``` ### GET /users - **Beschreibung**: Gibt eine Liste aller Benutzer zurück. Nur für Administratoren zugänglich. - **Ausgabe**: ```json [ { "id": 1, "username": "admin", "role": "admin", "last_login": "2023-10-01 12:00:00" }, ... ] ``` ### PUT /users/ - **Beschreibung**: Aktualisiert die Informationen eines Benutzers. Nur für Administratoren zugänglich. - **Eingabe**: ```json { "username": "neuerBenutzername", "role": "admin", // optional "password": "neuesPasswort" // optional } ``` - **Ausgabe**: ```json { "message": "User updated!" } ``` ### DELETE /users/ - **Beschreibung**: Löscht einen Benutzer. Nur für Administratoren zugänglich. - **Ausgabe**: ```json { "message": "User deleted!" } ``` ### PUT /users/change_password - **Beschreibung**: Ändert das Passwort des angemeldeten Benutzers. - **Eingabe**: ```json { "current_password": "aktuellesPasswort", "new_password": "neuesPasswort" } ``` - **Ausgabe**: ```json { "message": "Password changed successfully!" } ``` ## Spieleverwaltung ### POST /games - **Beschreibung**: Fügt ein neues Spiel zur Sammlung hinzu. - **Eingabe**: ```json { "title": "Spiel Titel", "image": "https://example.com/image.jpg" } ``` - **Ausgabe**: ```json { "message": "Game added!" } ``` ### GET /games - **Beschreibung**: Gibt eine Liste aller Spiele in der Sammlung zurück. - **Ausgabe**: ```json [ { "id": 1, "image": "base64_encoded_image", "title": "Spiel Titel", "date": "2023-10-01", "buyer": "benutzername", "owned": true }, ... ] ``` ### DELETE /games/ - **Beschreibung**: Löscht ein Spiel aus der Sammlung. - **Ausgabe**: ```json { "message": "Game deleted!" } ``` ### GET /games/search - **Beschreibung**: Sucht nach Spielen basierend auf einem Suchbegriff. - **Ausgabe**: ```json [ { "title": "Spiel Titel", "link": "https://example.com/game", "image_link": "https://example.com/image.jpg", "release_date": "2023-10-01", "price": "$59.99", "rating": "5/5" }, ... ] ```