accounts_post_admin_create.md - JinraGit/travelManager GitHub Wiki

🛠️ POST /accounts/admin/create

🧩 Funktion

Erstellt ein neues Benutzerkonto mit einer definierten Rolle (USER, ADMIN). Nur für Administratoren zugänglich.

🔐 Authentifizierung

Erforderlich (ADMIN)

📥 Request Body: AccountRequestDTO

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

📤 Response: 201 Created

{
  "id": 3,
  "username": "user",
  "email": "[email protected]",
  "role": "USER"
}

⚠️ Fehlerfälle

Status Beschreibung
400 Validierungsfehler im Request
409 Benutzername oder E-Mail bereits vergeben

🧠 Logik (aus AccountController#createAccountAsAdmin)

  • Prüft, ob Benutzername oder E-Mail bereits existieren via accountService.existsByEmailOrUsername(...).
  • Erstellt Account-Objekt aus DTO via AccountMapper.fromDTO(...).
  • Übergibt Account mit Zielrolle an accountService.createWithRole(...).
  • Gibt den AccountResponseDTO als Ergebnis zurück.

🧪 Hinweise

  • Ausschließlich für Admins im Kontext Benutzerverwaltung.
  • Das Setzen der Rolle ist Pflicht und wird serverseitig übernommen.