115 lines
3.6 KiB
JavaScript
115 lines
3.6 KiB
JavaScript
import { d as defineEventHandler, g as getCookie, c as createError } from '../../nitro/nitro.mjs';
|
|
import { b as verifyToken, r as readUsers } from '../../_/auth.mjs';
|
|
import { r as readMembers } 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';
|
|
import '../../_/encryption.mjs';
|
|
import 'crypto';
|
|
|
|
const members_get = defineEventHandler(async (event) => {
|
|
var _a, _b, _c;
|
|
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 fullName = `${member.firstName || ""} ${member.lastName || ""}`.trim();
|
|
const normalizedName = fullName.toLowerCase();
|
|
mergedMembers.push({
|
|
...member,
|
|
name: fullName,
|
|
// Computed for display
|
|
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 = ((_b = user.email) == null ? void 0 : _b.toLowerCase().trim()) || "";
|
|
const normalizedName = ((_c = user.name) == null ? void 0 : _c.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
|