aboutsummaryrefslogtreecommitdiffstats
path: root/website/src/routes/welcome/+page.server.ts
diff options
context:
space:
mode:
Diffstat (limited to 'website/src/routes/welcome/+page.server.ts')
-rw-r--r--website/src/routes/welcome/+page.server.ts81
1 files changed, 49 insertions, 32 deletions
diff --git a/website/src/routes/welcome/+page.server.ts b/website/src/routes/welcome/+page.server.ts
index 503f361..5a6e024 100644
--- a/website/src/routes/welcome/+page.server.ts
+++ b/website/src/routes/welcome/+page.server.ts
@@ -3,36 +3,53 @@ import type { Actions, PageServerLoad } from './$types';
import { profileSchema } from '$lib/schemas/profile';
export const actions: Actions = {
- default: async ({ request, fetch }) => {
- console.log("hello");
- const formData = await request.formData();
- const data = Object.fromEntries(formData);
-
- // 1. Zod Validation
- const result = profileSchema.safeParse(data);
-
- if (!result.success) {
- return fail(400, {
- errors: result.error.flatten().fieldErrors,
- data: data as Record<string, string>
- });
- }
-
- // 2. Example: Check availability against your backend
- // Replace this with your actual backend URL
- const response = await fetch(`/api/check-username?u=${result.data.username}`);
- const { available } = await response.json();
-
- if (!available) {
- return fail(400, {
- errors: { username: ["This username is already taken"] },
- data: data as Record<string, string>
- });
- }
-
- // 3. Success: Send to backend to create profile
- // await fetch('...', { method: 'POST', body: JSON.stringify(result.data) });
-
- throw redirect(303, '/dashboard');
- }
+ default: async ({ request, fetch }) => {
+ console.log('hello');
+ const formData = await request.formData();
+ const data = Object.fromEntries(formData);
+
+ const result = profileSchema.safeParse(data);
+
+ if (!result.success) {
+ return fail(400, {
+ errors: result.error.flatten().fieldErrors,
+ data: data as Record<string, string>,
+ });
+ }
+
+ const response = await fetch(`/api/check-username?u=${result.data.username}`);
+ const { available } = await response.json();
+
+ if (!available) {
+ return fail(400, {
+ errors: { username: ['This username is already taken'] },
+ data: data as Record<string, string>,
+ });
+ }
+
+ // 3. Success: Send to backend to create profile
+ // await fetch('...', { method: 'POST', body: JSON.stringify(result.data) });
+
+ throw redirect(303, '/dashboard');
+ },
+};
+
+export const load = async ({ fetch, request }) => {
+ const res = await fetch('http://localhost:2210/me', {
+ headers: {
+ cookie: request.headers.get('cookie') || '',
+ },
+ });
+
+ if (res.status === 401) throw redirect(302, '/login');
+
+ const userData = await res.json();
+
+ // if (userData.is_onboarded) {
+ // throw redirect(302, '/dashboard');
+ // }
+ //
+ return {
+ user: userData,
+ };
};