From d2e2caed621ef4d79e43ae508eb975f5a8c2f227 Mon Sep 17 00:00:00 2001 From: azivner Date: Sun, 8 Apr 2018 08:21:49 -0400 Subject: [PATCH] refactoring of note saving code & API --- src/public/javascripts/entities/note_short.js | 8 +++ .../javascripts/services/note_detail.js | 51 ++++++++----------- .../javascripts/services/protected_session.js | 10 +--- 3 files changed, 31 insertions(+), 38 deletions(-) diff --git a/src/public/javascripts/entities/note_short.js b/src/public/javascripts/entities/note_short.js index 8d10a7c9b..6a831111b 100644 --- a/src/public/javascripts/entities/note_short.js +++ b/src/public/javascripts/entities/note_short.js @@ -44,6 +44,14 @@ class NoteShort { get toString() { return `Note(noteId=${this.noteId}, title=${this.title})`; } + + get dto() { + const dto = Object.assign({}, this); + delete dto.treeCache; + delete dto.hideInAutocomplete; + + return dto; + } } export default NoteShort; \ No newline at end of file diff --git a/src/public/javascripts/services/note_detail.js b/src/public/javascripts/services/note_detail.js index 33d45cf4b..71bdc9f28 100644 --- a/src/public/javascripts/services/note_detail.js +++ b/src/public/javascripts/services/note_detail.js @@ -84,39 +84,31 @@ async function switchToNote(noteId) { } } +async function saveNote() { + const note = getCurrentNote(); + + note.title = $noteTitle.val(); + note.content = getComponent(note.type).getContent(); + + treeService.setNoteTitle(note.noteId, note.title); + + await server.put('notes/' + note.noteId, note.dto); + + isNoteChanged = false; + + if (note.isProtected) { + protectedSessionHolder.touchProtectedSession(); + } + + infoService.showMessage("Saved!"); +} + async function saveNoteIfChanged() { if (!isNoteChanged) { return; } - const note = getCurrentNote(); - - updateNoteFromInputs(note); - - await saveNoteToServer(note); - - if (note.isProtected) { - protectedSessionHolder.touchProtectedSession(); - } -} - -function updateNoteFromInputs(note) { - note.title = $noteTitle.val(); - note.content = getComponent(note.type).getContent(); - - treeService.setNoteTitle(note.noteId, note.title); -} - -async function saveNoteToServer(note) { - const dto = Object.assign({}, note); - delete dto.treeCache; - delete dto.hideInAutocomplete; - - await server.put('notes/' + dto.noteId, dto); - - isNoteChanged = false; - - infoService.showMessage("Saved!"); + await saveNote(); } function setNoteBackgroundIfProtected(note) { @@ -245,8 +237,6 @@ setInterval(saveNoteIfChanged, 5000); export default { reload, switchToNote, - updateNoteFromInputs, - saveNoteToServer, setNoteBackgroundIfProtected, loadNote, getCurrentNote, @@ -255,6 +245,7 @@ export default { newNoteCreated, focus, loadLabelList, + saveNote, saveNoteIfChanged, noteChanged }; \ No newline at end of file diff --git a/src/public/javascripts/services/protected_session.js b/src/public/javascripts/services/protected_session.js index 36306bc2c..b911f6138 100644 --- a/src/public/javascripts/services/protected_session.js +++ b/src/public/javascripts/services/protected_session.js @@ -91,12 +91,9 @@ async function protectNoteAndSendToServer() { await ensureProtectedSession(true, true); const note = noteDetail.getCurrentNote(); - - noteDetail.updateNoteFromInputs(note); - note.isProtected = true; - await noteDetail.saveNoteToServer(note); + await noteDetail.saveNote(note); treeService.setProtected(note.noteId, note.isProtected); @@ -107,12 +104,9 @@ async function unprotectNoteAndSendToServer() { await ensureProtectedSession(true, true); const note = noteDetail.getCurrentNote(); - - noteDetail.updateNoteFromInputs(note); - note.isProtected = false; - await noteDetail.saveNoteToServer(note); + await noteDetail.saveNote(note); treeService.setProtected(note.noteId, note.isProtected);