import { InputParseError } from "../../entities/errors/common"; import { signInInputSchema, type ISignInUseCase, type SignInOutput, } from "../../application/use-cases/sign-in.use-case"; function presenter(value: SignInOutput) { return value.cookie; } export type ISignInController = ReturnType; export const signInController = (signInUseCase: ISignInUseCase) => async (input: unknown): Promise> => { const parsed = signInInputSchema.safeParse(input); if (!parsed.success) { throw new InputParseError("Invalid sign-in input", { cause: parsed.error }); } const result = await signInUseCase(parsed.data); return presenter(result); };