Initial commit: IT Nexus Web-App

This commit is contained in:
2026-06-01 20:49:07 +02:00
commit 8023765e6c
387 changed files with 106900 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
const ItTopic = require('../models/ItTopic');
const { syncItTopicsToPlanner } = require('../services/graph.service');
exports.getAll = (req, res) => {
const { category, status } = req.query;
const data = ItTopic.getAll({ category, status });
res.json({ status: 'success', data });
};
exports.getOne = (req, res) => {
const topic = ItTopic.getById(req.params.id);
if (!topic) return res.status(404).json({ status: 'error', message: 'Thema nicht gefunden' });
res.json({ status: 'success', data: topic });
};
exports.create = (req, res) => {
const { title, category, status, priority, responsible, target_date, description, notes } = req.body;
if (!title?.trim()) {
return res.status(400).json({ status: 'error', message: 'Titel ist erforderlich' });
}
const topic = ItTopic.create({ title: title.trim(), category, status, priority, responsible, target_date, description, notes });
res.status(201).json({ status: 'success', data: topic });
};
exports.update = (req, res) => {
const topic = ItTopic.getById(req.params.id);
if (!topic) return res.status(404).json({ status: 'error', message: 'Thema nicht gefunden' });
const { title, category, status, priority, responsible, target_date, description, notes, sort_order } = req.body;
const updated = ItTopic.update(req.params.id, { title, category, status, priority, responsible, target_date, description, notes, sort_order });
res.json({ status: 'success', data: updated });
};
exports.remove = (req, res) => {
const ok = ItTopic.delete(req.params.id);
if (!ok) return res.status(404).json({ status: 'error', message: 'Thema nicht gefunden' });
res.json({ status: 'success', message: 'Thema gelöscht' });
};
exports.syncToPlanner = async (req, res) => {
const planId = process.env.PLANNER_PLAN_ID;
if (!planId) return res.status(400).json({ status: 'error', message: 'PLANNER_PLAN_ID nicht konfiguriert' });
const topics = ItTopic.getAll({});
const result = await syncItTopicsToPlanner(topics, planId);
res.json({ status: 'success', data: result });
};