API sprejme publishedAt pri uvozu, da uvozeni clanki ne nosijo danasnjega datuma

This commit is contained in:
FOLX Bot 2026-08-16 21:04:12 +02:00
parent 78ef1848dc
commit 0b7cf9e5f5

View File

@ -268,6 +268,12 @@ export async function registerRoutes(
res.json({ ...article, views: article.views + (isNew ? 1 : 0) });
});
function _parseDate(v: any): Date | null {
if (!v) return null;
const d = new Date(v);
return isNaN(d.getTime()) ? null : d;
}
app.post("/api/articles", requireApiKey, async (req, res) => {
const parsed = insertArticleSchema.safeParse(req.body);
if (!parsed.success) {
@ -277,7 +283,12 @@ export async function registerRoutes(
if (existing) {
return res.status(409).json({ message: `Artikel "${existing.title}" existiert bereits (ID: ${existing.id})` });
}
const article = await storage.createArticle(parsed.data);
// publishedAt iz zunanjega vira (uvoz z ONE): shema ga sicer izpusti, zato
// ga sprejmemo posebej - drugace bi vsi uvozeni clanki nosili danasnji datum.
const data: any = { ...parsed.data };
const pub = _parseDate(req.body?.publishedAt);
if (pub) data.publishedAt = pub;
const article = await storage.createArticle(data);
res.status(201).json(article);
});
@ -287,7 +298,10 @@ export async function registerRoutes(
if (!partial.success) {
return res.status(400).json({ message: "Invalid article data", errors: partial.error.flatten() });
}
const article = await storage.updateArticle(id, partial.data);
const patch: any = { ...partial.data };
const pubP = _parseDate(req.body?.publishedAt);
if (pubP) patch.publishedAt = pubP;
const article = await storage.updateArticle(id, patch);
if (!article) {
return res.status(404).json({ message: "Article not found" });
}