diff --git a/packages/backend/src/services/note/create.ts b/packages/backend/src/services/note/create.ts index 87329439d0..fb989f33ee 100644 --- a/packages/backend/src/services/note/create.ts +++ b/packages/backend/src/services/note/create.ts @@ -75,10 +75,10 @@ import { redisClient } from "@/db/redis.js"; import { Mutex } from "redis-semaphore"; import { parseHomeTimeline, + parseScyllaNote, prepared, scyllaClient, - type ScyllaNote, - type ScyllaPoll, + ScyllaPoll, } from "@/db/scylla.js"; import { userByIdCache, userDenormalizedCache } from "../user-cache.js"; import { langmap } from "@/misc/langmap.js"; @@ -843,7 +843,6 @@ async function insertNote( width: file.properties.width ?? null, height: file.properties.height ?? null, }); - const files = data.files?.map(fileMapper); const replyText = data.reply?.text ?? null; const replyCw = data.reply?.cw ?? null; // TODO: move drive files to scylla or cache in redis/dragonfly @@ -906,7 +905,7 @@ async function insertNote( insert.uri, insert.url, insert.score ?? 0, - files, + data.files?.map(fileMapper), insert.visibleUserIds, insert.mentions, insert.mentionedRemoteUsers, @@ -958,22 +957,6 @@ async function insertNote( }, ); } - - const scyllaNote: ScyllaNote = { - ...insert, - createdAtDate: insert.createdAt, - files: files ?? [], - poll, - replyText, - replyCw, - replyFiles: replyFiles ?? [], - renoteText, - renoteCw, - renoteFiles: renoteFiles ?? [], - noteEdit: [], - }; - - return scyllaNote; } else { if (insert.hasPoll) { // Start transaction @@ -1007,6 +990,17 @@ async function insertNote( } } + if (scyllaClient) { + const result = await scyllaClient.execute( + prepared.note.select.byId, + [insert.id], + { prepare: true }, + ); + if (result.rowLength > 0) { + return parseScyllaNote(result.first()); + } + } + return insert; } catch (e) { // duplicate key error