summaryrefslogtreecommitdiff
path: root/backend/src/controllers/loginUser.ts
diff options
context:
space:
mode:
authorArne Rief <riearn@proton.me>2025-12-22 21:20:39 +0100
committerArne Rief <riearn@proton.me>2025-12-22 21:20:39 +0100
commite836e7dd4ed5e9fa60e949d159100040b22a8f48 (patch)
treea11954c06e55e8ef53fcb634fa5954dfcb42ffc3 /backend/src/controllers/loginUser.ts
parentd1b64ddd78d8b8dc3eca76038a75071ab2a575d9 (diff)
Movement simulator for all and single robot, project v1 ready
Diffstat (limited to 'backend/src/controllers/loginUser.ts')
-rw-r--r--backend/src/controllers/loginUser.ts32
1 files changed, 21 insertions, 11 deletions
diff --git a/backend/src/controllers/loginUser.ts b/backend/src/controllers/loginUser.ts
index 860bce2..9cfb992 100644
--- a/backend/src/controllers/loginUser.ts
+++ b/backend/src/controllers/loginUser.ts
@@ -3,15 +3,20 @@ import { Request, Response } from "express";
import jwt from "jsonwebtoken";
import { QueryResult } from "pg";
import db from "../database/postgres.js";
+import { ErrorResponse } from "../types/error.js";
import type { LoginRequest } from "../types/request.js";
-import type { AuthorizedUser, DatabaseUser } from "../types/user.js";
+import type {
+ AuthorizedUser,
+ DatabaseUser,
+ LoginResponse,
+} from "../types/user.js";
async function loginUser(req: Request, res: Response) {
const { email, password } = req.body as LoginRequest;
if (!email || !password) {
return res.status(400).json({
- message: "E-Mail und Passwort sind erforderlich.",
+ message: "E-mail and password are required.",
});
}
@@ -25,7 +30,7 @@ async function loginUser(req: Request, res: Response) {
const user = queryResult.rows[0];
if (!user) {
- return res.status(401).json({ message: "Login Daten ungültig." });
+ return res.status(401).json({ message: "Login data invalid." });
}
// Check if password is correct
@@ -36,7 +41,7 @@ async function loginUser(req: Request, res: Response) {
if (!isValidPassword) {
return res.status(401).json({
- message: "Das Passwort ist nicht korrekt.",
+ message: "The password is incorrect.",
});
}
@@ -49,16 +54,21 @@ async function loginUser(req: Request, res: Response) {
// Create token for authentication
const token = jwt.sign(userData, process.env.JWT_SECRET!);
- return res.status(200).json({
- message: "Erfolgreiche Anmeldung.",
+ const loginResponse: LoginResponse = {
+ message: "Successful login.",
user: userData,
token,
- });
+ };
+
+ return res.status(200).json(loginResponse);
} catch (error) {
- console.error("Fehler beim Login: ", error);
- return res
- .status(500)
- .json({ message: "Interner Serverfehler beim Login.", error });
+ console.error("Error on login attempt: ", error);
+
+ const errorResponse: ErrorResponse = {
+ message: "Internal server error on login attempt.",
+ error,
+ };
+ return res.status(500).json(errorResponse);
}
}