import { Request, Response } from 'express'; import { prisma } from '../../../src/lib/prisma'; export async function getArticle(req: Request, res: Response) { try { const article = await prisma.article.findUnique({ where: { id: req.params.id }, include: { author: { select: { id: true, displayName: true, email: true } } } }); if (!article) { return res.status(404).json({ error: 'Article not found' }); } res.json(article); } catch { res.status(500).json({ error: 'Server error' }); } } export async function createArticle(req: Request, res: Response) { try { const { title, excerpt, content, category, city, coverImage, readTime } = req.body; const article = await prisma.article.create({ data: { title, excerpt, content, category, city, coverImage, readTime, authorId: req.user!.id }, include: { author: { select: { id: true, displayName: true, email: true } } } }); res.status(201).json(article); } catch { res.status(500).json({ error: 'Server error' }); } } export async function updateArticle(req: Request, res: Response) { try { const article = await prisma.article.update({ where: { id: req.params.id }, data: req.body, include: { author: { select: { id: true, displayName: true, email: true } } } }); res.json(article); } catch { res.status(500).json({ error: 'Server error' }); } } export async function deleteArticle(req: Request, res: Response) { try { await prisma.article.delete({ where: { id: req.params.id } }); res.json({ message: 'Article deleted successfully' }); } catch { res.status(500).json({ error: 'Server error' }); } }