Add table view and split name into firstName/lastName fields
This commit is contained in:
109
.output/server/chunks/routes/api/members.get.mjs
Normal file
109
.output/server/chunks/routes/api/members.get.mjs
Normal file
@@ -0,0 +1,109 @@
|
||||
import { d as defineEventHandler, g as getCookie, c as createError } from '../../nitro/nitro.mjs';
|
||||
import { b as verifyToken } from '../../_/auth.mjs';
|
||||
import { r as readMembers, a as readUsers } from '../../_/members.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'node:url';
|
||||
import 'bcryptjs';
|
||||
import 'jsonwebtoken';
|
||||
import 'fs';
|
||||
import 'path';
|
||||
|
||||
const members_get = defineEventHandler(async (event) => {
|
||||
var _a, _b, _c, _d;
|
||||
try {
|
||||
const token = getCookie(event, "auth_token");
|
||||
if (!token) {
|
||||
throw createError({
|
||||
statusCode: 401,
|
||||
message: "Nicht authentifiziert."
|
||||
});
|
||||
}
|
||||
const decoded = verifyToken(token);
|
||||
if (!decoded) {
|
||||
throw createError({
|
||||
statusCode: 401,
|
||||
message: "Ung\xFCltiges Token."
|
||||
});
|
||||
}
|
||||
const manualMembers = await readMembers();
|
||||
const registeredUsers = await readUsers();
|
||||
const mergedMembers = [];
|
||||
const processedEmails = /* @__PURE__ */ new Set();
|
||||
const processedNames = /* @__PURE__ */ new Set();
|
||||
for (const member of manualMembers) {
|
||||
const normalizedEmail = ((_a = member.email) == null ? void 0 : _a.toLowerCase().trim()) || "";
|
||||
const normalizedName = ((_b = member.name) == null ? void 0 : _b.toLowerCase().trim()) || "";
|
||||
mergedMembers.push({
|
||||
...member,
|
||||
source: "manual",
|
||||
editable: true,
|
||||
hasLogin: false
|
||||
});
|
||||
if (normalizedEmail) processedEmails.add(normalizedEmail);
|
||||
if (normalizedName) processedNames.add(normalizedName);
|
||||
}
|
||||
for (const user of registeredUsers) {
|
||||
if (!user.active) continue;
|
||||
const normalizedEmail = ((_c = user.email) == null ? void 0 : _c.toLowerCase().trim()) || "";
|
||||
const normalizedName = ((_d = user.name) == null ? void 0 : _d.toLowerCase().trim()) || "";
|
||||
let matchedManualIndex = -1;
|
||||
if (normalizedEmail) {
|
||||
matchedManualIndex = mergedMembers.findIndex(
|
||||
(m) => {
|
||||
var _a2;
|
||||
return m.source === "manual" && ((_a2 = m.email) == null ? void 0 : _a2.toLowerCase().trim()) === normalizedEmail;
|
||||
}
|
||||
);
|
||||
}
|
||||
if (matchedManualIndex === -1 && normalizedName) {
|
||||
matchedManualIndex = mergedMembers.findIndex(
|
||||
(m) => {
|
||||
var _a2;
|
||||
return m.source === "manual" && ((_a2 = m.name) == null ? void 0 : _a2.toLowerCase().trim()) === normalizedName;
|
||||
}
|
||||
);
|
||||
}
|
||||
if (matchedManualIndex !== -1) {
|
||||
mergedMembers[matchedManualIndex] = {
|
||||
...mergedMembers[matchedManualIndex],
|
||||
hasLogin: true,
|
||||
loginEmail: user.email,
|
||||
loginRole: user.role,
|
||||
lastLogin: user.lastLogin
|
||||
};
|
||||
} else {
|
||||
mergedMembers.push({
|
||||
id: user.id,
|
||||
name: user.name,
|
||||
email: user.email,
|
||||
phone: user.phone || "",
|
||||
address: "",
|
||||
notes: `Rolle: ${user.role}`,
|
||||
source: "login",
|
||||
editable: false,
|
||||
hasLogin: true,
|
||||
loginEmail: user.email,
|
||||
loginRole: user.role,
|
||||
lastLogin: user.lastLogin
|
||||
});
|
||||
}
|
||||
}
|
||||
mergedMembers.sort((a, b) => a.name.localeCompare(b.name));
|
||||
return {
|
||||
success: true,
|
||||
members: mergedMembers
|
||||
};
|
||||
} catch (error) {
|
||||
console.error("Fehler beim Abrufen der Mitgliederliste:", error);
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
|
||||
export { members_get as default };
|
||||
//# sourceMappingURL=members.get.mjs.map
|
||||
Reference in New Issue
Block a user