diff --git a/server/routes/api/developer.ts b/server/routes/api/developer/developer.ts similarity index 88% rename from server/routes/api/developer.ts rename to server/routes/api/developer/developer.ts index 4c1ea0b5c..2de25ea5a 100644 --- a/server/routes/api/developer.ts +++ b/server/routes/api/developer/developer.ts @@ -5,8 +5,10 @@ import userInviter, { Invite } from "@server/commands/userInviter"; import env from "@server/env"; import Logger from "@server/logging/Logger"; import auth from "@server/middlewares/authentication"; +import validate from "@server/middlewares/validate"; import { presentUser } from "@server/presenters"; import { APIContext } from "@server/types"; +import * as T from "./schema"; const router = new Router(); @@ -24,8 +26,9 @@ router.post( "developer.create_test_users", dev(), auth(), - async (ctx: APIContext) => { - const { count = 10 } = ctx.request.body; + validate(T.CreateTestUsersSchema), + async (ctx: APIContext) => { + const { count = 10 } = ctx.input.body; const { user } = ctx.state.auth; const invites = Array(Math.min(count, 100)) .fill(0) diff --git a/server/routes/api/developer/index.ts b/server/routes/api/developer/index.ts new file mode 100644 index 000000000..58e77bc00 --- /dev/null +++ b/server/routes/api/developer/index.ts @@ -0,0 +1 @@ +export { default } from "./developer"; diff --git a/server/routes/api/developer/schema.ts b/server/routes/api/developer/schema.ts new file mode 100644 index 000000000..2dd054ceb --- /dev/null +++ b/server/routes/api/developer/schema.ts @@ -0,0 +1,10 @@ +import { z } from "zod"; +import BaseSchema from "../BaseSchema"; + +export const CreateTestUsersSchema = BaseSchema.extend({ + body: z.object({ + count: z.coerce.number().default(10), + }), +}); + +export type CreateTestUsersReq = z.infer;