42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
|
|
import type { RequestHandler } from "./$types"
|
||
|
|
|
||
|
|
import { json, error } from "@sveltejs/kit"
|
||
|
|
|
||
|
|
import UserMgmt from "$lib/server/usermgmt"
|
||
|
|
|
||
|
|
import Util from "$lib/util"
|
||
|
|
|
||
|
|
export const POST: RequestHandler = async ({ request }) => {
|
||
|
|
|
||
|
|
const data = await request.formData()
|
||
|
|
|
||
|
|
const email = data.get("email")
|
||
|
|
const password = data.get("password")
|
||
|
|
const display_name = data.get("display_name")
|
||
|
|
|
||
|
|
if (data.keys.length > 3 || !(typeof email === "string" && typeof password === "string" && typeof display_name === "string")) {
|
||
|
|
return error(400, { message: "Invalid field arguments" })
|
||
|
|
}
|
||
|
|
if (email.length == 0) {
|
||
|
|
return error(400, { message: "email must not be empty" })
|
||
|
|
}
|
||
|
|
if (password.length == 0) {
|
||
|
|
return error(400, { message: "password must not be empty" })
|
||
|
|
}
|
||
|
|
if (display_name.length == 0) {
|
||
|
|
return error(400, { message: "Display name must not be empty" })
|
||
|
|
}
|
||
|
|
|
||
|
|
if (!Util.check_email_format(email)) {
|
||
|
|
return error(400, { message: "invalid email format" })
|
||
|
|
}
|
||
|
|
|
||
|
|
try {
|
||
|
|
const user = UserMgmt.register(email, password, display_name)
|
||
|
|
} catch (e) {
|
||
|
|
return error(500)
|
||
|
|
}
|
||
|
|
|
||
|
|
return json({})
|
||
|
|
}
|