+
@@ -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.
};