diff --git a/backend/server.js b/backend/server.js
index 9a88522..b1ad974 100644
--- a/backend/server.js
+++ b/backend/server.js
@@ -6,6 +6,8 @@ import {
loginAdmin,
getTableData,
createEntry,
+ removeEntries,
+ saveRow,
} from "./services/database.js";
import { generateToken, authenticate } from "./services/tokenService.js";
env.config();
@@ -30,6 +32,22 @@ app.post("/lose", async (req, res) => {
}
});
+
+
+
+
+
+
+// !!!!!!! AUTHORISATION HINZUFÜGEN - DENN GEHT NICHT !!!!!!!!
+
+
+
+
+
+
+
+
+
app.get("/table-data", authenticate, async (req, res) => {
const result = await getTableData();
if (result.success) {
@@ -48,6 +66,24 @@ app.post("/create-entry", async (req, res) => {
}
});
+app.delete("/remove-entries", async (req, res) => {
+ const result = await removeEntries(req.body.losnummern);
+ if (result) {
+ res.status(200).json({ success: true });
+ } else {
+ res.status(400).json({ success: false });
+ }
+});
+
+app.put("/save-row", async (req, res) => {
+ const result = await saveRow(req.body);
+ if (result.success) {
+ res.status(200).json({ success: true });
+ } else {
+ res.status(400).json({ success: false });
+ }
+});
+
app.post("/login", async (req, res) => {
const { username, password } = req.body;
const result = await loginAdmin(username, password);
diff --git a/backend/services/database.js b/backend/services/database.js
index 6b91a1f..8dd0fd9 100644
--- a/backend/services/database.js
+++ b/backend/services/database.js
@@ -51,8 +51,6 @@ export async function getTableData() {
return { success: false };
}
-// Create data from array not working !!!
-
export async function createEntry(data) {
let { status } = { status: true };
for (const item of data) {
@@ -71,3 +69,42 @@ export async function createEntry(data) {
return status;
}
+
+export async function removeEntries(losnummern) {
+ let { status } = { status: true };
+
+ for (const losnummer of losnummern) {
+ const [result] = await pool.query("DELETE FROM lose WHERE losnummer = ?", [
+ losnummer,
+ ]);
+
+ if (result.affectedRows > 0) {
+ status = true;
+ } else {
+ status = false;
+ break;
+ }
+ }
+
+ return status;
+}
+
+export async function saveRow(payload) {
+ const [result] = await pool.query(
+ "UPDATE lose SET vorname = ?, nachname = ?, adresse = ?, plz = ?, email = ? WHERE losnummer = ?",
+ [
+ payload.vorname,
+ payload.nachname,
+ payload.adresse,
+ payload.plz,
+ payload.email,
+ payload.losnummer,
+ ]
+ );
+
+ if (result.affectedRows > 0) {
+ return { success: true };
+ } else {
+ return { success: false };
+ }
+}
diff --git a/frontend/src/components/Admin.tsx b/frontend/src/components/Admin.tsx
index c476288..6de45cc 100644
--- a/frontend/src/components/Admin.tsx
+++ b/frontend/src/components/Admin.tsx
@@ -22,7 +22,7 @@ const Admin: React.FC = () => {
{token ? (
) : (
- Please log in as an admin.
+ Bitte als Admin einloggen. Oder gehe
zurück.
)}
>
);
diff --git a/frontend/src/components/MainForm.tsx b/frontend/src/components/MainForm.tsx
index cddb159..46a74a4 100644
--- a/frontend/src/components/MainForm.tsx
+++ b/frontend/src/components/MainForm.tsx
@@ -125,7 +125,7 @@ const MainForm: React.FC = () => {
Los registrieren
- Wenn Sie die Daten eines Loses bearbeiten möchten,{" "}
+ Wenn Sie die Daten eines bereits registrierten Loses bearbeiten möchten,{" "}
void;
@@ -41,6 +42,9 @@ const SubHeaderAdmin: React.FC = ({ setFiles, files }) => {
Losnummern importieren