Compare commits
2 Commits
2f506a7d2d
...
e3bfbec53d
| Author | SHA1 | Date |
|---|---|---|
|
|
e3bfbec53d | 2 years ago |
|
|
817f1e211c | 2 years ago |
@ -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…
Reference in New Issue