diff --git a/backend/routes/apiV2.js b/backend/routes/apiV2.js new file mode 100644 index 0000000..492ff6e --- /dev/null +++ b/backend/routes/apiV2.js @@ -0,0 +1,21 @@ +import express from "express"; +import dotenv from "dotenv"; +import { getItemsFromDatabaseV2 } from "../services/database.js"; + +dotenv.config(); +const router = express.Router(); + +router.get("/items/:id", async (req, res) => { + if (req.params.id === process.env.ADMIN_ID) { + const result = await getItemsFromDatabaseV2(); + if (result.success) { + res.status(200).json(result.data); + } else { + res.status(500).json({ message: "Failed to fetch items" }); + } + } else { + res.status(403).json({ message: "Access denied" }); + } +}); + +export default router; diff --git a/backend/server.js b/backend/server.js index 063e776..4d28e0c 100644 --- a/backend/server.js +++ b/backend/server.js @@ -1,6 +1,8 @@ import express from "express"; import cors from "cors"; import env from "dotenv"; +import apiRouter from "./routes/api.js"; +import apiRouterV2 from "./routes/apiV2.js"; env.config(); const app = express(); const port = 8002; @@ -11,10 +13,8 @@ app.use(express.urlencoded({ extended: true, limit: "10mb" })); app.set("view engine", "ejs"); app.use(express.json({ limit: "10mb" })); -// Import API router -import apiRouter from "./routes/api.js"; - app.use("/api", apiRouter); +app.use("/apiV2", apiRouterV2); app.get("/", (req, res) => { res.render("index.ejs"); diff --git a/backend/services/database.js b/backend/services/database.js index f69b4cc..24d77e1 100644 --- a/backend/services/database.js +++ b/backend/services/database.js @@ -2,7 +2,6 @@ import mysql from "mysql2"; import dotenv from "dotenv"; dotenv.config(); -// Ein einzelner Pool reicht; der zweite Pool benutzte fälschlich DB_TABLE als Datenbank const pool = mysql .createPool({ host: process.env.DB_HOST, @@ -21,6 +20,14 @@ export const loginFunc = async (username, password) => { return { success: false }; }; +export const getItemsFromDatabaseV2 = async () => { + const [rows] = await pool.query("SELECT * FROM items;"); + if (rows.length > 0) { + return { success: true, data: rows }; + } + return { success: false }; +}; + export const getItemsFromDatabase = async (role) => { const sql = role == 0 @@ -34,4 +41,3 @@ export const getItemsFromDatabase = async (role) => { } return { success: false }; }; -