Projektkonto: Admin-Routen für Konten je Kunde und Detail je Projekt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
32726fa1c2
commit
846059b455
2 files changed
+162
-2
No files matched your search
@@ -1,11 +1,38 @@
|
||||
/**
|
||||
* 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.
|
||||
* Projektkonten (Admin). Mount: /api/admin/finanzen/projektkonten (vor dem Finanzen-Router).
|
||||
* GET /?kunde=<id> Projektkonten eines Kunden samt Zeile "Ohne Projekt"
|
||||
* GET /:projektId Konto, ABs, Rechnungen und offene Arbeitsblaetter eines Projekts
|
||||
* Nur lesen (Strang L1).
|
||||
*/
|
||||
import { Router } from 'express'
|
||||
import { requireAppwriteStaff } from '../../middleware/appwriteStaff.js'
|
||||
import { sendeFehler } from '../../services/auftraege/fehler.js'
|
||||
import { projektkontenFuerKunde, projektkontoDetail } from '../../services/auftraege/projektkonto.js'
|
||||
|
||||
const router = Router()
|
||||
router.use(requireAppwriteStaff)
|
||||
|
||||
// Appwrite-UID: erst pruefen, dann an Appwrite geben
|
||||
const KENNUNG = /^[A-Za-z0-9][A-Za-z0-9._-]{0,35}$/
|
||||
|
||||
router.get('/', async (req, res) => {
|
||||
const kunde = req.query.kunde
|
||||
if (typeof kunde !== 'string' || !KENNUNG.test(kunde)) return res.status(400).json({ error: 'Kunde fehlt oder ist ungültig.' })
|
||||
try {
|
||||
res.json(await projektkontenFuerKunde(kunde))
|
||||
} catch (err) {
|
||||
sendeFehler(res, 'Projektkonten laden', err)
|
||||
}
|
||||
})
|
||||
|
||||
router.get('/:projektId', async (req, res) => {
|
||||
const { projektId } = req.params
|
||||
if (!KENNUNG.test(projektId)) return res.status(404).json({ error: 'Projekt nicht gefunden.' })
|
||||
try {
|
||||
res.json(await projektkontoDetail(projektId))
|
||||
} catch (err) {
|
||||
sendeFehler(res, 'Projektkonto laden', err)
|
||||
}
|
||||
})
|
||||
|
||||
export default router
|
||||
Reference in new issue
Block a user