fix(api): 🐛 Fetch media content-type from data, instead of doing naive guesses

This commit is contained in:
Jesse Wierzbinski 2024-12-16 23:57:21 +01:00
parent 6f67881d96
commit 4fdb96930f
No known key found for this signature in database
8 changed files with 111 additions and 23 deletions

View file

@ -1,4 +1,5 @@
import { apiRoute, applyConfig, auth, jsonOrForm } from "@/api";
import { mimeLookup } from "@/content_types";
import { mergeAndDeduplicate } from "@/lib";
import { sanitizedHtmlStrip } from "@/sanitization";
import { createRoute } from "@hono/zod-openapi";
@ -267,21 +268,37 @@ export default apiRoute((app) =>
if (avatar) {
if (avatar instanceof File) {
const { path } = await mediaManager.addFile(avatar);
const { path, uploadedFile } =
await mediaManager.addFile(avatar);
const contentType = uploadedFile.type;
self.avatar = Attachment.getUrl(path);
self.source.avatar = {
content_type: contentType,
};
} else {
self.avatar = avatar;
self.source.avatar = {
content_type: await mimeLookup(avatar),
};
}
}
if (header) {
if (header instanceof File) {
const { path } = await mediaManager.addFile(header);
const { path, uploadedFile } =
await mediaManager.addFile(header);
const contentType = uploadedFile.type;
self.header = Attachment.getUrl(path);
self.source.header = {
content_type: contentType,
};
} else {
self.header = header;
self.source.header = {
content_type: await mimeLookup(header),
};
}
}