import { z } from "zod"; import { InputParseError } from "../../entities/errors/common"; import type { Media } from "../../entities/models/media"; import type { IGetMediaUseCase } from "../../application/use-cases/get-media.use-case"; const inputSchema = z.object({ id: z.string().min(1), }); export type IGetMediaController = ReturnType; export const getMediaController = (getMediaUseCase: IGetMediaUseCase) => async (input: Partial>): Promise => { const parsed = inputSchema.safeParse(input); if (!parsed.success) { throw new InputParseError("Invalid get-media input", { cause: parsed.error }); } return getMediaUseCase(parsed.data); };