refactoring of note creation APIs WIP

This commit is contained in:
zadam 2019-11-16 17:00:22 +01:00
parent 60231de0ed
commit 3d294c5163
3 changed files with 13 additions and 1 deletions

View File

@ -114,6 +114,10 @@ class Note extends Entity {
/** @returns {Promise} */
async setContent(content) {
if (content === null || content === undefined) {
throw new Error(`Cannot set null content to note ${this.noteId}`);
}
// force updating note itself so that dateModified is represented correctly even for the content
this.forcedChange = true;
this.contentLength = content.length;

View File

@ -651,7 +651,7 @@ async function createNote(node, parentNoteId, target, extraOptions = {}) {
const {note, branch} = await server.post(`notes/${parentNoteId}/children?target=${target}&targetBranchId=${node.data.branchId}`, {
title: newNoteName,
content: extraOptions.content,
content: extraOptions.content || "",
isProtected: extraOptions.isProtected,
type: extraOptions.type
});

View File

@ -129,6 +129,14 @@ async function createNewNote(params) {
}
async function createNewNoteWithTarget(target, targetBranchId, params) {
if (!params.type) {
const parentNote = await repository.getNote(params.parentNoteId);
// code note type can be inherited, otherwise text is default
params.type = parentNote.type === 'code' ? 'code' : 'text';
params.mime = parentNote.type === 'code' ? parentNote.mime : 'text/html';
}
if (target === 'into') {
return await createNewNote(params);
}