diff --git a/components/card/Panel.vue b/components/card/Panel.vue new file mode 100644 index 0000000..dceae18 --- /dev/null +++ b/components/card/Panel.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/middleware/auth.ts b/middleware/auth.ts index eccc268..5f4d65d 100644 --- a/middleware/auth.ts +++ b/middleware/auth.ts @@ -1,7 +1,10 @@ export default defineNuxtRouteMiddleware((to, from) => { const user = useSupabaseUser(); - if (!user.value && to.path.startsWith('/notes')) { + if ( + !user.value && + (to.path.startsWith('/notes') || to.path.startsWith('/profile')) + ) { return navigateTo('/login'); } else if (user.value && to.path === '/login') { return navigateTo('/notes'); diff --git a/pages/profile/index.vue b/pages/profile/index.vue new file mode 100644 index 0000000..26bd5f0 --- /dev/null +++ b/pages/profile/index.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/server/api/profile.ts b/server/api/profile.ts new file mode 100644 index 0000000..bc97d85 --- /dev/null +++ b/server/api/profile.ts @@ -0,0 +1,16 @@ +import { serverSupabaseUser, serverSupabaseClient } from '#supabase/server'; +import { Database } from 'utils/database.types'; + +export default defineEventHandler(async (event) => { + const user = await serverSupabaseUser(event); + const supabase = serverSupabaseClient(event); + + const { count, error } = await supabase + .from('notes') + .select('*', { count: 'exact', head: true }); + + if (!user) { + throw createError({ statusCode: 401, message: 'Unauthorized' }); + } + return { count: count, message: 'Profile', error: error }; +});