bug fixes

This commit is contained in:
Matthias Hochmeister
2026-03-03 14:45:46 +01:00
parent 004b141cab
commit 5dfaf7db54
11 changed files with 166 additions and 35 deletions

View File

@@ -8,19 +8,31 @@ import {
UpdateAtemschutzData,
} from '../models/atemschutz.model';
const ATEMSCHUTZ_PRIVILEGED = ['dashboard_admin', 'dashboard_kommando', 'dashboard_atemschutz', 'dashboard_moderator'];
class AtemschutzService {
// =========================================================================
// ÜBERSICHT (ALL RECORDS)
// =========================================================================
async getAll(): Promise<AtemschutzUebersicht[]> {
async getAll(userGroups: string[], userId: string): Promise<AtemschutzUebersicht[]> {
const isPrivileged = userGroups.some(g => ATEMSCHUTZ_PRIVILEGED.includes(g));
try {
const result = await pool.query(`
SELECT *
FROM atemschutz_uebersicht
WHERE mitglied_status IS NULL OR mitglied_status IN ('aktiv', 'anwärter')
ORDER BY user_family_name, user_given_name
`);
let result;
if (isPrivileged) {
result = await pool.query(`
SELECT *
FROM atemschutz_uebersicht
WHERE mitglied_status IS NULL OR mitglied_status IN ('aktiv', 'anwärter')
ORDER BY user_family_name, user_given_name
`);
} else {
result = await pool.query(`
SELECT *
FROM atemschutz_uebersicht
WHERE user_id = $1
`, [userId]);
}
return result.rows.map((row) => ({
...row,
@@ -208,7 +220,21 @@ class AtemschutzService {
// DASHBOARD KPI / STATISTIKEN
// =========================================================================
async getStats(): Promise<AtemschutzStats> {
async getStats(userGroups: string[], userId: string): Promise<AtemschutzStats> {
const isPrivileged = userGroups.some(g => ATEMSCHUTZ_PRIVILEGED.includes(g));
if (!isPrivileged) {
return {
total: 0,
mitLehrgang: 0,
untersuchungGueltig: 0,
untersuchungAbgelaufen: 0,
untersuchungBaldFaellig: 0,
leistungstestGueltig: 0,
leistungstestAbgelaufen: 0,
leistungstestBaldFaellig: 0,
einsatzbereit: 0,
};
}
try {
const result = await pool.query(`
SELECT