import { InputParseError } from "../../entities/errors/common"; import { getArticlesInputSchema, type GetArticlesOutput, type IGetArticlesUseCase, } from "../../application/use-cases/get-articles.use-case"; function presenter(value: GetArticlesOutput) { return value; } export type IGetArticlesController = ReturnType; export const getArticlesController = (getArticlesUseCase: IGetArticlesUseCase) => async (input: unknown): Promise> => { const parsed = getArticlesInputSchema.safeParse(input); if (!parsed.success) { throw new InputParseError("Invalid get-articles input", { cause: parsed.error }); } const result = await getArticlesUseCase(parsed.data); return presenter(result); };