added settings page
This commit is contained in:
@@ -36,4 +36,14 @@ CREATE TABLE IF NOT EXISTS products (
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (storage_location) REFERENCES storage_locations(uuid) ON DELETE CASCADE
|
||||
);
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS app_settings (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL UNIQUE,
|
||||
value VARCHAR(500) DEFAULT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
INSERT INTO app_settings (name, value) VALUES ("app-name", null), ("currency", null);
|
||||
@@ -40,3 +40,35 @@ export const loginUser = async (username) => {
|
||||
return { code: "eu003" };
|
||||
}
|
||||
};
|
||||
|
||||
export const updateSettings = async (payload) => {
|
||||
const appName = payload["app-name"];
|
||||
const currency = payload.currency;
|
||||
|
||||
const [result] = await pool.query(
|
||||
`UPDATE app_settings
|
||||
SET value = CASE name
|
||||
WHEN "app-name" THEN ?
|
||||
WHEN "currency" THEN ?
|
||||
ELSE value
|
||||
END
|
||||
WHERE name IN ("app-name", "currency");`,
|
||||
[appName, currency],
|
||||
);
|
||||
|
||||
if (result.affectedRows > 0) {
|
||||
return { code: "su003" };
|
||||
} else {
|
||||
return { code: "eu004" };
|
||||
}
|
||||
};
|
||||
|
||||
export const getSettings = async () => {
|
||||
const [result] = await pool.query(`SELECT * FROM app_settings;`);
|
||||
|
||||
if (result.length > 0) {
|
||||
return { code: "su004", result };
|
||||
} else {
|
||||
return { code: "eu005" };
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
import express from "express";
|
||||
import dotenv from "dotenv";
|
||||
import { authenticate, generateToken } from "../../services/tokenService.js";
|
||||
import { findUser, loginUser } from "./database/users.database.js";
|
||||
import {
|
||||
findUser,
|
||||
loginUser,
|
||||
updateSettings,
|
||||
getSettings,
|
||||
} from "./database/users.database.js";
|
||||
dotenv.config();
|
||||
const router = express.Router();
|
||||
|
||||
@@ -9,6 +14,55 @@ 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;
|
||||
|
||||
Reference in New Issue
Block a user