Files

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