diff --git a/src/routes/login/register/+page.server.ts b/src/routes/login/register/+page.server.ts index 54a4ab6..044500f 100644 --- a/src/routes/login/register/+page.server.ts +++ b/src/routes/login/register/+page.server.ts @@ -1,5 +1,8 @@ +import { RegisterResponseCause } from "$lib/errors"; import type { Actions } from "./$types"; +import { fail } from "@sveltejs/kit" + export const actions = { register: async ({ request, fetch }) => { @@ -10,7 +13,25 @@ export const actions = { body: await request.formData() }) - console.log(result) + const result_body = await result.json() + + if (!result.ok) { + if (!result_body.cause) { + return fail(500, { message: "Interner Fehler, versuche es erneut." }) + } + + switch (result_body.cause) { + case RegisterResponseCause.MalformedRequest: return fail(400, { message: "Bitte versuche es erneut." }) + case RegisterResponseCause.EmailLength: return fail(400, { message: "Bitte gib eine Email ein." }) + case RegisterResponseCause.EmailFormat: return fail(400, { message: "Das Format der Email ist nicht gültig." }) + case RegisterResponseCause.EmailDuplicate: return fail(409, { message: "Email wird bereits verwendet." }) + case RegisterResponseCause.DisplayNameLength: return fail(400, { message: "Bitt gib einen Display Namen ein" }) + case RegisterResponseCause.PasswordLength: return fail(400, { message: "Bitte gib ein Passwort ein." }) + default: + return fail(500, { message: "Ein interner Fehler ist aufgetreten. Bitte versuche es erneut."}) + } + } + return { message: "Erfolg" } } diff --git a/src/routes/login/register/+page.svelte b/src/routes/login/register/+page.svelte index 82480f6..bb4befe 100644 --- a/src/routes/login/register/+page.svelte +++ b/src/routes/login/register/+page.svelte @@ -1,4 +1,8 @@ @@ -8,6 +12,7 @@

Login

+

{form?.message}

@@ -25,6 +30,8 @@ width: 100%; height: 100%; + padding-top: 100px; + flex-direction: column; justify-content: center; align-items: center; @@ -42,6 +49,11 @@ text-align: center; grid-column: 1 / span 2; } + + .grid > p { + width: 100%; + grid-column: 1 / span 2; + } .grid > button { width: 50%; @@ -50,4 +62,8 @@ grid-column: 2; } + .error_msg { + color: red; + } +