feat(auth): add sign-in/sign-up/sign-out controllers with Zod validation

This commit is contained in:
2026-05-05 07:19:19 +02:00
parent 2ad6b21f17
commit 29dea75a62
6 changed files with 210 additions and 0 deletions

View File

@@ -0,0 +1,21 @@
import { z } from "zod";
import { InputParseError } from "../../entities/errors";
import type { Cookie } from "../../entities/cookie";
import { signInUseCase } from "../../application/use-cases/sign-in.use-case";
const inputSchema = z.object({
username: z.string().min(3).max(31),
password: z.string().min(6).max(255),
});
export async function signInController(
input: Partial<z.infer<typeof inputSchema>>,
): Promise<Cookie> {
const parsed = inputSchema.safeParse(input);
if (!parsed.success) {
throw new InputParseError("Invalid sign-in input", { cause: parsed.error });
}
const { cookie } = await signInUseCase(parsed.data);
return cookie;
}