feat(api): add registration endpoint
This commit is contained in:
parent
a59b3ef303
commit
2bcedca7fb
@ -1,3 +1,45 @@
|
|||||||
export default eventHandler((event) => {
|
import { weirdToNormalChars as w2nc } from "weird-to-normal-chars";
|
||||||
|
import crypto from "crypto";
|
||||||
|
import { usernameRegex } from "~/lib/server/constants";
|
||||||
|
import { User } from "~/models/user";
|
||||||
|
import mongoose from "mongoose";
|
||||||
|
import captcha from "~/lib/server/middlewareButNotReally/captcha";
|
||||||
|
|
||||||
})
|
export default eventHandler(async (event) => {
|
||||||
|
const body = await readBody(event);
|
||||||
|
console.log(typeof body);
|
||||||
|
console.log(body);
|
||||||
|
if (!body.username || !body.password || !body.email) {
|
||||||
|
throw createError({ statusCode: 400 });
|
||||||
|
}
|
||||||
|
await captcha(event);
|
||||||
|
console.log("fields exist");
|
||||||
|
const user = await User.findOne({
|
||||||
|
$or: [
|
||||||
|
{ username: usernameRegex(body.username) },
|
||||||
|
{ email: (body.email as string).toLowerCase() },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
console.log("after f0", user);
|
||||||
|
if (user)
|
||||||
|
throw createError({
|
||||||
|
statusCode: 400,
|
||||||
|
message: "A user with that username or email already exists.",
|
||||||
|
});
|
||||||
|
let nuser = new User({
|
||||||
|
email: body.email.toLowerCase(),
|
||||||
|
username: w2nc(body.username.trim()),
|
||||||
|
password: User.generateHash(body.password),
|
||||||
|
auth: {
|
||||||
|
activationKey: crypto.randomBytes(256).toString("hex"),
|
||||||
|
emailVerified: false,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
console.log("nu", nuser);
|
||||||
|
console.log("nnibg", mongoose.connections);
|
||||||
|
await nuser.save();
|
||||||
|
console.log("savey", await nuser.save());
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user