Files
agentic-dev/packages/blog/src/interface-adapters/controllers/get-articles.controller.ts
Danijel Martinek 614c9014ad style(blog): add section dividers + drop redundant presenter comment
Code-quality reviewer flagged stylistic divergence from auth's pattern:
- All 3 blog use cases now have // ── Input ──... / ── Output ──... /
  ── Use case ──... section dividers (consistent with auth Task 3 + plan
  template §4.1).
- Removed inline comment in get-articles controller's presenter that
  appeared in only 1 of 3 controllers; identity presenters are
  self-explanatory.
2026-05-06 15:10:16 +02:00

24 lines
787 B
TypeScript

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<typeof getArticlesController>;
export const getArticlesController =
(getArticlesUseCase: IGetArticlesUseCase) =>
async (input: unknown): Promise<ReturnType<typeof presenter>> => {
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);
};