Aktuelles kot na ONE: vrstica rubrik Politik, Promis, Sport, Musik & Film (brez horoskopa), lastna stran in zdruzen API
This commit is contained in:
@@ -180,6 +180,32 @@ export async function registerRoutes(
|
||||
res.json(articles);
|
||||
});
|
||||
|
||||
// Rubrike, ki skupaj sestavljajo /aktuelles. Horoskop, recepti in vreme so
|
||||
// na folx.tv svoje strani, zato jih tu ni.
|
||||
const AKTUELLES_RUBRIKEN = ["Politik", "Promis", "Sport", "Musik & Film"];
|
||||
|
||||
app.get("/api/articles/aktuelles", async (req, res) => {
|
||||
try {
|
||||
const page = Math.max(1, parseInt(req.query.page as string) || 1);
|
||||
const limit = Math.min(48, parseInt(req.query.limit as string) || 12);
|
||||
const rubrik = (req.query.rubrik as string) || "";
|
||||
const wanted = rubrik && AKTUELLES_RUBRIKEN.includes(rubrik) ? [rubrik] : AKTUELLES_RUBRIKEN;
|
||||
const all = (await storage.getArticles()).filter((a) => wanted.includes(a.category));
|
||||
const total = all.length;
|
||||
const start = (page - 1) * limit;
|
||||
res.json({
|
||||
articles: all.slice(start, start + limit),
|
||||
total,
|
||||
page,
|
||||
totalPages: Math.ceil(total / limit),
|
||||
hasMore: start + limit < total,
|
||||
rubriken: AKTUELLES_RUBRIKEN,
|
||||
});
|
||||
} catch (e: any) {
|
||||
res.status(500).json({ message: e?.message || "error" });
|
||||
}
|
||||
});
|
||||
|
||||
app.get("/api/articles/category/:category", async (req, res) => {
|
||||
const page = parseInt(req.query.page as string);
|
||||
const limit = parseInt(req.query.limit as string) || 12;
|
||||
|
||||
Reference in New Issue
Block a user