Add email via Resend

This commit is contained in:
NeilClack
2026-07-06 21:01:41 -05:00
parent 96eafafbf6
commit a42c32f014
16 changed files with 210 additions and 116 deletions
@@ -0,0 +1,52 @@
import type { PageServerLoad } from './$types';
import { error, fail, isRedirect, redirect, type Actions } from '@sveltejs/kit';
import { prisma } from '$lib/db';
import { serverFormatPhoneNumber } from '$lib/utils';
// Tell the page what to do when it loads
export const load: PageServerLoad = async ({ locals }) => {
// If locals.user doesn't exist (i.e., undefined), then the user is not logged in, \
// i.e, not authenticated nor authorized! We skip the database check early and also
// solve a problem with Prisma in case of having an undefined locals.user.id.
if (!locals.user?.id) {
throw error(403, 'not authorized');
}
const user = await prisma.user.findUnique({ where: { id: locals.user.id } });
return { user };
};
export const actions: Actions = {
default: async ({ request }) => {
const data = await request.formData();
const userID = data.get('userId') as string;
const firstName = data.get('firstName') as string;
const lastName = data.get('lastName') as string;
const phoneNumber = serverFormatPhoneNumber(data.get('phoneNumber') as string);
try {
const profile = await prisma.profile.create({
data: {
userId: userID,
firstName: firstName,
lastName: lastName,
phoneNumber: phoneNumber
}
});
if (profile) {
console.log(`created profile: ${JSON.stringify(profile)}`);
throw redirect(303, '/account');
} else {
return fail(400);
}
} catch (err) {
if (isRedirect(err)) {
throw err;
}
console.log(err);
throw error(400, 'bad request');
}
}
};