From e3bfbec53deb0348c15cc6986bd38637f010c3dc Mon Sep 17 00:00:00 2001 From: TZGyn Date: Sat, 24 Jun 2023 14:35:03 +0800 Subject: [PATCH] Added zod schema to user composable --- composables/user.ts | 61 ++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/composables/user.ts b/composables/user.ts index efeb920..cae2075 100644 --- a/composables/user.ts +++ b/composables/user.ts @@ -1,50 +1,49 @@ -import { AuthError } from '@supabase/gotrue-js' +import { z } from 'zod' -const returnMain = (): void => { - navigateTo('/notes') +const userSchema = z.object({ + email: z.string().email(), + password: z.string(), +}) + +const returnMain = () => { + navigateTo('/notes') } -const userSignOut = async (): Promise => { - const supabase = useSupabaseAuthClient() +const userSignOut = async () => { + const supabase = useSupabaseAuthClient() - const { error } = await supabase.auth.signOut() + const { error } = await supabase.auth.signOut() - if (error) return error + if (error) return error - returnMain() + returnMain() } -const userSignIn = async ( - email: string, - password: string -): Promise => { - const { data: user, error } = - await useSupabaseAuthClient().auth.signInWithPassword({ - email: email, - password: password, - }) +const userSignIn = async (email: unknown, password: unknown) => { + const parsedUser = userSchema.safeParse({ email, password }) + + if (!parsedUser.success) return - console.log('user', user) + const { data: user, error } = + await useSupabaseAuthClient().auth.signInWithPassword(parsedUser.data) - if (error) return error + if (error) return error - returnMain() + returnMain() } -const userSignUp = async ( - email: string, - password: string -): Promise => { - const { data: user, error } = await useSupabaseAuthClient().auth.signUp({ - email: email, - password: password, - }) +const userSignUp = async (email: unknown, password: unknown) => { + const parsedUser = userSchema.safeParse({ email, password }) + + if (!parsedUser.success) return - console.log('user', user) + const { data: user, error } = await useSupabaseAuthClient().auth.signUp( + parsedUser.data + ) - if (error) return error + if (error) return error - returnMain() + returnMain() } export { userSignIn, userSignOut, userSignUp }