import { Router } from 'express' import { createProjectFromTemplate, updateWebsiteProject, archiveRepo, } from '../../services/giteaAdmin.js' import { requireAppwriteStaff } from '../../middleware/appwriteStaff.js' const router = Router() router.use(requireAppwriteStaff) router.post('/create-from-template', async (req, res) => { const { repoName, displayName, subdomain, customerId = '', ticketId = '', owner } = req.body || {} if (!repoName && !displayName) { return res.status(400).json({ error: 'repoName oder displayName ist erforderlich' }) } try { const result = await createProjectFromTemplate({ repoName, displayName, subdomain, customerId, ticketId, owner, }) return res.status(201).json({ ok: true, ...result }) } catch (err) { const status = err.status || 500 return res.status(status).json({ error: err.message || 'Projekt konnte nicht angelegt werden' }) } }) // Projekt bearbeiten: Name / Subdomain / Typ -> synchronisiert Git + Preview + Appwrite router.patch('/:id', async (req, res) => { const { projectName, subdomain, projectType } = req.body || {} try { const result = await updateWebsiteProject(req.params.id, { projectName, subdomain, projectType }) return res.json({ ok: true, ...result }) } catch (err) { const status = err.status || 500 return res.status(status).json({ error: err.message || 'Projekt konnte nicht aktualisiert werden' }) } }) // Repository archivieren router.post('/:id/archive', async (req, res) => { try { const result = await archiveRepo(req.params.id, true) return res.json({ ok: true, ...result }) } catch (err) { const status = err.status || 500 return res.status(status).json({ error: err.message || 'Projekt konnte nicht archiviert werden' }) } }) // Repository reaktivieren router.post('/:id/unarchive', async (req, res) => { try { const result = await archiveRepo(req.params.id, false) return res.json({ ok: true, ...result }) } catch (err) { const status = err.status || 500 return res.status(status).json({ error: err.message || 'Projekt konnte nicht reaktiviert werden' }) } }) export default router