const express = require('express'); const db = require('../db'); const { requireAuth } = require('../auth'); const { resolveActingProfile } = require('../lib/account'); const { loadBusinesses } = require('../lib/queries'); const router = express.Router(); router.use(requireAuth); const BUSINESS_TYPES = ['small_business', 'company', 'authority']; async function acting(req) { const profileId = (req.body && req.body.profileId) || req.query.profileId; return resolveActingProfile(req.account, profileId); } // GET /api/businesses?profileId= router.get('/businesses', async (req, res) => { const { profile } = await acting(req); res.json({ businesses: await loadBusinesses(profile ? profile.id : 0) }); }); // POST /api/business/status {profileId, status: open|closed} -> eigenes Gewerbe schalten router.post('/business/status', async (req, res) => { const { profile } = await acting(req); if (!profile) return res.status(400).json({ error: 'no_profile' }); if (!BUSINESS_TYPES.includes(profile.profile_type) || !profile.can_edit_profile) { return res.status(403).json({ error: 'not_allowed' }); } const status = req.body.status === 'open' ? 'open' : req.body.status === 'closed' ? 'closed' : null; if (!status) return res.status(400).json({ error: 'invalid_status' }); await db.exec( `INSERT INTO bleeter_business_status (profile_id, status, source) VALUES (?, ?, 'web') ON DUPLICATE KEY UPDATE status = VALUES(status), source = VALUES(source)`, [profile.id, status] ); res.json({ ok: true, status }); }); module.exports = router;