fix zod validations and prisma query for admin teams

This commit is contained in:
Francis Cao 2025-10-14 09:41:02 -07:00
parent df3ae72ab7
commit 9fb38f6970
3 changed files with 19 additions and 15 deletions

View file

@ -24,22 +24,26 @@ export async function GET(request: Request) {
const teams = await getTeams(
{
include: {
_count: {
select: {
members: true,
websites: true,
},
},
members: {
select: {
include: {
user: {
omit: {
password: true,
select: {
id: true,
username: true,
},
},
},
where: {
role: 'team-owner',
},
_count: {
select: {
websites: {
where: { deletedAt: null },
},
members: {
where: {
user: { deletedAt: null },
},
},
},
},
},

View file

@ -1,6 +1,6 @@
import { z } from 'zod';
import { uuid } from '@/lib/crypto';
import { pagingParams, reportSchema } from '@/lib/schema';
import { pagingParams, reportSchema, reportTypeParam } from '@/lib/schema';
import { parseRequest } from '@/lib/request';
import { canViewWebsite, canUpdateWebsite } from '@/permissions';
import { unauthorized, json } from '@/lib/response';
@ -9,7 +9,7 @@ import { getReports, createReport } from '@/queries/prisma';
export async function GET(request: Request) {
const schema = z.object({
websiteId: z.uuid(),
type: z.string().optional(),
type: reportTypeParam.optional(),
...pagingParams,
});

View file

@ -26,9 +26,9 @@ export async function GET(request: Request, { params }: { params: Promise<{ user
export async function POST(request: Request, { params }: { params: Promise<{ userId: string }> }) {
const schema = z.object({
username: z.string().max(255),
username: z.string().max(255).optional(),
password: z.string().max(255).optional(),
role: userRoleParam,
role: userRoleParam.optional(),
});
const { auth, body, error } = await parseRequest(request, schema);