refactor: change backend to typescript and update types and variables accordingly
This commit is contained in:
@@ -2,6 +2,7 @@ import express from "express";
|
||||
import dotenv from "dotenv";
|
||||
import {authenticate, generateToken} from "../../services/tokenService.js";
|
||||
import {changePassword, findUser, getSettings, loginUser, updateSettings,} from "./database/users.database.ts";
|
||||
import {GENERAL_ERROR_CODE, USER_ERROR_CODE} from "@stockhome/shared";
|
||||
|
||||
dotenv.config();
|
||||
const router = express.Router();
|
||||
@@ -11,42 +12,71 @@ router.post("/verify-token", authenticate, async (req, res) => {
|
||||
});
|
||||
|
||||
router.post("/update-app-settings", authenticate, async (req, res) => {
|
||||
const result = await updateSettings(req.body);
|
||||
const values = req.body;
|
||||
|
||||
if (result.code === "su003") {
|
||||
if (!values || Object.keys(values).length === 0) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
code: USER_ERROR_CODE.INVALID_REQUEST_BODY[0],
|
||||
data: null,
|
||||
message: USER_ERROR_CODE.INVALID_REQUEST_BODY[1],
|
||||
});
|
||||
}
|
||||
|
||||
const result = await updateSettings(values);
|
||||
|
||||
if (!result) {
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
code: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[0],
|
||||
data: null,
|
||||
message: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[1],
|
||||
});
|
||||
}
|
||||
|
||||
if (result.code === "SU003") {
|
||||
return res.status(201).json({
|
||||
success: true,
|
||||
code: "su003",
|
||||
code: result.code,
|
||||
data: result.data,
|
||||
message: null,
|
||||
message: result.message,
|
||||
});
|
||||
}
|
||||
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
code: result.code,
|
||||
code: result.code || GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[0],
|
||||
data: null,
|
||||
message: result.message,
|
||||
message: result.message || GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[1],
|
||||
});
|
||||
});
|
||||
|
||||
router.get("/settings", authenticate, async (req, res) => {
|
||||
const result = await getSettings();
|
||||
|
||||
if (result.code === "su004") {
|
||||
if (!result) {
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
code: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[0],
|
||||
data: null,
|
||||
message: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[1],
|
||||
});
|
||||
}
|
||||
|
||||
if (result.code === "SU004") {
|
||||
return res.status(200).json({
|
||||
success: true,
|
||||
code: "su004",
|
||||
code: result.code,
|
||||
data: result.data,
|
||||
message: null,
|
||||
message: result.message,
|
||||
});
|
||||
}
|
||||
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
code: result.code,
|
||||
code: result.code || GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[0],
|
||||
data: null,
|
||||
message: result.message,
|
||||
message: result.message || GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[1],
|
||||
});
|
||||
});
|
||||
|
||||
@@ -54,9 +84,27 @@ router.post("/login", async (req, res) => {
|
||||
const username = req.body.username;
|
||||
const password = req.body.password;
|
||||
|
||||
if (!username || !password) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
code: USER_ERROR_CODE.INVALID_REQUEST_BODY[0],
|
||||
data: null,
|
||||
message: USER_ERROR_CODE.INVALID_REQUEST_BODY[1],
|
||||
});
|
||||
}
|
||||
|
||||
const result = await findUser(username, password);
|
||||
|
||||
if (result.code === "EU001") {
|
||||
if (!result) {
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
code: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[0],
|
||||
data: null,
|
||||
message: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[1],
|
||||
});
|
||||
}
|
||||
|
||||
if (result.code === USER_ERROR_CODE.WRONG_USERNAME_PASSWORD[0]) {
|
||||
return res.status(404).json({
|
||||
success: false,
|
||||
code: result.code,
|
||||
@@ -65,7 +113,7 @@ router.post("/login", async (req, res) => {
|
||||
});
|
||||
}
|
||||
|
||||
if (result.code === "EU002") {
|
||||
if (result.code === USER_ERROR_CODE.USER_IS_DEACTIVATED[0]) {
|
||||
return res.status(403).json({
|
||||
success: false,
|
||||
code: result.code,
|
||||
@@ -74,22 +122,59 @@ router.post("/login", async (req, res) => {
|
||||
});
|
||||
}
|
||||
|
||||
if (result.code === "su001") {
|
||||
const token = await generateToken(result.data);
|
||||
const login = await loginUser(result.data.username);
|
||||
|
||||
if (login.code !== "su002") {
|
||||
if (result.code === "SU001") {
|
||||
if (!result.data) {
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
code: login.code,
|
||||
code: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[0],
|
||||
data: null,
|
||||
message: login.message,
|
||||
message: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[1],
|
||||
});
|
||||
}
|
||||
|
||||
const token = await generateToken(result.data);
|
||||
|
||||
if (!token) {
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
code: USER_ERROR_CODE.TOKEN_GENERATION_FAILED[0],
|
||||
data: null,
|
||||
message: USER_ERROR_CODE.TOKEN_GENERATION_FAILED[1],
|
||||
});
|
||||
}
|
||||
|
||||
if (!result.data) {
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
code: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[0],
|
||||
data: null,
|
||||
message: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[1],
|
||||
});
|
||||
}
|
||||
|
||||
const login = await loginUser(result.data.username);
|
||||
|
||||
if (!login) {
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
code: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[0],
|
||||
data: null,
|
||||
message: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[1],
|
||||
});
|
||||
}
|
||||
|
||||
if (login.code !== "SU002") {
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
code: login.code || USER_ERROR_CODE.LOGIN_FAILED[0],
|
||||
data: null,
|
||||
message: login.message || USER_ERROR_CODE.LOGIN_FAILED[1],
|
||||
});
|
||||
}
|
||||
|
||||
return res.status(202).json({
|
||||
success: true,
|
||||
code: "su001",
|
||||
code: "SU001",
|
||||
data: {
|
||||
token,
|
||||
},
|
||||
@@ -99,31 +184,62 @@ router.post("/login", async (req, res) => {
|
||||
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
code: result.code,
|
||||
code: result.code || GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[0],
|
||||
data: null,
|
||||
message: result.message,
|
||||
message: result.message || GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[1],
|
||||
});
|
||||
});
|
||||
|
||||
router.post("/change-password", authenticate, async (req, res) => {
|
||||
const currentPassword = req.body.currentPassword;
|
||||
const newPassword = req.body.newPassword;
|
||||
|
||||
if (!req.user) {
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
code: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[0],
|
||||
data: null,
|
||||
message: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[1],
|
||||
});
|
||||
}
|
||||
|
||||
const username = req.user.username;
|
||||
|
||||
if (!currentPassword || !newPassword) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
code: USER_ERROR_CODE.INVALID_REQUEST_BODY[0],
|
||||
data: null,
|
||||
message: USER_ERROR_CODE.INVALID_REQUEST_BODY[1],
|
||||
});
|
||||
}
|
||||
|
||||
const result = await changePassword(username, currentPassword, newPassword);
|
||||
|
||||
if (result.code === "su005") {
|
||||
if (!result) {
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
code: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[0],
|
||||
data: null,
|
||||
message: GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[1],
|
||||
});
|
||||
}
|
||||
|
||||
if (result.code === "SU005") {
|
||||
return res.status(202).json({
|
||||
success: true,
|
||||
code: result.code,
|
||||
data: null,
|
||||
message: result.message,
|
||||
});
|
||||
}
|
||||
|
||||
return res.status(500).json({
|
||||
success: false,
|
||||
code: result.code,
|
||||
message: result.message,
|
||||
code: result.code || GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[0],
|
||||
data: null,
|
||||
message: result.message || GENERAL_ERROR_CODE.UNEXPECTED_SERVER_ERROR[1],
|
||||
});
|
||||
});
|
||||
|
||||
export default router;
|
||||
export default router;
|
||||
Reference in New Issue
Block a user