diff --git a/next-swagger-doc.json b/next-swagger-doc.json index 7af9ffe..eec01cb 100644 --- a/next-swagger-doc.json +++ b/next-swagger-doc.json @@ -21,6 +21,29 @@ } } }, + "ZodErrorResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "default": false + }, + "message": { + "type": "string", + "description": "Error message" + }, + "errors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "path": { "type": "string" }, + "message": { "type": "string" } + } + } + } + } + }, "User": { "type": "object", "properties": { @@ -30,7 +53,9 @@ "last_name": { "type": "string" }, "email": { "type": "string", "format": "email" }, "image": { "type": "string", "format": "uri" }, - "timezone": { "type": "string", "description": "User timezone" } + "timezone": { "type": "string", "description": "User timezone" }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" } } }, "PublicUser": { @@ -76,9 +101,17 @@ "participants": { "type": "array", "items": { - "$ref": "#/components/schemas/Participant" + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/SimpleUser" + }, + "status": { "type": "string" } + } } - } + }, + "created_at": { "type": "string", "format": "date-time" }, + "updated_at": { "type": "string", "format": "date-time" } } } } diff --git a/src/auth.ts b/src/auth.ts index 405b729..a490900 100644 --- a/src/auth.ts +++ b/src/auth.ts @@ -37,7 +37,7 @@ const providers: Provider[] = [ if (process.env.DISABLE_PASSWORD_LOGIN) return null; try { - const { email, password } = await loginSchema.parseAsync(c); + const { email, password } = await loginClientSchema.parseAsync(c); const user = await prisma.user.findFirst({ where: { OR: [{ email }, { name: email }] }, diff --git a/src/components/forms/login-form.tsx b/src/components/forms/login-form.tsx index 8f6b709..230b578 100644 --- a/src/components/forms/login-form.tsx +++ b/src/components/forms/login-form.tsx @@ -18,7 +18,7 @@ function LoginFormElement({ formRef?: React.RefObject; }) { const { handleSubmit, formState, register, setError } = - useZodForm(loginSchema); + useZodForm(loginClientSchema); const router = useRouter(); const onSubmit = handleSubmit(async (data) => { @@ -95,7 +95,7 @@ function RegisterFormElement({ formRef?: React.RefObject; }) { const { handleSubmit, formState, register, setError } = - useZodForm(registerSchema); + useZodForm(registerClientSchema); const onSubmit = handleSubmit(async (data) => { try { diff --git a/src/lib/auth/login.ts b/src/lib/auth/login.ts index 1c03356..db90b1e 100644 --- a/src/lib/auth/login.ts +++ b/src/lib/auth/login.ts @@ -4,7 +4,7 @@ import { z } from 'zod/v4'; import { loginSchema } from './validation'; import { signIn } from '@/auth'; -export async function loginAction(data: z.infer) { +export async function loginAction(data: z.infer) { try { await signIn('credentials', { ...data,