Files
stockhome/backend/routes/app/users.route.js
T
2026-05-29 22:16:18 +02:00

115 lines
2.4 KiB
JavaScript

import express from "express";
import dotenv from "dotenv";
import { authenticate, generateToken } from "../../services/tokenService.js";
import {
findUser,
loginUser,
updateSettings,
getSettings,
} from "./database/users.database.js";
dotenv.config();
const router = express.Router();
router.post("/verify-token", authenticate, async (req, res) => {
res.sendStatus(200);
});
router.post("/update-app-settings", authenticate, async (req, res) => {
const appName = req.body.appName;
const currency = req.body.currency;
console.log(req.body);
const result = await updateSettings(req.body);
if (result.code === "su003") {
res.status(201).json({
success: true,
code: "su003",
data: result.data,
message: null,
});
}
if (result.code === "eu004") {
res.status(500).json({
success: false,
code: "eu004",
data: null,
message: "Unexpected server error",
});
}
});
router.get("/settings", authenticate, async (req, res) => {
const result = await getSettings();
if (result.code === "su004") {
res.status(201).json({
success: true,
code: "su004",
data: result.result,
message: null,
});
}
if (result.code === "eu005") {
res.status(500).json({
success: false,
code: "eu005",
data: null,
message: "Unexpected server error",
});
}
});
router.post("/login", async (req, res) => {
const username = req.body.username;
const password = req.body.password;
const result = await findUser(username, password);
if (result.code === "eu001") {
res.status(404).json({
success: false,
code: "eu001",
data: null,
message: "username oder password is wrong",
});
}
if (result.code === "eu002") {
res.status(403).json({
success: false,
code: "eu002",
data: null,
message: "user is deactivated",
});
}
if (result.code === "su001") {
const token = await generateToken(result.data);
const login = await loginUser(result.data.username);
if (login.code === "e003") {
res.status(500).json({
success: false,
code: "eu003",
data: null,
message: "Unexpected server error. Please contact system admin.",
});
}
res.status(202).json({
success: true,
code: "su001",
data: {
token,
},
message: "User token generated successfully",
});
}
});
export default router;