accounts_post_signin.md - JinraGit/travelManager GitHub Wiki

📝 POST /accounts/signup

🧩 Funktion

Erstellt ein neues Benutzerkonto. Bei erfolgreicher Registrierung wird das Konto gespeichert.

🔐 Authentifizierung

Nicht erforderlich

📥 Request Body: AccountRequestDTO

{
  "username": "neuerBenutzer",
  "email": "[email protected]",
  "password": "geheimespasswort",
  "role": "USER"
}

📤 Response: 201 Created

{
  "message": "Account wurde erfolgreich erstellt. Falls die Rolle USER zugewiesen wurde, wird automatisch eine verknüpfte Person erstellt.",
  "account": {
    "id": 1,
    "username": "neuerBenutzer",
    "email": "[email protected]",
    "role": "USER"
  }
}

⚠️ Fehlerfälle

Status Beschreibung
400 Validierungsfehler (z. B. fehlende Felder oder ungültige Formate)
409 Benutzername oder E-Mail existieren bereits

🧠 Logik (aus AccountController#signUp)

  • Prüft, ob E-Mail oder Benutzername bereits existieren via accountService.existsByEmailOrUsername(...).
  • Erstellt ein Account-Objekt aus dem DTO via AccountMapper.fromDTO(...).
  • Übergibt Account an accountService.create(...).
  • Gibt bei Erfolg AccountResponseDTO und Info-Message zurück.