Compare commits

...

2 Commits

@ -1,50 +1,49 @@
import { AuthError } from '@supabase/gotrue-js' import { z } from 'zod'
const returnMain = (): void => { const userSchema = z.object({
navigateTo('/notes') email: z.string().email(),
password: z.string(),
})
const returnMain = () => {
navigateTo('/notes')
} }
const userSignOut = async (): Promise<AuthError | void> => { const userSignOut = async () => {
const supabase = useSupabaseAuthClient() 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 ( const userSignIn = async (email: unknown, password: unknown) => {
email: string, const parsedUser = userSchema.safeParse({ email, password })
password: string
): Promise<AuthError | void> => { if (!parsedUser.success) return
const { data: user, error } =
await useSupabaseAuthClient().auth.signInWithPassword({
email: email,
password: password,
})
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 ( const userSignUp = async (email: unknown, password: unknown) => {
email: string, const parsedUser = userSchema.safeParse({ email, password })
password: string
): Promise<AuthError | void> => { if (!parsedUser.success) return
const { data: user, error } = await useSupabaseAuthClient().auth.signUp({
email: email,
password: password,
})
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 } export { userSignIn, userSignOut, userSignUp }

@ -1,25 +1,24 @@
import { serverSupabaseUser, serverSupabaseClient } from '#supabase/server' import { serverSupabaseUser, serverSupabaseClient } from '#supabase/server'
import { Database } from 'types/database.types'
export default defineEventHandler(async (event): Promise<DeleteResponse> => { export default defineEventHandler(async (event): Promise<DeleteResponse> => {
const user = await serverSupabaseUser(event) const user = await serverSupabaseUser(event)
const supabase = serverSupabaseClient<Database>(event) const supabase = serverSupabaseClient(event)
const query = getQuery(event) const query = getQuery(event)
if (!user) { if (!user) {
throw createError({ statusCode: 401, message: 'Unauthorized' }) throw createError({ statusCode: 401, message: 'Unauthorized' })
} }
const { data: data, error } = await supabase const { data: data, error } = await supabase
.from('notes') .from('notes')
.delete() .delete()
.eq('uuid', query.id) .eq('uuid', query.id)
.eq('user_id', user.id) .eq('user_id', user.id)
return { return {
status: 200, status: 200,
data: data, data: data,
message: 'Note Deleted', message: 'Note Deleted',
error: error, error: error,
} }
}) })

@ -1,26 +1,25 @@
import { serverSupabaseUser, serverSupabaseClient } from '#supabase/server' import { serverSupabaseUser, serverSupabaseClient } from '#supabase/server'
import { Database } from 'types/database.types'
export default defineEventHandler(async (event) => { export default defineEventHandler(async (event) => {
const user = await serverSupabaseUser(event) const user = await serverSupabaseUser(event)
const supabase = serverSupabaseClient<Database>(event) const supabase = serverSupabaseClient(event)
const query = getQuery(event) const query = getQuery(event)
if (!user) { if (!user) {
throw createError({ statusCode: 401, message: 'Unauthorized' }) throw createError({ statusCode: 401, message: 'Unauthorized' })
} }
const { data: note, error } = await supabase const { data: note, error } = await supabase
.from('notes') .from('notes')
.select('*') .select('*')
.eq('uuid', query.id) .eq('uuid', query.id)
.eq('user_id', user.id) .eq('user_id', user.id)
.limit(1) .limit(1)
.single() .single()
if (!note) { if (!note) {
throw createError({ statusCode: 500, message: 'No note found' }) throw createError({ statusCode: 500, message: 'No note found' })
} }
return { note: note, error: error } return { note: note, error: error }
}) })

@ -1,23 +1,22 @@
import { serverSupabaseUser, serverSupabaseClient } from '#supabase/server' import { serverSupabaseUser, serverSupabaseClient } from '#supabase/server'
import { Database } from 'types/database.types'
export default defineEventHandler(async (event): Promise<ApiResponse> => { export default defineEventHandler(async (event): Promise<ApiResponse> => {
const user = await serverSupabaseUser(event) const user = await serverSupabaseUser(event)
const supabase = serverSupabaseClient<Database>(event) const supabase = serverSupabaseClient(event)
const query = getQuery(event) const query = getQuery(event)
const body = await readBody(event) const body = await readBody(event)
const title: string = body.title const title: string = body.title
const description: string = body.description const description: string = body.description
if (!user) { if (!user) {
throw createError({ statusCode: 401, message: 'Unauthorized' }) throw createError({ statusCode: 401, message: 'Unauthorized' })
} }
const { data: note, error } = await supabase const { data: note, error } = await supabase
.from('notes') .from('notes')
.update({ title: title, description: description }) .update({ title: title, description: description })
.eq('uuid', query.id) .eq('uuid', query.id)
return { status: 200, message: 'Note Updated', error: error } return { status: 200, message: 'Note Updated', error: error }
}) })

@ -1,31 +1,30 @@
import { serverSupabaseUser, serverSupabaseClient } from '#supabase/server' import { serverSupabaseUser, serverSupabaseClient } from '#supabase/server'
import { Database } from 'types/database.types'
export default defineEventHandler(async (event) => { export default defineEventHandler(async (event) => {
const user = await serverSupabaseUser(event) const user = await serverSupabaseUser(event)
const supabase = serverSupabaseClient<Database>(event) const supabase = serverSupabaseClient(event)
if (!user) { if (!user) {
throw createError({ statusCode: 401, message: 'Unauthorized' }) throw createError({ statusCode: 401, message: 'Unauthorized' })
} }
const { data: status, error: insertError } = await supabase const { data: status, error: insertError } = await supabase
.from('notes') .from('notes')
.insert({ title: '', description: '', user_id: user.id }) .insert({ title: '', description: '', user_id: user.id })
const { data: note, error: fetchError } = await supabase const { data: note, error: fetchError } = await supabase
.from('notes') .from('notes')
.select('uuid') .select('uuid')
.eq('user_id', user.id) .eq('user_id', user.id)
.order('created_at', { ascending: false }) .order('created_at', { ascending: false })
.limit(1) .limit(1)
.single() .single()
return { return {
statusCode: 200, statusCode: 200,
note: note, note: note,
message: 'Note Created', message: 'Note Created',
insertError: insertError, insertError: insertError,
fetchError: fetchError, fetchError: fetchError,
} }
}) })

@ -1,18 +1,17 @@
import { serverSupabaseUser, serverSupabaseClient } from '#supabase/server' import { serverSupabaseUser, serverSupabaseClient } from '#supabase/server'
import { Database } from 'types/database.types'
export default defineEventHandler(async (event) => { export default defineEventHandler(async (event) => {
const user = await serverSupabaseUser(event) const user = await serverSupabaseUser(event)
const supabase = serverSupabaseClient<Database>(event) const supabase = serverSupabaseClient(event)
if (!user) { if (!user) {
throw createError({ statusCode: 401, message: 'Unauthorized' }) throw createError({ statusCode: 401, message: 'Unauthorized' })
} }
const { data: notes, error } = await supabase const { data: notes, error } = await supabase
.from('notes') .from('notes')
.select('*') .select('*')
.eq('user_id', user.id) .eq('user_id', user.id)
return { notes: notes, error: error } return { notes: notes, error: error }
}) })

@ -1,18 +1,17 @@
import { serverSupabaseUser, serverSupabaseClient } from '#supabase/server' import { serverSupabaseUser, serverSupabaseClient } from '#supabase/server'
import { Database } from 'types/database.types'
export default defineEventHandler(async (event) => { export default defineEventHandler(async (event) => {
const user = await serverSupabaseUser(event) const user = await serverSupabaseUser(event)
const supabase = serverSupabaseClient<Database>(event) const supabase = serverSupabaseClient(event)
if (!user) { if (!user) {
throw createError({ statusCode: 401, message: 'Unauthorized' }) throw createError({ statusCode: 401, message: 'Unauthorized' })
} }
const { count, error } = await supabase const { count, error } = await supabase
.from('notes') .from('notes')
.select('*', { count: 'exact', head: true }) .select('*', { count: 'exact', head: true })
.eq('user_id', user.id) .eq('user_id', user.id)
return { count: count, message: 'Profile', error: error } return { count: count, message: 'Profile', error: error }
}) })

@ -1,21 +0,0 @@
export interface Database {
public: {
Tables: {
notes: {
Row: {
id: number
uuid: string
title: string
description: string
user_id: string
created_at: string
} // The data expected to be returned from a "select" statement.
Insert: {} // The data expected passed to an "insert" statement.
Update: {
title: string
description: string
} // The data expected passed to an "update" statement.
}
}
}
}
Loading…
Cancel
Save