import { User } from "~/models/user.model";
import rateLimit from "../../../server/middleware/rateLimit";
export default defineEventHandler(async (event) => {
await rateLimit(event);
const body = await readBody(event);
const { username, email, password } = body;
if (!username || !email || !password) {
throw createError({ statusCode: 400, statusMessage: "Missing fields" });
}
if (await User.exists({ $or: [{ username }, { email }] })) {
throw createError({
statusCode: 409,
statusMessage: "Username or email already exists",
});
}
const user = await User.create({
username,
email,
password,
role: "user",
});
return {
status: "ok",
user: { id: user._id, username: user.username, email: user.email },
};
});
import { User } from "~/models/user.model";
import rateLimit from "../../../server/middleware/rateLimit";
export default defineEventHandler(async (event) => {
await rateLimit(event);
const body = await readBody(event);
const { username, email, password } = body;
if (!username || !email || !password) {
throw createError({ statusCode: 400, statusMessage: "Missing fields" });
}
if (await User.exists({ $or: [{ username }, { email }] })) {
throw createError({
statusCode: 409,
statusMessage: "Username or email already exists",
});
}
const user = await User.create({
username,
email,
password,
role: "user",
});
return {
status: "ok",
user: { id: user._id, username: user.username, email: user.email },
};
});