From 72b2cc04af6b6bc0b051273c6efae891c77d059f Mon Sep 17 00:00:00 2001
From: Victoria Badeke <victoria.badeke@mni.thm.de>
Date: Fri, 24 Jan 2025 12:58:15 +0100
Subject: [PATCH] datenbank

---
 userman_all/server/doc/index.html | 20 ++++++-------
 userman_all/server/src/server.ts  | 47 +++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+), 10 deletions(-)

diff --git a/userman_all/server/doc/index.html b/userman_all/server/doc/index.html
index 52f0d40..0248141 100644
--- a/userman_all/server/doc/index.html
+++ b/userman_all/server/doc/index.html
@@ -5,15 +5,15 @@
   <meta name="description" content="horizon changers website">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-  <link href="assets/bootstrap.min.css?v=1737716477426" rel="stylesheet" media="screen">
-  <link href="assets/prism.css?v=1737716477426" rel="stylesheet" />
-  <link href="assets/prism-toolbar.css?v=1737716477426" rel="stylesheet" />
-  <link href="assets/prism-diff-highlight.css?v=1737716477426" rel="stylesheet" />
-  <link href="assets/main.css?v=1737716477426" rel="stylesheet" media="screen, print">
-  <link href="assets/favicon.ico?v=1737716477426" rel="icon" type="image/x-icon">
-  <link href="assets/apple-touch-icon.png?v=1737716477426" rel="apple-touch-icon" sizes="180x180">
-  <link href="assets/favicon-32x32.png?v=1737716477426" rel="icon" type="image/png" sizes="32x32">
-  <link href="assets/favicon-16x16.png?v=1737716477426" rel="icon" type="image/png" sizes="16x16">
+  <link href="assets/bootstrap.min.css?v=1737719621971" rel="stylesheet" media="screen">
+  <link href="assets/prism.css?v=1737719621971" rel="stylesheet" />
+  <link href="assets/prism-toolbar.css?v=1737719621971" rel="stylesheet" />
+  <link href="assets/prism-diff-highlight.css?v=1737719621971" rel="stylesheet" />
+  <link href="assets/main.css?v=1737719621971" rel="stylesheet" media="screen, print">
+  <link href="assets/favicon.ico?v=1737719621971" rel="icon" type="image/x-icon">
+  <link href="assets/apple-touch-icon.png?v=1737719621971" rel="apple-touch-icon" sizes="180x180">
+  <link href="assets/favicon-32x32.png?v=1737719621971" rel="icon" type="image/png" sizes="32x32">
+  <link href="assets/favicon-16x16.png?v=1737719621971" rel="icon" type="image/png" sizes="16x16">
 </head>
 
 <body class="container-fluid">
@@ -1042,6 +1042,6 @@
   </div>
 </div>
 
-<script src="assets/main.bundle.js?v=1737709870186"></script>
+<script src="assets/main.bundle.js?v=1737719621971"></script>
 </body>
 </html>
diff --git a/userman_all/server/src/server.ts b/userman_all/server/src/server.ts
index 801b0a2..33bb7c1 100644
--- a/userman_all/server/src/server.ts
+++ b/userman_all/server/src/server.ts
@@ -594,6 +594,53 @@ app.put('/user', isLoggedIn, async (req: Request, res: Response): Promise<void>
   }
 });
 
+/**
+ * @api {put} /user/:userId Aktualisiere Benutzerdaten
+ * @apiName UpdateUser
+ * @apiGroup Admin
+ * @apiPermission loggedIn
+ *
+ * @apiDescription Diese Route ermöglicht es dem Admin, die Daten eines bestimmten Benutzers zu aktualisieren.
+ * Der Admin muss eingeloggt sein, um diese Route nutzen zu können.
+ *
+ * @apiParam {Number} userId Die ID des zu aktualisierenden Benutzers. (Pflichtfeld)
+ *
+ * @apiBody {String} firstName Vorname des Benutzers. (Pflichtfeld)
+ * @apiBody {String} lastName Nachname des Benutzers. (Pflichtfeld)
+ * @apiBody {String} eMail E-Mail-Adresse des Benutzers. (Pflichtfeld)
+ * @apiBody {String} adress Adresse des Benutzers. (Optional)
+ * @apiBody {String} role Rolle des Benutzers. (Pflichtfeld)
+ *
+ * @apiSuccess {String} message Erfolgsmeldung, dass die Benutzerdaten erfolgreich aktualisiert wurden.
+ *
+ * @apiError {Number} 400 Fehlende Pflichtfelder: Es wurden nicht alle erforderlichen Felder ausgefüllt.
+ * @apiError {Number} 404 Benutzer nicht gefunden: Der Benutzer konnte in der Datenbank nicht gefunden werden.
+ * @apiError {Number} 500 Datenbankfehler: Es gab ein Problem mit der Datenbankanfrage.
+ *
+ * @apiSuccessExample Success-Response:
+ *     HTTP/1.1 200 OK
+ *     {
+ *       "message": "Successfully updated user John Doe"
+ *     }
+ *
+ * @apiErrorExample {json} Fehlende Pflichtfelder:
+ *     HTTP/1.1 400 Bad Request
+ *     {
+ *       "message": "Not all mandatory fields are filled in"
+ *     }
+ *
+ * @apiErrorExample {json} Benutzer nicht gefunden:
+ *     HTTP/1.1 404 Not Found
+ *     {
+ *       "message": "The user to update could not be found"
+ *     }
+ *
+ * @apiErrorExample {json} Datenbankfehler:
+ *     HTTP/1.1 500 Internal Server Error
+ *     {
+ *       "message": "Database request failed: [Fehlermeldung]"
+ *     }
+ */
 // update route admin
 app.put('/user/:userId', isLoggedIn, async (req: Request, res: Response): Promise<void> => {
   console.log(req.body);
-- 
GitLab