diff --git a/src/app/api/search/user/route.ts b/src/app/api/search/user/route.ts index 0f6d0f5..5146acd 100644 --- a/src/app/api/search/user/route.ts +++ b/src/app/api/search/user/route.ts @@ -5,8 +5,8 @@ import { z } from 'zod/v4'; const getSearchUserSchema = z.object({ query: z.string().optional().default(''), - count: z.int().min(1).max(100).default(10), - page: z.int().min(1).default(1), + count: z.coerce.number().min(1).max(100).default(10), + page: z.coerce.number().min(1).default(1), sort_by: z .enum(['created_at', 'name', 'first_name', 'last_name', 'id']) .optional() @@ -109,7 +109,7 @@ export const GET = auth(async function GET(req) { { status: 404 }, ); - const dataRaw = new URL(req.url).searchParams; + const dataRaw = Object.fromEntries(new URL(req.url).searchParams); const data = await getSearchUserSchema.safeParseAsync(dataRaw); if (!data.success) { return NextResponse.json( @@ -146,9 +146,19 @@ export const GET = auth(async function GET(req) { }, }); + const userCount = await prisma.user.count({ + where: { + OR: [ + { name: { contains: query } }, + { first_name: { contains: query } }, + { last_name: { contains: query } }, + ], + }, + }); + return NextResponse.json({ success: true, users: dbUsers, - count: dbUsers.length, + count: userCount, }); });