better navbar

This commit is contained in:
2023-02-03 19:55:33 +02:00
parent 926890b324
commit 3ff1e24e7c
74 changed files with 839 additions and 415 deletions

View File

@@ -3,9 +3,9 @@ import Joi from "joi";
import { fail } from "@sveltejs/kit";
export const load = (() => {
return {
title: "Pubnix registration"
};
return {
title: "Pubnix registration"
};
}) satisfies PageServerLoad;
export const actions: Actions = {
@@ -13,36 +13,65 @@ export const actions: Actions = {
const formData = await request.formData();
const BodyTypeSchema = Joi.object({
username: Joi.string().required().alphanum().message("Username must be alphanumeric"),
username: Joi.string()
.required()
.alphanum()
.message("Username must be alphanumeric"),
email: Joi.string().email().required(),
ssh: Joi.string().required().pattern(/^(ssh-rsa|ssh-ed25519|ecdsa-sha2-nistp256|ecdsa-sha2-nistp384|ecdsa-sha2-nistp521) [A-Za-z0-9+/]+[=]{0,3}( [^@]+@[^@]+)?$/).message("Invalid SSH key"),
ssh: Joi.string()
.required()
.pattern(
/^(ssh-rsa|ssh-ed25519|ecdsa-sha2-nistp256|ecdsa-sha2-nistp384|ecdsa-sha2-nistp521) [A-Za-z0-9+/]+[=]{0,3}( [^@]+@[^@]+)?$/
)
.message("Invalid SSH key"),
ip: Joi.string().required().ip()
});
formData.append("ip", getClientAddress());
if (BodyTypeSchema.validate(Object.fromEntries(formData.entries())).error) {
return fail(400, { error: true, message: String(BodyTypeSchema.validate(Object.fromEntries(formData.entries())).error) });
if (
BodyTypeSchema.validate(Object.fromEntries(formData.entries()))
.error
) {
return fail(400, {
error: true,
message: String(
BodyTypeSchema.validate(
Object.fromEntries(formData.entries())
).error
)
});
} else {
try {
const request = await fetch("https://publapi.p.projectsegfau.lt/signup", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: new URLSearchParams(formData as any).toString()
})
const request = await fetch(
"https://publapi.p.projectsegfau.lt/signup",
{
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: new URLSearchParams(formData as any).toString()
}
);
const json = await request.json();
if (request.ok) {
return { success: true, message: json.message, username: json.username, email: json.email };
return {
success: true,
message: json.message,
username: json.username,
email: json.email
};
} else {
return fail(400, { error: true, message: "Error: " + request.status });
return fail(400, {
error: true,
message: "Error: " + request.status
});
}
} catch (err) {
return { error: true, message: "Error: " + err };
}
}
}
}
};