From 24e6e31b2b0df1f5d85646d311b60ef63dd61075 Mon Sep 17 00:00:00 2001 From: naskya Date: Thu, 25 Apr 2024 08:22:30 +0900 Subject: [PATCH] fix (backend): update note_file table by post imports --- .../src/queue/processors/db/import-firefish-post.ts | 12 ++++++++++-- .../src/queue/processors/db/import-masto-post.ts | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/packages/backend/src/queue/processors/db/import-firefish-post.ts b/packages/backend/src/queue/processors/db/import-firefish-post.ts index c1052751d0..1112c926e0 100644 --- a/packages/backend/src/queue/processors/db/import-firefish-post.ts +++ b/packages/backend/src/queue/processors/db/import-firefish-post.ts @@ -1,6 +1,6 @@ import * as Post from "@/misc/post.js"; import create from "@/services/note/create.js"; -import { Users } from "@/models/index.js"; +import { NoteFiles, Users } from "@/models/index.js"; import type { DbUserImportMastoPostJobData } from "@/queue/types.js"; import { queueLogger } from "../../logger.js"; import { uploadFromUrl } from "@/services/drive/upload-from-url.js"; @@ -59,9 +59,17 @@ export async function importCkPost( userId: user.id, }); - if (note && (note?.fileIds?.length || 0) < files.length) { + if (note != null && (note.fileIds?.length || 0) < files.length) { const update: Partial = {}; update.fileIds = files.map((x) => x.id); + + if (update.fileIds != null) { + await NoteFiles.delete({ noteId: note.id }); + await NoteFiles.insert( + update.fileIds.map((fileId) => ({ noteId: note?.id, fileId })), + ); + } + await Notes.update(note.id, update); await NoteEdits.insert({ id: genId(), diff --git a/packages/backend/src/queue/processors/db/import-masto-post.ts b/packages/backend/src/queue/processors/db/import-masto-post.ts index bd896385cd..0fc62194b4 100644 --- a/packages/backend/src/queue/processors/db/import-masto-post.ts +++ b/packages/backend/src/queue/processors/db/import-masto-post.ts @@ -1,5 +1,5 @@ import create from "@/services/note/create.js"; -import { Users } from "@/models/index.js"; +import { NoteFiles, Users } from "@/models/index.js"; import type { DbUserImportMastoPostJobData } from "@/queue/types.js"; import { queueLogger } from "../../logger.js"; import type Bull from "bull"; @@ -85,9 +85,17 @@ export async function importMastoPost( userId: user.id, }); - if (note && (note?.fileIds?.length || 0) < files.length) { + if (note != null && (note.fileIds?.length || 0) < files.length) { const update: Partial = {}; update.fileIds = files.map((x) => x.id); + + if (update.fileIds != null) { + await NoteFiles.delete({ noteId: note.id }); + await NoteFiles.insert( + update.fileIds.map((fileId) => ({ noteId: note?.id, fileId })), + ); + } + await Notes.update(note.id, update); await NoteEdits.insert({ id: genId(),