Add grouping categories feature

This commit is contained in:
2025-06-08 17:12:48 +09:00
parent fdaa7bb445
commit 3fee0294d9
3 changed files with 140 additions and 12 deletions

View File

@ -449,6 +449,40 @@ app.get("/api/feeds/:feedId/episodes", async (c) => {
}
});
app.get("/api/categories", async (c) => {
try {
const { getAllCategories } = await import("./services/database.js");
const categories = await getAllCategories();
return c.json({ categories });
} catch (error) {
console.error("Error fetching categories:", error);
return c.json({ error: "Failed to fetch categories" }, 500);
}
});
app.get("/api/feeds/by-category", async (c) => {
try {
const category = c.req.query("category");
const { getFeedsByCategory } = await import("./services/database.js");
const feeds = await getFeedsByCategory(category);
return c.json({ feeds });
} catch (error) {
console.error("Error fetching feeds by category:", error);
return c.json({ error: "Failed to fetch feeds by category" }, 500);
}
});
app.get("/api/feeds/grouped-by-category", async (c) => {
try {
const { getFeedsGroupedByCategory } = await import("./services/database.js");
const groupedFeeds = await getFeedsGroupedByCategory();
return c.json({ groupedFeeds });
} catch (error) {
console.error("Error fetching feeds grouped by category:", error);
return c.json({ error: "Failed to fetch feeds grouped by category" }, 500);
}
});
app.get("/api/episode-with-source/:episodeId", async (c) => {
try {
const episodeId = c.req.param("episodeId");