add scylla note type

This commit is contained in:
Namekuji 2023-07-26 18:59:23 -04:00
parent b211788d3c
commit f0ce2808d9
No known key found for this signature in database
GPG key ID: 1D62332C07FBA532

View file

@ -3,6 +3,7 @@ import type { PopulatedEmoji } from "@/misc/populate-emojis.js";
import type { Note } from "@/models/entities/note.js"; import type { Note } from "@/models/entities/note.js";
import type { NoteReaction } from "@/models/entities/note-reaction.js"; import type { NoteReaction } from "@/models/entities/note-reaction.js";
import { Client, types } from "cassandra-driver"; import { Client, types } from "cassandra-driver";
import { noteVisibilities } from "@/types.js";
function newClient(): Client | null { function newClient(): Client | null {
if (!config.scylla) { if (!config.scylla) {
@ -108,11 +109,37 @@ export interface ScyllaNoteEditHistory {
updatedAt: Date; updatedAt: Date;
} }
export type ScyllaNote = Partial<Note> & { export type ScyllaNote = Note & {
createdAtDate: Date; createdAtDate: Date;
createdAt: Note["createdAt"];
id: Note["id"];
visibility: Note["visibility"];
text: Note["text"];
name: Note["name"];
cw: Note["cw"];
localOnly: Note["localOnly"];
renoteCount: Note["renoteCount"];
repliesCount: Note["repliesCount"];
uri: Note["uri"];
url: Note["url"];
score: Note["score"];
files: ScyllaDriveFile[]; files: ScyllaDriveFile[];
fileIds: Note["fileIds"];
attachedFileTypes: Note["attachedFileTypes"];
visibleUserIds: Note["visibleUserIds"];
mentions: Note["mentions"];
emojis: Note["emojis"];
tags: Note["tags"];
hasPoll: Note["hasPoll"];
threadId: Note["threadId"];
channelId: Note["channelId"];
channelName: string; channelName: string;
userId: Note["userId"];
replyId: Note["replyId"];
renoteId: Note["renoteId"];
reactions: Note["reactions"];
noteEdit: ScyllaNoteEditHistory[]; noteEdit: ScyllaNoteEditHistory[];
updatedAt: Note["updatedAt"];
}; };
export function parseScyllaNote(row: types.Row): ScyllaNote { export function parseScyllaNote(row: types.Row): ScyllaNote {
@ -148,7 +175,18 @@ export function parseScyllaNote(row: types.Row): ScyllaNote {
reactions: row.get("reactions"), reactions: row.get("reactions"),
noteEdit: row.get("noteEdit"), noteEdit: row.get("noteEdit"),
updatedAt: row.get("updatedAt"), updatedAt: row.get("updatedAt"),
} /* unused postgres denormalization */
channel: null,
renote: null,
reply: null,
renoteUserHost: null,
renoteUserId: null,
mentionedRemoteUsers: "",
replyUserHost: null,
replyUserId: null,
user: null,
userHost: null,
};
} }
export interface ScyllaNoteReaction extends NoteReaction { export interface ScyllaNoteReaction extends NoteReaction {