refactor(database): ♻️ Simplify User and Note logic further

This commit is contained in:
Jesse Wierzbinski 2024-12-09 13:50:46 +01:00
parent a8541bdc44
commit 83399ba5f1
No known key found for this signature in database
6 changed files with 67 additions and 107 deletions

View file

@ -1,4 +1,5 @@
import { apiRoute, applyConfig, auth, jsonOrForm } from "@/api";
import { mergeAndDeduplicate } from "@/lib";
import { sanitizedHtmlStrip } from "@/sanitization";
import { createRoute } from "@hono/zod-openapi";
import { Attachment, Emoji, User } from "@versia/kit/db";
@ -335,14 +336,10 @@ export default apiRoute((app) =>
await Emoji.parseFromText(sanitizedDisplayName);
const noteEmojis = await Emoji.parseFromText(self.note);
const emojis = [
...displaynameEmojis,
...noteEmojis,
...fieldEmojis,
].filter(
// Deduplicate emojis
(emoji, index, self) =>
self.findIndex((e) => e.id === emoji.id) === index,
const emojis = mergeAndDeduplicate(
displaynameEmojis,
noteEmojis,
fieldEmojis,
);
// Connect emojis, if any

View file

@ -1,6 +1,6 @@
import { apiRoute, applyConfig, auth, jsonOrForm } from "@/api";
import { createRoute } from "@hono/zod-openapi";
import { Note, Notification } from "@versia/kit/db";
import { Note } from "@versia/kit/db";
import { Notes, RolePermissions } from "@versia/kit/tables";
import { and, eq } from "drizzle-orm";
import { z } from "zod";
@ -138,12 +138,7 @@ export default apiRoute((app) =>
}
if (note.author.isLocal() && user.isLocal()) {
await Notification.insert({
accountId: user.id,
notifiedId: note.author.id,
type: "reblog",
noteId: newReblog.data.reblogId,
});
await note.author.createNotification("reblog", user, newReblog);
}
return context.json(await finalNewReblog.toApi(user), 201);