Initial commit - Stand 26.04.2026
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
const fs = require('fs');
|
||||
|
||||
const filePath = 'C:\\Users\\renet\\.openclaw\\workspace\\buchhaltungs-app\\backend\\routes\\nebenkosten.js';
|
||||
let content = fs.readFileSync(filePath, 'utf8');
|
||||
|
||||
const kostenRoutes = `
|
||||
|
||||
// ========== OBJEKTKOSTEN ==========
|
||||
|
||||
// Kosten für ein Objekt laden (optional gefiltert nach Jahr)
|
||||
app.get('/api/objekte/:id/kosten', async (req, res) => {
|
||||
try {
|
||||
const { jahr } = req.query;
|
||||
let query = 'SELECT * FROM objektkosten WHERE objekt_id = $1';
|
||||
const params = [req.params.id];
|
||||
|
||||
if (jahr) {
|
||||
query += ' AND jahr = $2';
|
||||
params.push(jahr);
|
||||
}
|
||||
|
||||
query += ' ORDER BY jahr DESC, kategorie ASC';
|
||||
|
||||
const result = await pool.query(query, params);
|
||||
res.json(result.rows);
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
// Kosten hinzufügen
|
||||
app.post('/api/objekte/:id/kosten', async (req, res) => {
|
||||
try {
|
||||
const { kategorie, betrag, jahr } = req.body;
|
||||
const result = await pool.query(
|
||||
'INSERT INTO objektkosten (objekt_id, kategorie, betrag, jahr) VALUES ($1, $2, $3, $4) RETURNING *',
|
||||
[req.params.id, kategorie, betrag, jahr]
|
||||
);
|
||||
res.json(result.rows[0]);
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
// Kosten löschen
|
||||
app.delete('/api/objekte/:id/kosten/:kostenId', async (req, res) => {
|
||||
try {
|
||||
await pool.query('DELETE FROM objektkosten WHERE id = $1 AND objekt_id = $2', [req.params.kostenId, req.params.id]);
|
||||
res.json({ success: true });
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
`;
|
||||
|
||||
// Finde das Ende der Objekt-DELETE Route und füge danach die Kosten-Routen ein
|
||||
const pattern = /(app\.delete\('\/api\/objekte\/:id',[\s\S]*?}\s*\);)(\s*\/\/ ========== MIETER)/;
|
||||
|
||||
if (content.match(pattern)) {
|
||||
content = content.replace(pattern, `$1${kostenRoutes}$2`);
|
||||
fs.writeFileSync(filePath, content);
|
||||
console.log('✅ Kosten-Routen erfolgreich hinzugefügt!');
|
||||
} else {
|
||||
console.error('❌ Pattern nicht gefunden');
|
||||
process.exit(1);
|
||||
}
|
||||
Reference in New Issue
Block a user