unified file and image upload WIP

This commit is contained in:
zadam
2023-06-15 01:26:38 +02:00
parent 75c6afd1c3
commit 3ff5fe61b2
8 changed files with 22 additions and 36 deletions

View File

@@ -1,6 +1,7 @@
const becca = require("../../becca/becca");
const blobService = require("../../services/blob");
const ValidationError = require("../../errors/validation_error");
const imageService = require("../../services/image.js");
function getAttachmentBlob(req) {
const preview = req.query.preview === 'true';
@@ -41,16 +42,25 @@ function uploadAttachment(req) {
const {file} = req;
const note = becca.getNoteOrThrow(noteId);
let url;
note.saveAttachment({
role: 'file',
mime: file.mimetype,
title: file.originalname,
content: file.buffer
});
if (["image/png", "image/jpg", "image/jpeg", "image/gif", "image/webp", "image/svg+xml"].includes(file.mimetype)) {
const attachment = imageService.saveImageToAttachment(noteId, file.buffer, file.originalname, true, true);
url = `api/attachments/${attachment.attachmentId}/image/${encodeURIComponent(attachment.title)}`;
} else {
const attachment = note.saveAttachment({
role: 'file',
mime: file.mimetype,
title: file.originalname,
content: file.buffer
});
url = `#${noteId}?viewMode=attachments&attachmentId=${attachment.attachmentId}`;
}
return {
uploaded: true
uploaded: true,
url
};
}

View File

@@ -4,7 +4,6 @@ const imageService = require('../../services/image');
const becca = require('../../becca/becca');
const RESOURCE_DIR = require('../../services/resource_dir').RESOURCE_DIR;
const fs = require('fs');
const ValidationError = require("../../errors/validation_error");
function returnImage(req, res) {
const image = becca.getNote(req.params.noteId);
@@ -59,24 +58,6 @@ function returnAttachedImage(req, res) {
res.send(attachment.getContent());
}
function uploadImage(req) {
const {noteId} = req.query;
const {file} = req;
becca.getNoteOrThrow(noteId);
if (!["image/png", "image/jpg", "image/jpeg", "image/gif", "image/webp", "image/svg+xml"].includes(file.mimetype)) {
throw new ValidationError(`Unknown image type '${file.mimetype}'`);
}
const {url} = imageService.saveImageToAttachment(noteId, file.buffer, file.originalname, true, true);
return {
uploaded: true,
url
};
}
function updateImage(req) {
const {noteId} = req.params;
const {file} = req;
@@ -98,6 +79,5 @@ function updateImage(req) {
module.exports = {
returnImage,
returnAttachedImage,
uploadImage,
updateImage
};