import { Request, Response } from "express"; import prisma from "../../../lib/prisma"; import { Prisma } from "@prisma/client"; import { Article, Category } from "@prisma/client"; import { ResponseError } from "../../../types/responseErrors"; export default async function handler(req: Request, res: Response) { res.setHeader("Content-Type", "application/json"); const categoryName: string = req.query.categoryName?.toString() ?? ""; const limit: number = req.query.limit ? Number(req.query.limit) : undefined; const orderBy: string = req.query.orderBy?.toString() ?? ""; const category = await prisma.category.findUnique({ where: { name: categoryName } }); let orderByObj: Prisma.Enumerable; if (orderBy === "recent") { orderByObj = { dateCreated: "desc" } } else if (orderBy === "popularity") { } await prisma.article .findMany({ where: { category: categoryName.length > 0 ? category : undefined }, include: { category: true, contentTableEntries: true }, take: limit, orderBy: orderByObj }) .then((result: Article[]) => { //! ContentTableEntries not sorted if (result !== null) { res.end(JSON.stringify(result)); } else { const error: ResponseError = { code: "404", message: "No articles found!", }; res.status(404).send(JSON.stringify(error)); } }) .catch((err) => { const error: ResponseError = { code: "500", message: err, }; res.status(500).send(JSON.stringify(error)); }); }