diff --git a/pages/notes/index.vue b/pages/notes/index.vue index 368e8e9..405364f 100644 --- a/pages/notes/index.vue +++ b/pages/notes/index.vue @@ -3,13 +3,22 @@
+
-
+
@@ -18,14 +27,27 @@ - + diff --git a/server/api/note/new.ts b/server/api/note/new.ts new file mode 100644 index 0000000..74138a6 --- /dev/null +++ b/server/api/note/new.ts @@ -0,0 +1,30 @@ +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); + + if (!user) { + throw createError({ statusCode: 401, message: 'Unauthorized' }); + } + + const { data: status, error: insertError } = await supabase + .from('notes') + .insert({ title: '', description: '', user_id: user.id }); + + const { data: note, error: fetchError } = await supabase + .from('notes') + .select('id') + .order('created_at', { ascending: false }) + .limit(1) + .single(); + + return { + statusCode: 200, + note: note, + message: 'Note Created', + insertError: insertError, + fetchError: fetchError, + }; +}); diff --git a/utils/database.types.ts b/utils/database.types.ts index ea17125..a716976 100644 --- a/utils/database.types.ts +++ b/utils/database.types.ts @@ -4,6 +4,7 @@ export interface Database { notes: { Row: { id: number; + uuid: string; title: string; description: string; user_id: string; @@ -11,6 +12,7 @@ export interface Database { }; // 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. };