Refactor API functions and Note class to use destructuring + add updateNote API function
authorAdam Dullage <redacted>
Fri, 3 May 2024 14:28:16 +0000 (15:28 +0100)
committerAdam Dullage <redacted>
Fri, 3 May 2024 14:28:16 +0000 (15:28 +0100)
client/api.js
client/classes.js

index 53acae7f1900264f1a3404f5b460f3af8b208815..da86ccdd14f87dec15b30c51421fa04ad4c0dd65 100644 (file)
@@ -79,14 +79,34 @@ export async function getNotes(term, sort, order, limit) {
   }
 }
 
+export async function createNote(title, content) {
+  try {
+    const response = await api.post("/api/notes", {
+      title: title,
+      content: content,
+    });
+    return new Note(response.data);
+  } catch (response) {
+    return Promise.reject(response);
+  }
+}
+
 export async function getNote(title) {
   try {
     const response = await api.get(`/api/notes/${title}`);
-    return new Note(
-      response.data.title,
-      response.data.lastModified,
-      response.data.content,
-    );
+    return new Note(response.data);
+  } catch (response) {
+    return Promise.reject(response);
+  }
+}
+
+export async function updateNote(title, newTitle, newContent) {
+  try {
+    const response = await api.patch(`/api/notes/${title}`, {
+      newTitle: newTitle,
+      newContent: newContent,
+    });
+    return new Note(response.data);
   } catch (response) {
     return Promise.reject(response);
   }
index 84f7679b9e990b170996033b64715e6703e33799..20ae3936533cb4c72b85051eb4f1139d5529460f 100644 (file)
@@ -1,10 +1,10 @@
 import router from "./router.js";
 
 class Note {
-  constructor(title, lastModified, content) {
-    this.title = title;
-    this.lastModified = lastModified;
-    this.content = content;
+  constructor(note) {
+    this.title = note?.title;
+    this.lastModified = note?.lastModified;
+    this.content = note?.content;
   }
 
   get href() {
@@ -22,7 +22,7 @@ class Note {
 
 class SearchResult extends Note {
   constructor(searchResult) {
-    super(searchResult.title, searchResult.lastModified);
+    super(searchResult);
     this.score = searchResult.score;
     this.titleHighlights = searchResult.titleHighlights;
     this.contentHighlights = searchResult.contentHighlights;
git clone https://git.99rst.org/PROJECT