server-ts: Fix getContent in updateNoteData

This commit is contained in:
Elian Doran 2024-04-03 18:53:56 +03:00
parent b84b27692c
commit a354b54a08
No known key found for this signature in database
2 changed files with 6 additions and 8 deletions

View File

@ -5,7 +5,7 @@ export interface AttachmentRow {
ownerId?: string;
role: string;
mime: string;
title?: string;
title: string;
position?: number;
blobId?: string;
isProtected?: boolean;

View File

@ -744,7 +744,7 @@ function saveRevisionIfNeeded(note: BNote) {
}
}
function updateNoteData(noteId: string, content: string, attachments: BAttachment[] = []) {
function updateNoteData(noteId: string, content: string, attachments: AttachmentRow[] = []) {
const note = becca.getNote(noteId);
if (!note || !note.isContentAvailable()) {
@ -760,11 +760,7 @@ function updateNoteData(noteId: string, content: string, attachments: BAttachmen
if (attachments?.length > 0) {
const existingAttachmentsByTitle = utils.toMap(note.getAttachments({includeContentLength: false}), 'title');
for (const attachment of attachments) {
// TODO: The content property was extracted directly instead of `getContent`. To investigate.
const {attachmentId, role, mime, title, position} = attachment;
const content = attachment.getContent();
for (const {attachmentId, role, mime, title, position, content} of attachments) {
if (attachmentId || !(title in existingAttachmentsByTitle)) {
note.saveAttachment({attachmentId, role, mime, title, content, position});
} else {
@ -772,7 +768,9 @@ function updateNoteData(noteId: string, content: string, attachments: BAttachmen
existingAttachment.role = role;
existingAttachment.mime = mime;
existingAttachment.position = position;
existingAttachment.setContent(content, {forceSave: true});
if (content) {
existingAttachment.setContent(content, {forceSave: true});
}
}
}
}