mirror of
https://github.com/SrIzan10/lofi.git
synced 2026-06-06 00:56:53 +00:00
59 lines
1.7 KiB
TypeScript
59 lines
1.7 KiB
TypeScript
import { fail, redirect } from '@sveltejs/kit';
|
|
import type { Actions, PageServerLoad } from './$types';
|
|
|
|
import { APIError } from 'better-auth';
|
|
|
|
const getErrorMessage = (error: unknown, fallback: string) => {
|
|
if (error instanceof APIError) return error.message || fallback;
|
|
if (error instanceof Error) return error.message || fallback;
|
|
if (typeof error === 'object' && error && 'message' in error && typeof error.message === 'string') {
|
|
return error.message || fallback;
|
|
}
|
|
return fallback;
|
|
};
|
|
|
|
export const load: PageServerLoad = (event) => {
|
|
if (event.locals.user) {
|
|
return redirect(302, '/demo/better-auth');
|
|
}
|
|
return {};
|
|
};
|
|
|
|
export const actions: Actions = {
|
|
signInAccountNumber: async (event) => {
|
|
const { auth } = event.locals;
|
|
|
|
const formData = await event.request.formData();
|
|
const accountNumber = formData.get('accountNumber')?.toString().replace(/\D/g, '') ?? '';
|
|
|
|
try {
|
|
await auth.api.signInAccountNumber({
|
|
body: {
|
|
accountNumber,
|
|
},
|
|
});
|
|
} catch (error) {
|
|
console.error('Demo Better Auth account number sign-in failed', { accountNumber, error });
|
|
return fail(error instanceof APIError ? 400 : 500, {
|
|
message: getErrorMessage(error, 'Account number sign-in failed'),
|
|
});
|
|
}
|
|
|
|
return redirect(302, '/demo/better-auth');
|
|
},
|
|
createAccount: async (event) => {
|
|
const { auth } = event.locals;
|
|
|
|
try {
|
|
await auth.api.signInAnonymous();
|
|
} catch (error) {
|
|
console.error('Demo Better Auth account creation failed', { error });
|
|
return fail(error instanceof APIError ? 400 : 500, {
|
|
message: getErrorMessage(error, 'Account creation failed'),
|
|
});
|
|
}
|
|
|
|
return redirect(302, '/demo/better-auth');
|
|
},
|
|
};
|