From: Adam Dullage Date: Fri, 3 May 2024 14:28:16 +0000 (+0100) Subject: Refactor API functions and Note class to use destructuring + add updateNote API function X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=a97b06093ff12b071d9ba21df923ad18e47e26d0;p=flatnotes.git Refactor API functions and Note class to use destructuring + add updateNote API function --- diff --git a/client/api.js b/client/api.js index 53acae7..da86ccd 100644 --- a/client/api.js +++ b/client/api.js @@ -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); } diff --git a/client/classes.js b/client/classes.js index 84f7679..20ae393 100644 --- a/client/classes.js +++ b/client/classes.js @@ -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;