Updates, overview extended, club view implemented

This commit is contained in:
Torsten Schulz (local)
2026-06-23 16:17:07 +02:00
parent dd91c07694
commit 90e6c2f9f6
82 changed files with 11226 additions and 201 deletions

View File

@@ -4,6 +4,7 @@ import {
createClubCalendarEvent,
deleteClubCalendarEvent,
listClubCalendarEvents,
updateClubCalendarEvent,
} from '../controllers/calendarEventController.js';
const router = express.Router();
@@ -11,6 +12,7 @@ router.use(authenticate);
router.get('/:clubId', listClubCalendarEvents);
router.post('/:clubId', createClubCalendarEvent);
router.put('/:clubId/:eventId', updateClubCalendarEvent);
router.delete('/:clubId/:eventId', deleteClubCalendarEvent);
export default router;

View File

@@ -7,10 +7,13 @@ const router = express.Router();
router.use(authenticate);
router.get('/:clubId', authorize('members', 'read'), clubAccountController.listClubAccounts);
router.post('/:clubId', authorize('members', 'write'), clubAccountController.createClubAccount);
router.put('/:clubId/:accountId', authorize('members', 'write'), clubAccountController.updateClubAccount);
router.patch('/:clubId/:accountId/status', authorize('members', 'write'), clubAccountController.updateClubAccountStatus);
router.delete('/:clubId/:accountId', authorize('members', 'write'), clubAccountController.deleteClubAccount);
router.get('/:clubId', authorize('finance_accounts', 'read'), clubAccountController.listClubAccounts);
router.post('/:clubId', authorize('finance_accounts', 'write'), clubAccountController.createClubAccount);
router.put('/:clubId/:accountId', authorize('finance_accounts', 'write'), clubAccountController.updateClubAccount);
router.patch('/:clubId/:accountId/status', authorize('finance_accounts', 'write'), clubAccountController.updateClubAccountStatus);
router.delete('/:clubId/:accountId', authorize('finance_accounts', 'write'), clubAccountController.deleteClubAccount);
router.post('/:clubId/transactions', authorize('finance_accounts', 'write'), clubAccountController.createTransaction);
router.put('/:clubId/transactions/:transactionId', authorize('finance_accounts', 'write'), clubAccountController.updateTransaction);
router.delete('/:clubId/transactions/:transactionId', authorize('finance_accounts', 'write'), clubAccountController.deleteTransaction);
export default router;

View File

@@ -6,6 +6,6 @@ import { authorize } from '../middleware/authorizationMiddleware.js';
const router = express.Router();
router.use(authenticate);
router.get('/:clubId', authorize('settings', 'read'), clubArchiveController.getClubArchive);
router.get('/:clubId', authorize('archive', 'read'), clubArchiveController.getClubArchive);
export default router;

View File

@@ -0,0 +1,24 @@
import express from 'express';
import { authenticate } from '../middleware/authMiddleware.js';
import { authorize } from '../middleware/authorizationMiddleware.js';
import clubCommunicationController from '../controllers/clubCommunicationController.js';
const router = express.Router();
router.use(authenticate);
router.get('/:clubId', authorize('communication', 'read'), clubCommunicationController.list);
router.post('/:clubId/threads', authorize('communication', 'write'), clubCommunicationController.createThread);
router.put('/:clubId/threads/:threadId', authorize('communication', 'write'), clubCommunicationController.updateThread);
router.delete('/:clubId/threads/:threadId', authorize('communication', 'write'), clubCommunicationController.deleteThread);
router.post('/:clubId/threads/:threadId/messages', authorize('communication', 'write'), clubCommunicationController.addMessage);
router.patch('/:clubId/threads/:threadId/send', authorize('communication', 'write'), clubCommunicationController.sendThread);
router.post('/:clubId/groups', authorize('communication', 'write'), clubCommunicationController.createGroup);
router.put('/:clubId/groups/:groupId', authorize('communication', 'write'), clubCommunicationController.updateGroup);
router.delete('/:clubId/groups/:groupId', authorize('communication', 'write'), clubCommunicationController.deleteGroup);
router.post('/:clubId/templates', authorize('communication', 'write'), clubCommunicationController.createTemplate);
router.put('/:clubId/templates/:templateId', authorize('communication', 'write'), clubCommunicationController.updateTemplate);
router.delete('/:clubId/templates/:templateId', authorize('communication', 'write'), clubCommunicationController.deleteTemplate);
export default router;

View File

@@ -0,0 +1,19 @@
import express from 'express';
import { authenticate } from '../middleware/authMiddleware.js';
import { authorize } from '../middleware/authorizationMiddleware.js';
import clubDocumentController, {
uploadMiddleware,
} from '../controllers/clubDocumentController.js';
const router = express.Router();
router.use(authenticate);
router.get('/:clubId', authorize('settings', 'read'), clubDocumentController.listClubDocuments);
router.get('/:clubId/:documentId/download', authorize('settings', 'read'), clubDocumentController.downloadClubDocument);
router.post('/:clubId', authorize('settings', 'write'), uploadMiddleware, clubDocumentController.createClubDocument);
router.put('/:clubId/:documentId', authorize('settings', 'write'), uploadMiddleware, clubDocumentController.updateClubDocument);
router.patch('/:clubId/:documentId/archive', authorize('settings', 'write'), clubDocumentController.archiveClubDocument);
router.delete('/:clubId/:documentId', authorize('settings', 'write'), clubDocumentController.deleteClubDocument);
export default router;

View File

@@ -7,15 +7,15 @@ const router = express.Router();
router.use(authenticate);
router.get('/:clubId', authorize('members', 'read'), clubInvoiceController.listClubInvoices);
router.get('/:clubId', authorize('finance_invoices', 'read'), clubInvoiceController.listClubInvoices);
router.post('/:clubId/parties', authorize('members', 'write'), clubInvoiceController.createInvoiceParty);
router.put('/:clubId/parties/:partyId', authorize('members', 'write'), clubInvoiceController.updateInvoiceParty);
router.delete('/:clubId/parties/:partyId', authorize('members', 'write'), clubInvoiceController.deleteInvoiceParty);
router.post('/:clubId/parties', authorize('finance_invoices', 'write'), clubInvoiceController.createInvoiceParty);
router.put('/:clubId/parties/:partyId', authorize('finance_invoices', 'write'), clubInvoiceController.updateInvoiceParty);
router.delete('/:clubId/parties/:partyId', authorize('finance_invoices', 'write'), clubInvoiceController.deleteInvoiceParty);
router.post('/:clubId', authorize('members', 'write'), clubInvoiceController.createInvoice);
router.put('/:clubId/:invoiceId', authorize('members', 'write'), clubInvoiceController.updateInvoice);
router.patch('/:clubId/:invoiceId/status', authorize('members', 'write'), clubInvoiceController.updateInvoiceStatus);
router.delete('/:clubId/:invoiceId', authorize('members', 'write'), clubInvoiceController.deleteInvoice);
router.post('/:clubId', authorize('finance_invoices', 'write'), clubInvoiceController.createInvoice);
router.put('/:clubId/:invoiceId', authorize('finance_invoices', 'write'), clubInvoiceController.updateInvoice);
router.patch('/:clubId/:invoiceId/status', authorize('finance_invoices', 'write'), clubInvoiceController.updateInvoiceStatus);
router.delete('/:clubId/:invoiceId', authorize('finance_invoices', 'write'), clubInvoiceController.deleteInvoice);
export default router;

View File

@@ -0,0 +1,17 @@
import express from 'express';
import clubPaymentClaimController from '../controllers/clubPaymentClaimController.js';
import { authenticate } from '../middleware/authMiddleware.js';
import { authorize } from '../middleware/authorizationMiddleware.js';
const router = express.Router();
router.use(authenticate);
router.get('/:clubId', authorize('finance_accounts', 'read'), clubPaymentClaimController.list);
router.post('/:clubId', authorize('finance_accounts', 'write'), clubPaymentClaimController.create);
router.put('/:clubId/:claimId', authorize('finance_accounts', 'write'), clubPaymentClaimController.update);
router.patch('/:clubId/:claimId/payment', authorize('finance_accounts', 'write'), clubPaymentClaimController.registerPayment);
router.patch('/:clubId/:claimId/status', authorize('finance_accounts', 'write'), clubPaymentClaimController.updateStatus);
router.delete('/:clubId/:claimId', authorize('finance_accounts', 'write'), clubPaymentClaimController.delete);
export default router;

View File

@@ -11,10 +11,10 @@ import {
const router = express.Router();
router.get('/:clubId', authenticate, authorize('members', 'read'), listClubRequests);
router.post('/:clubId', authenticate, authorize('members', 'write'), createClubRequest);
router.put('/:clubId/:requestId', authenticate, authorize('members', 'write'), updateClubRequest);
router.patch('/:clubId/:requestId/status', authenticate, authorize('members', 'write'), updateClubRequestStatus);
router.post('/:clubId/:requestId/notes', authenticate, authorize('members', 'write'), addClubRequestNote);
router.get('/:clubId', authenticate, authorize('requests', 'read'), listClubRequests);
router.post('/:clubId', authenticate, authorize('requests', 'write'), createClubRequest);
router.put('/:clubId/:requestId', authenticate, authorize('requests', 'write'), updateClubRequest);
router.patch('/:clubId/:requestId/status', authenticate, authorize('requests', 'write'), updateClubRequestStatus);
router.post('/:clubId/:requestId/notes', authenticate, authorize('requests', 'write'), addClubRequestNote);
export default router;

View File

@@ -13,12 +13,12 @@ import {
const router = express.Router();
router.get('/:clubId', authenticate, authorize('members', 'read'), listClubTasks);
router.post('/:clubId', authenticate, authorize('members', 'write'), createClubTask);
router.post('/:clubId/materialize', authenticate, authorize('members', 'write'), materializeAutomatedClubTasks);
router.post('/:clubId/dismiss-suggestion', authenticate, authorize('members', 'write'), dismissAutomatedClubTaskSuggestion);
router.put('/:clubId/:taskId', authenticate, authorize('members', 'write'), updateClubTask);
router.patch('/:clubId/:taskId/status', authenticate, authorize('members', 'write'), updateClubTaskStatus);
router.delete('/:clubId/:taskId', authenticate, authorize('members', 'write'), deleteClubTask);
router.get('/:clubId', authenticate, authorize('tasks', 'read'), listClubTasks);
router.post('/:clubId', authenticate, authorize('tasks', 'write'), createClubTask);
router.post('/:clubId/materialize', authenticate, authorize('tasks', 'write'), materializeAutomatedClubTasks);
router.post('/:clubId/dismiss-suggestion', authenticate, authorize('tasks', 'write'), dismissAutomatedClubTaskSuggestion);
router.put('/:clubId/:taskId', authenticate, authorize('tasks', 'write'), updateClubTask);
router.patch('/:clubId/:taskId/status', authenticate, authorize('tasks', 'write'), updateClubTaskStatus);
router.delete('/:clubId/:taskId', authenticate, authorize('tasks', 'write'), deleteClubTask);
export default router;