diff --git a/src/lib/components/UserAvatar.svelte b/src/lib/components/UserAvatar.svelte index 72ca660..c25888e 100644 --- a/src/lib/components/UserAvatar.svelte +++ b/src/lib/components/UserAvatar.svelte @@ -1,8 +1,12 @@ diff --git a/src/routes/settings/+page.server.ts b/src/routes/settings/+page.server.ts new file mode 100644 index 0000000..4430ca7 --- /dev/null +++ b/src/routes/settings/+page.server.ts @@ -0,0 +1,48 @@ +import { redirect, type Actions } from "@sveltejs/kit"; +import type { PageServerLoad } from "./$types"; +import { db } from "$lib/db/db.server"; +import { userTable } from "$lib/db/schema"; +import { eq } from "drizzle-orm"; + +export const load: PageServerLoad = async (event) => { + if (event.locals.user) + return { + user: event.locals.user, + }; + return redirect(302, "/login"); +}; + +export const actions: Actions = { + default: async (event: { request: { formData: () => any; }; }) => { + const formData = await event.request.formData(); + let userId = formData.get("user_id"); + let username = formData.get("username"); + let firstName = formData.get("first_name"); + let lastName = formData.get("last_name"); + + if (!userId) { + return { + status: 400, + body: { + message: "User ID is required" + } + }; + } + + await db.update(userTable) + .set({ + username: username, + first_name: firstName, + last_name: lastName, + }) + .where(eq(userTable.id, userId)); + + return { + status: 200, + body: { + message: "User updated" + + } + }; + } +}; \ No newline at end of file diff --git a/src/routes/settings/+page.svelte b/src/routes/settings/+page.svelte new file mode 100644 index 0000000..139b498 --- /dev/null +++ b/src/routes/settings/+page.svelte @@ -0,0 +1,51 @@ + + +

Settings Page

+ +

User Account Settings

+ +
+
+ +
+ +
+
+ + + +
+
+ +For Debug Use: UUID={user_id} diff --git a/src/routes/user/+page.svelte b/src/routes/user/+page.svelte deleted file mode 100644 index a6fb07a..0000000 --- a/src/routes/user/+page.svelte +++ /dev/null @@ -1 +0,0 @@ -

User Page