fix permissions
This commit is contained in:
@@ -352,6 +352,79 @@ class IssueController {
|
||||
res.status(500).json({ success: false, message: 'Mitglieder konnten nicht geladen werden' });
|
||||
}
|
||||
}
|
||||
|
||||
async getWidgetSummary(_req: Request, res: Response): Promise<void> {
|
||||
try {
|
||||
const counts = await issueService.getIssueCounts();
|
||||
res.status(200).json({ success: true, data: counts });
|
||||
} catch (error) {
|
||||
logger.error('IssueController.getWidgetSummary error', { error });
|
||||
res.status(500).json({ success: false, message: 'Issue-Counts konnten nicht geladen werden' });
|
||||
}
|
||||
}
|
||||
|
||||
async getStatusmeldungen(_req: Request, res: Response): Promise<void> {
|
||||
try {
|
||||
const items = await issueService.getStatusmeldungen();
|
||||
res.status(200).json({ success: true, data: items });
|
||||
} catch (error) {
|
||||
logger.error('IssueController.getStatusmeldungen error', { error });
|
||||
res.status(500).json({ success: false, message: 'Statusmeldungen konnten nicht geladen werden' });
|
||||
}
|
||||
}
|
||||
|
||||
async createStatusmeldung(req: Request, res: Response): Promise<void> {
|
||||
const { titel } = req.body;
|
||||
if (!titel || typeof titel !== 'string' || titel.trim().length === 0) {
|
||||
res.status(400).json({ success: false, message: 'Titel ist erforderlich' });
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const item = await issueService.createStatusmeldung(req.body, req.user!.id);
|
||||
res.status(201).json({ success: true, data: item });
|
||||
} catch (error) {
|
||||
logger.error('IssueController.createStatusmeldung error', { error });
|
||||
res.status(500).json({ success: false, message: 'Statusmeldung konnte nicht erstellt werden' });
|
||||
}
|
||||
}
|
||||
|
||||
async updateStatusmeldung(req: Request, res: Response): Promise<void> {
|
||||
const id = parseInt(param(req, 'id'), 10);
|
||||
if (isNaN(id)) {
|
||||
res.status(400).json({ success: false, message: 'Ungültige ID' });
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const item = await issueService.updateStatusmeldung(id, req.body);
|
||||
if (!item) {
|
||||
res.status(404).json({ success: false, message: 'Statusmeldung nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
res.status(200).json({ success: true, data: item });
|
||||
} catch (error) {
|
||||
logger.error('IssueController.updateStatusmeldung error', { error });
|
||||
res.status(500).json({ success: false, message: 'Statusmeldung konnte nicht aktualisiert werden' });
|
||||
}
|
||||
}
|
||||
|
||||
async deleteStatusmeldung(req: Request, res: Response): Promise<void> {
|
||||
const id = parseInt(param(req, 'id'), 10);
|
||||
if (isNaN(id)) {
|
||||
res.status(400).json({ success: false, message: 'Ungültige ID' });
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const deleted = await issueService.deleteStatusmeldung(id);
|
||||
if (!deleted) {
|
||||
res.status(404).json({ success: false, message: 'Statusmeldung nicht gefunden' });
|
||||
return;
|
||||
}
|
||||
res.status(200).json({ success: true, message: 'Statusmeldung gelöscht' });
|
||||
} catch (error) {
|
||||
logger.error('IssueController.deleteStatusmeldung error', { error });
|
||||
res.status(500).json({ success: false, message: 'Statusmeldung konnte nicht gelöscht werden' });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default new IssueController();
|
||||
|
||||
Reference in New Issue
Block a user