26 lines
1018 B
JavaScript
26 lines
1018 B
JavaScript
/**
|
|
* Arbeitsblaetter fuers Ticketsystem. Mount: /api/team/arbeitsblaetter, in team/index.js hinter requireStaffJwt (jeder
|
|
* Mitarbeiter, daher kein eigener Schutz).
|
|
* GET /abgerechnet?ticketId=<id> { abgerechnet: { <Blatt-ID>: '<Rechnungsnummer>' | 'Entwurf' } }, ohne Betraege
|
|
*/
|
|
import { Router } from 'express'
|
|
import { sendeFehler } from '../../services/auftraege/fehler.js'
|
|
import { abgerechnetFuerTicket } from '../../services/auftraege/projektkonto.js'
|
|
|
|
const router = Router()
|
|
|
|
// Appwrite-UID: erst pruefen, dann an Appwrite geben
|
|
const KENNUNG = /^[A-Za-z0-9][A-Za-z0-9._-]{0,35}$/
|
|
|
|
router.get('/abgerechnet', async (req, res) => {
|
|
const ticketId = req.query.ticketId
|
|
if (typeof ticketId !== 'string' || !KENNUNG.test(ticketId)) return res.status(400).json({ error: 'ticketId fehlt oder ist ungültig.' })
|
|
try {
|
|
res.json({ abgerechnet: await abgerechnetFuerTicket(ticketId) })
|
|
} catch (err) {
|
|
sendeFehler(res, 'Abgerechnete Arbeitsblätter laden', err)
|
|
}
|
|
})
|
|
|
|
export default router
|