Fix: Search-Route vor :id-Route registriert, damit /api/tasks/search nicht als Task-ID interpretiert wird
continuous-integration/drone/push Build is passing

This commit is contained in:
NotiBot
2026-02-03 12:57:45 +01:00
parent 064e978fc5
commit c867c5ca71
+12
View File
@@ -1116,6 +1116,18 @@ ${activeTasksWithLabels.slice(0, 5).map(t => `- [${t.priority}] [${t.label}] ${t
} }
}); });
// Search tasks - MUST be before /api/tasks/:id to avoid route conflict
app.get("/api/tasks/search", async (req, res) => {
if (!req.isAuthenticated()) return res.sendStatus(401);
try {
const query = (req.query.q as string) || "";
const tasks = await storage.searchTasks(query, (req.user as User).id);
res.json(tasks);
} catch (error) {
res.status(500).json({ error: "Failed to search tasks" });
}
});
// Helper for RBAC // Helper for RBAC
const checkTaskAccess = async (user: User, taskId: string, requiredPermission: 'read' | 'write' = 'read'): Promise<{ hasAccess: boolean, task?: Task }> => { const checkTaskAccess = async (user: User, taskId: string, requiredPermission: 'read' | 'write' = 'read'): Promise<{ hasAccess: boolean, task?: Task }> => {
const task = await storage.getTask(taskId); const task = await storage.getTask(taskId);