add features

This commit is contained in:
Matthias Hochmeister
2026-02-27 20:33:43 +01:00
parent e2713e25ba
commit 46d3f5b351
9 changed files with 33 additions and 52 deletions

View File

@@ -74,7 +74,7 @@ class IncidentController {
// -------------------------------------------------------------------------
async getIncident(req: AuthenticatedRequest, res: Response): Promise<void> {
try {
const { id } = req.params;
const { id } = req.params as Record<string, string>;
const incident = await incidentService.getIncidentById(id);
if (!incident) {
@@ -147,7 +147,7 @@ class IncidentController {
return;
}
const { id } = req.params;
const { id } = req.params as Record<string, string>;
const parseResult = UpdateEinsatzSchema.safeParse(req.body);
if (!parseResult.success) {
res.status(400).json({
@@ -181,7 +181,7 @@ class IncidentController {
return;
}
const { id } = req.params;
const { id } = req.params as Record<string, string>;
await incidentService.deleteIncident(id, req.user.id);
res.status(200).json({ success: true, message: 'Einsatz archiviert' });
@@ -200,7 +200,7 @@ class IncidentController {
// -------------------------------------------------------------------------
async assignPersonnel(req: AuthenticatedRequest, res: Response): Promise<void> {
try {
const { id } = req.params;
const { id } = req.params as Record<string, string>;
const parseResult = AssignPersonnelSchema.safeParse(req.body);
if (!parseResult.success) {
@@ -226,7 +226,7 @@ class IncidentController {
// -------------------------------------------------------------------------
async removePersonnel(req: AuthenticatedRequest, res: Response): Promise<void> {
try {
const { id, userId } = req.params;
const { id, userId } = req.params as Record<string, string>;
await incidentService.removePersonnel(id, userId);
res.status(200).json({ success: true, message: 'Person entfernt' });
@@ -245,7 +245,7 @@ class IncidentController {
// -------------------------------------------------------------------------
async assignVehicle(req: AuthenticatedRequest, res: Response): Promise<void> {
try {
const { id } = req.params;
const { id } = req.params as Record<string, string>;
const parseResult = AssignVehicleSchema.safeParse(req.body);
if (!parseResult.success) {
@@ -271,7 +271,7 @@ class IncidentController {
// -------------------------------------------------------------------------
async removeVehicle(req: AuthenticatedRequest, res: Response): Promise<void> {
try {
const { id, fahrzeugId } = req.params;
const { id, fahrzeugId } = req.params as Record<string, string>;
await incidentService.removeVehicle(id, fahrzeugId);
res.status(200).json({ success: true, message: 'Fahrzeug entfernt' });

View File

@@ -1,7 +1,6 @@
import { Request, Response } from 'express';
import memberService from '../services/member.service';
import logger from '../utils/logger';
import { AppError } from '../middleware/error.middleware';
import {
CreateMemberProfileSchema,
UpdateMemberProfileSchema,
@@ -79,7 +78,7 @@ class MemberController {
* Returns aggregate member counts for each status.
* Must be registered BEFORE /:userId to avoid route collision.
*/
async getMemberStats(req: Request, res: Response): Promise<void> {
async getMemberStats(_req: Request, res: Response): Promise<void> {
try {
const stats = await memberService.getMemberStats();
res.status(200).json({ success: true, data: stats });
@@ -100,9 +99,7 @@ class MemberController {
*/
async getMemberById(req: Request, res: Response): Promise<void> {
try {
const { userId } = req.params;
const requestorId = req.user!.id;
const requestorRole = getRole(req);
const { userId } = req.params as Record<string, string>;
const ownProfile = isOwnProfile(req, userId);
const member = await memberService.getMemberById(userId);
@@ -151,7 +148,7 @@ class MemberController {
*/
async createMemberProfile(req: Request, res: Response): Promise<void> {
try {
const { userId } = req.params;
const { userId } = req.params as Record<string, string>;
const parseResult = CreateMemberProfileSchema.safeParse(req.body);
if (!parseResult.success) {
@@ -187,7 +184,7 @@ class MemberController {
*/
async updateMember(req: Request, res: Response): Promise<void> {
try {
const { userId } = req.params;
const { userId } = req.params as Record<string, string>;
const updaterId = req.user!.id;
const ownProfile = isOwnProfile(req, userId);

View File

@@ -176,7 +176,7 @@ class TrainingController {
// -------------------------------------------------------------------------
getById = async (req: Request, res: Response): Promise<void> => {
try {
const { id } = req.params;
const { id } = req.params as Record<string, string>;
const userId = req.user?.id;
// Determine if the requester may see the full attendee list
@@ -229,7 +229,7 @@ class TrainingController {
// -------------------------------------------------------------------------
updateEvent = async (req: Request, res: Response): Promise<void> => {
try {
const { id } = req.params;
const { id } = req.params as Record<string, string>;
const parsed = UpdateUebungSchema.safeParse(req.body);
if (!parsed.success) {
@@ -258,7 +258,7 @@ class TrainingController {
// -------------------------------------------------------------------------
cancelEvent = async (req: Request, res: Response): Promise<void> => {
try {
const { id } = req.params;
const { id } = req.params as Record<string, string>;
const parsed = CancelEventSchema.safeParse(req.body);
if (!parsed.success) {
@@ -287,7 +287,7 @@ class TrainingController {
// -------------------------------------------------------------------------
updateRsvp = async (req: Request, res: Response): Promise<void> => {
try {
const { id: uebungId } = req.params;
const { id: uebungId } = req.params as Record<string, string>;
const userId = req.user!.id;
const parsed = UpdateRsvpSchema.safeParse(req.body);
@@ -319,7 +319,7 @@ class TrainingController {
// -------------------------------------------------------------------------
markAttendance = async (req: Request, res: Response): Promise<void> => {
try {
const { id: uebungId } = req.params;
const { id: uebungId } = req.params as Record<string, string>;
const parsed = MarkAttendanceSchema.safeParse(req.body);
if (!parsed.success) {

View File

@@ -85,7 +85,7 @@ class VehicleController {
* GET /api/vehicles
* Fleet overview list with per-vehicle inspection badge data.
*/
async listVehicles(req: Request, res: Response): Promise<void> {
async listVehicles(_req: Request, res: Response): Promise<void> {
try {
const vehicles = await vehicleService.getAllVehicles();
res.status(200).json({ success: true, data: vehicles });
@@ -99,7 +99,7 @@ class VehicleController {
* GET /api/vehicles/stats
* Aggregated KPI counts for the dashboard strip.
*/
async getStats(req: Request, res: Response): Promise<void> {
async getStats(_req: Request, res: Response): Promise<void> {
try {
const stats = await vehicleService.getVehicleStats();
res.status(200).json({ success: true, data: stats });
@@ -140,7 +140,7 @@ class VehicleController {
*/
async getVehicle(req: Request, res: Response): Promise<void> {
try {
const { id } = req.params;
const { id } = req.params as Record<string, string>;
const vehicle = await vehicleService.getVehicleById(id);
if (!vehicle) {
@@ -185,7 +185,7 @@ class VehicleController {
*/
async updateVehicle(req: Request, res: Response): Promise<void> {
try {
const { id } = req.params;
const { id } = req.params as Record<string, string>;
const parsed = UpdateFahrzeugSchema.safeParse(req.body);
if (!parsed.success) {
res.status(400).json({
@@ -219,7 +219,7 @@ class VehicleController {
*/
async updateVehicleStatus(req: Request, res: Response): Promise<void> {
try {
const { id } = req.params;
const { id } = req.params as Record<string, string>;
const parsed = UpdateStatusSchema.safeParse(req.body);
if (!parsed.success) {
@@ -262,7 +262,7 @@ class VehicleController {
*/
async addPruefung(req: Request, res: Response): Promise<void> {
try {
const { id } = req.params;
const { id } = req.params as Record<string, string>;
const parsed = CreatePruefungSchema.safeParse(req.body);
if (!parsed.success) {
@@ -288,7 +288,7 @@ class VehicleController {
*/
async getPruefungen(req: Request, res: Response): Promise<void> {
try {
const { id } = req.params;
const { id } = req.params as Record<string, string>;
const pruefungen = await vehicleService.getPruefungenForVehicle(id);
res.status(200).json({ success: true, data: pruefungen });
} catch (error) {
@@ -305,7 +305,7 @@ class VehicleController {
*/
async addWartung(req: Request, res: Response): Promise<void> {
try {
const { id } = req.params;
const { id } = req.params as Record<string, string>;
const parsed = CreateWartungslogSchema.safeParse(req.body);
if (!parsed.success) {
@@ -331,7 +331,7 @@ class VehicleController {
*/
async getWartung(req: Request, res: Response): Promise<void> {
try {
const { id } = req.params;
const { id } = req.params as Record<string, string>;
const entries = await vehicleService.getWartungslogForVehicle(id);
res.status(200).json({ success: true, data: entries });
} catch (error) {