Aufträge: Router-Gerüste und Einbindung in server/index.js und Team-Router
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4f467fa9c5
commit
8627ed1124
8 files changed
+158
No files matched your search
@@ -21,6 +21,8 @@ import shopRoutes from './routes/shop.js'
|
||||
import shopWebhookRoutes from './routes/shopWebhook.js'
|
||||
import { shopSeiteRouter } from './routes/shopSeite.js'
|
||||
import zeitenRoutes from './routes/zeiten.js'
|
||||
import publicAuftragRoutes from './routes/auftrag.js'
|
||||
import kundeAuftraegeRoutes from './routes/auftraegeKunde.js'
|
||||
import takeoverCreditRoutes from './routes/takeoverCredits.js'
|
||||
import { purgeExpiredUploads } from './services/takeoverCredits.js'
|
||||
import { purgePendingChatUploads } from './services/chatAttachments.js'
|
||||
@@ -48,6 +50,8 @@ import publicZeitenRoutes from './routes/publicZeiten.js'
|
||||
import adminAnalyseRoutes from './routes/admin/analyse.js'
|
||||
import { legalRouter } from './services/legalDocs.js'
|
||||
import adminFinanzenRoutes from './routes/admin/finanzen.js'
|
||||
import adminProjektkontenRoutes from './routes/admin/projektkonten.js'
|
||||
import adminAuftraegeRoutes from './routes/admin/auftraege.js'
|
||||
import teamRoutes from './routes/team/index.js'
|
||||
import legacyAdminRedirect from './routes/legacyAdminRedirect.js'
|
||||
import { corsMiddleware } from './middleware/cors.js'
|
||||
@@ -94,6 +98,9 @@ app.use('/api/termine', termineRoutes)
|
||||
app.use('/api/shop/stripe-webhook', shopWebhookRoutes)
|
||||
app.use('/api/shop', shopRoutes)
|
||||
app.use('/api/zeiten', zeitenRoutes)
|
||||
// Auftragsbestaetigung: oeffentliche Bestaetigung per Token (ohne Sitzung) und die Auftraege des angemeldeten Kunden
|
||||
app.use('/api/auftrag', publicAuftragRoutes)
|
||||
app.use('/api/auftraege', kundeAuftraegeRoutes)
|
||||
app.use('/api/team', teamRoutes)
|
||||
app.use('/api/admin/gitea', adminGiteaRoutes)
|
||||
app.use('/api/admin/website-projects', adminPreviewRoutes)
|
||||
@@ -103,6 +110,9 @@ app.use('/api/admin/customers', adminCustomersRoutes)
|
||||
app.use('/api/admin/employees', adminEmployeesRoutes)
|
||||
app.use('/api/admin/invoice-clients', adminInvoiceClientsRoutes)
|
||||
app.use('/api/admin/analyse', adminAnalyseRoutes)
|
||||
// Projektkonten und Auftraege (Admin): vor dem Finanzen-Router, dessen requireAppwriteStaff sonst jede Anfrage darunter zuerst prueft
|
||||
app.use('/api/admin/finanzen/projektkonten', adminProjektkontenRoutes)
|
||||
app.use('/api/admin/finanzen/auftraege', adminAuftraegeRoutes)
|
||||
app.use('/api/admin/finanzen', adminFinanzenRoutes)
|
||||
app.use('/webhook', giteaWebhookRoutes)
|
||||
// Push-Zeitmail: Zeit eines Git-Pushes per Link aus der Mail eintragen (ohne Login, signierter Token)
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
/**
|
||||
* Gerüst von Strang L0: Auftragsbestätigungen (Admin). Mount: /api/admin/finanzen/auftraege (vor dem Finanzen-Router).
|
||||
* L3 füllt: Liste, Anlegen, Ändern, Löschen, PDF, Projekt zuordnen, Senden, Erinnern, Neue Fassung, Stornieren.
|
||||
*/
|
||||
import { Router } from 'express'
|
||||
import { requireAppwriteStaff } from '../../middleware/appwriteStaff.js'
|
||||
|
||||
const router = Router()
|
||||
router.use(requireAppwriteStaff)
|
||||
|
||||
export default router
|
||||
@@ -0,0 +1,11 @@
|
||||
/**
|
||||
* Gerüst von Strang L0: Projektkonten (Admin). Mount: /api/admin/finanzen/projektkonten (vor dem Finanzen-Router).
|
||||
* L1 ergänzt GET / (?kunde=<id>) und GET /:projektId.
|
||||
*/
|
||||
import { Router } from 'express'
|
||||
import { requireAppwriteStaff } from '../../middleware/appwriteStaff.js'
|
||||
|
||||
const router = Router()
|
||||
router.use(requireAppwriteStaff)
|
||||
|
||||
export default router
|
||||
@@ -0,0 +1,12 @@
|
||||
/**
|
||||
* Gerüst von Strang L0: Aufträge des angemeldeten Kunden. Mount: /api/auftraege. requireSession schützt jede später
|
||||
* ergänzte Route (fail-closed). L5 ergänzt GET /, GET /:id/pdf, POST /:id/bestaetigen; das Bestätigen sperrt der
|
||||
* Wächter der Kundenansicht von selbst, es kommt kein Eintrag in KUNDENANSICHT_ALLOWED.
|
||||
*/
|
||||
import { Router } from 'express'
|
||||
import { requireSession } from '../middleware/session.js'
|
||||
|
||||
const router = Router()
|
||||
router.use(requireSession)
|
||||
|
||||
export default router
|
||||
@@ -0,0 +1,10 @@
|
||||
/**
|
||||
* Gerüst von Strang L0: öffentliche Bestätigung einer Auftragsbestätigung per Token (ohne Anmeldung, das Token steht
|
||||
* in der Adresse). Mount: /api/auftrag. Kein Sitzungs- und kein Wächter-Eintrag nötig. L5 ergänzt die Ratenbegrenzung
|
||||
* im Arbeitsspeicher (keine IP-Adressen speichern) und GET /:token, GET /:token/pdf, POST /:token/bestaetigen.
|
||||
*/
|
||||
import { Router } from 'express'
|
||||
|
||||
const router = Router()
|
||||
|
||||
export default router
|
||||
@@ -0,0 +1,9 @@
|
||||
/**
|
||||
* Gerüst von Strang L0: Arbeitsblätter fürs Ticketsystem. Mount: /api/team/arbeitsblaetter, in team/index.js hinter
|
||||
* requireStaffJwt (jeder Mitarbeiter, daher kein eigener Schutz). L1 ergänzt GET /abgerechnet (?ticketId=<id>).
|
||||
*/
|
||||
import { Router } from 'express'
|
||||
|
||||
const router = Router()
|
||||
|
||||
export default router
|
||||
@@ -5,6 +5,7 @@ import { funktionenAdminRouter } from '../admin/funktionenAdmin.js'
|
||||
import { offersAdminRouter } from '../offers.js'
|
||||
import { storageTasksAdminRouter } from '../storageTasks.js'
|
||||
import { takeoverAdminRouter } from '../takeoverCredits.js'
|
||||
import arbeitsblaetterTeamRoutes from './arbeitsblaetter.js'
|
||||
import customersRoutes from './customers.js'
|
||||
import filesRoutes from './files.js'
|
||||
import previewRoutes from './preview.js'
|
||||
@@ -28,5 +29,7 @@ router.use('/funktionen', funktionenAdminRouter)
|
||||
router.use('/termine', termineTeamRoutes)
|
||||
// Webshop: Stand je Projekt und Entscheidung ueber die Anfrage
|
||||
router.use('/shop', shopTeamRoutes)
|
||||
// Abgerechnete Arbeitsblaetter (Abzeichen am Ticket, alle Mitarbeiter)
|
||||
router.use('/arbeitsblaetter', arbeitsblaetterTeamRoutes)
|
||||
|
||||
export default router
|
||||
Reference in new issue
Block a user