Initial commit: IT Nexus Web-App
This commit is contained in:
45
backend/src/controllers/itTopic.controller.js
Normal file
45
backend/src/controllers/itTopic.controller.js
Normal 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 });
|
||||
};
|
||||
Reference in New Issue
Block a user